Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,20 @@ inputs:
arch:
required: true
description: Target architecture.
scons-arguments:
default: ''
description: Additional space-separated arguments to pass to the scons build command.
cache-key:
default: ''
description: Key to use for caches. This input is used in paths and should not contain POSIX incompatible characters.
float-precision:
default: 'single'
description: Float precision (single or double).
required: false
deprecationMessage: Use the scons-arguments (and cache-key) parameters instead. This parameter will continue to work until removed.
build-target-type:
default: 'template_debug'
required: false
description: Build type (template_debug or template_release).
deprecationMessage: Use the scons-arguments (and cache-key) parameters instead. This parameter will continue to work until removed.
scons-cache:
default: '.scons-cache/'
description: Scons cache folder name, relative to each scons directory. Must not contain relative path signifiers (. or ..). Must be a transparent path part (empty or 'path/to/directory/', ending in a slash).
Expand Down Expand Up @@ -70,7 +78,7 @@ runs:
uses: mymindstorm/setup-emsdk@v13
with:
version: ${{ inputs.em_version }}
actions-cache-folder: ${{ inputs.em-cache-directory }}.${{ inputs.float-precision }}.${{ inputs.build-target-type }}
actions-cache-folder: ${{ inputs.em-cache-directory }}.${{ inputs.float-precision }}.${{ inputs.build-target-type }}${{ inputs.cache-key }}
- name: Web - Verify Emscripten setup
if: ${{ inputs.platform == 'web' }}
shell: sh
Expand Down Expand Up @@ -103,12 +111,12 @@ runs:
with:
path: |
${{ github.workspace }}/${{ inputs.gdextension-directory }}${{ inputs.scons-cache }}
key: ${{ inputs.platform }}_${{ inputs.arch }}_${{ inputs.float-precision }}_${{ inputs.build-target-type }}_cache
key: ${{ inputs.platform }}_${{ inputs.arch }}_${{ inputs.float-precision }}_${{ inputs.build-target-type }}${{ inputs.cache-key }}_cache
# Build gdextension
- name: Build GDExtension Debug Build
shell: sh
env:
SCONS_CACHE: ${{ github.workspace }}/${{ inputs.gdextension-directory }}${{ inputs.scons-cache }}
run: |
scons target=${{ inputs.build-target-type }} platform=${{ inputs.platform }} arch=${{ inputs.arch }} precision=${{ inputs.float-precision }}
scons platform=${{ inputs.platform }} arch=${{ inputs.arch }} ${{ inputs.float-precision && 'precision=' || '' }}${{ inputs.float-precision }} ${{ inputs.build-target-type && 'target=' || '' }}${{ inputs.build-target-type }} ${{ inputs.scons-arguments }}
working-directory: ${{ inputs.gdextension-directory }}
166 changes: 83 additions & 83 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,247 +14,247 @@ jobs:
include:
# Debug templates
- platform: linux
float-precision: single
arch: x86_64
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: ubuntu-20.04

- platform: windows
float-precision: single
arch: x86_32
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: windows-latest

- platform: windows
float-precision: single
arch: x86_64
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: windows-latest

- platform: macos
float-precision: single
arch: universal
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: macos-latest

- platform: android
float-precision: single
arch: arm64
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: ubuntu-20.04

- platform: android
float-precision: single
arch: arm32
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: ubuntu-20.04

- platform: android
float-precision: single
arch: x86_64
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: ubuntu-20.04

- platform: android
float-precision: single
arch: x86_32
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: ubuntu-20.04

- platform: ios
float-precision: single
arch: arm64
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: macos-latest

- platform: web
float-precision: single
arch: wasm32
target-type: template_debug
scons-arguments: target=template_debug
cache-key: .template_debug
os: ubuntu-20.04

# Release templates
- platform: linux
float-precision: single
arch: x86_64
target-type: template_release
scons-arguments: target=template_release
cache-key: .template_release
os: ubuntu-20.04

# - platform: windows
# float-precision: single
# arch: x86_32
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: windows-latest

# - platform: windows
# float-precision: single
# arch: x86_64
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: windows-latest

# - platform: macos
# float-precision: single
# arch: universal
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: macos-latest

# - platform: android
# float-precision: single
# arch: arm64
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: ubuntu-20.04

# - platform: android
# float-precision: single
# arch: arm32
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: ubuntu-20.04

# - platform: android
# float-precision: single
# arch: x86_64
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: ubuntu-20.04

# - platform: android
# float-precision: single
# arch: x86_32
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: ubuntu-20.04

# - platform: ios
# float-precision: single
# arch: arm64
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: macos-latest

# - platform: web
# float-precision: single
# arch: wasm32
# target-type: template_release
# scons-arguments: target=template_release
# cache-key: .template_release
# os: ubuntu-20.04

# Double precision templates
# Double precision debug templates
- platform: linux
float-precision: double
arch: x86_64
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: ubuntu-20.04

- platform: windows
float-precision: double
arch: x86_32
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: windows-latest

- platform: windows
float-precision: double
arch: x86_64
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: windows-latest

- platform: macos
float-precision: double
arch: universal
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: macos-latest

- platform: android
float-precision: double
arch: arm64
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: ubuntu-20.04

- platform: android
float-precision: double
arch: arm32
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: ubuntu-20.04

- platform: android
float-precision: double
arch: x86_64
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: ubuntu-20.04

- platform: android
float-precision: double
arch: x86_32
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: ubuntu-20.04

- platform: ios
float-precision: double
arch: arm64
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: macos-latest

- platform: web
float-precision: double
arch: wasm32
target-type: template_debug
scons-arguments: precision=double target=template_debug
cache-key: .double.template_debug
os: ubuntu-20.04

# Double precision release templates
- platform: linux
float-precision: double
arch: x86_64
target-type: template_release
scons-arguments: precision=double target=template_release
cache-key: .double.template_release
os: ubuntu-20.04

# - platform: windows
# float-precision: double
# arch: x86_32
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: windows-latest

# - platform: windows
# float-precision: double
# arch: x86_64
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: windows-latest

# - platform: macos
# float-precision: double
# arch: universal
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: macos-latest

# - platform: android
# float-precision: double
# arch: arm64
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: ubuntu-20.04

# - platform: android
# float-precision: double
# arch: arm32
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: ubuntu-20.04

# - platform: android
# float-precision: double
# arch: x86_64
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: ubuntu-20.04

# - platform: android
# float-precision: double
# arch: x86_32
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: ubuntu-20.04

# - platform: ios
# float-precision: double
# arch: arm64
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: macos-latest

# - platform: web
# float-precision: double
# arch: wasm32
# target-type: template_release
# scons-arguments: precision=double target=template_release
# cache-key: .double.template_release
# os: ubuntu-20.04
runs-on: ${{ matrix.os }}
steps:
Expand All @@ -279,8 +279,8 @@ jobs:
with:
platform: ${{ matrix.platform }}
arch: ${{ matrix.arch }}
float-precision: ${{ matrix.float-precision }}
build-target-type: ${{ matrix.target-type }}
scons-arguments: ${{ matrix.scons-arguments }}
cache-key: ${{ matrix.cache-key }}

# Sign
- name: Mac Sign
Expand All @@ -306,7 +306,7 @@ jobs:
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: godot-cpp-template-${{ matrix.platform }}-${{ matrix.arch }}-${{ matrix.float-precision }}-${{ matrix.target-type }}
name: godot-cpp-template-${{ matrix.platform }}-${{ matrix.arch }}-${{ matrix.cache-key }}
path: |
${{ github.workspace }}/bin/**

Expand Down
Loading