diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2022-10-09 20:07:36 +0200 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2022-10-16 16:15:42 +0200 |
commit | 9b0a5d8b4677e6e10d7fb7f96ba469738add47e9 (patch) | |
tree | 22a27c94904f6a72e25cf82662aa42c86b0cf140 | |
parent | 1769730ef0344fe1011681a207a0c68383b6d5f6 (diff) | |
download | fork-godot-webrtc-native-9b0a5d8b4677e6e10d7fb7f96ba469738add47e9.tar.gz fork-godot-webrtc-native-9b0a5d8b4677e6e10d7fb7f96ba469738add47e9.tar.bz2 fork-godot-webrtc-native-9b0a5d8b4677e6e10d7fb7f96ba469738add47e9.zip |
[CI] Update actions, add cache for faster builds.
-rw-r--r-- | .github/workflows/build_release.yml | 30 | ||||
-rw-r--r-- | SConstruct | 5 |
2 files changed, 30 insertions, 5 deletions
diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index 202807e..73e604e 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -1,13 +1,17 @@ name: 🔧 Build -> Package 📦 on: [push, pull_request] +env: + # Only used for the cache key. Increment version to force clean build. + GODOT_BASE_BRANCH: master + jobs: static-checks: name: 📊 Static Checks (clang-format, black format, file format) runs-on: ubuntu-20.04 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install dependencies run: | @@ -42,11 +46,13 @@ jobs: gdnative_flags: 'android_arch=x86_64' sconsflags: '' os: 'ubuntu-20.04' + cache-name: android-x86_64 - platform: android arch: 'arm64' gdnative_flags: 'android_arch=arm64v8' sconsflags: '' os: 'ubuntu-20.04' + cache-name: android-arm64 # iOS - platform: ios @@ -54,12 +60,13 @@ jobs: gdnative_flags: 'ios_arch=x86_64' sconsflags: 'ios_simulator=true' os: 'macos-latest' + cache-name: ios-x86_64-simulator - platform: ios arch: 'arm64' gdnative_flags: 'ios_arch=arm64' sconsflags: '' os: 'macos-11' - + cache-name: ios-arm64 # Linux - platform: linux @@ -67,11 +74,13 @@ jobs: gdnative_flags: 'bits=32' sconsflags: '' os: 'ubuntu-20.04' + cache-name: linux-x86_32 - platform: linux arch: 'x86_64' gdnative_flags: 'bits=64' sconsflags: '' os: 'ubuntu-20.04' + cache-name: linux-x86_64 # macOS - platform: macos @@ -79,11 +88,13 @@ jobs: gdnative_flags: 'macos_arch=x86_64 bits=64' sconsflags: '' os: 'macos-11' + cache-name: macos-x86_64 - platform: macos gdnative_flags: 'macos_arch=arm64 bits=64' arch: 'arm64' sconsflags: '' os: 'macos-11' + cache-name: macos-arm64 # Windows - platform: windows @@ -92,14 +103,17 @@ jobs: sconsflags: 'use_mingw=yes' os: 'ubuntu-20.04' msvc_arch: amd64_x86 + cache-name: win-x86_32 - platform: windows arch: 'x86_64' gdnative_flags: 'bits=64' sconsflags: 'use_mingw=yes' os: 'ubuntu-20.04' msvc_arch: amd64 + cache-name: win-x86_64 env: + SCONS_CACHE: ${{ github.workspace }}/.scons-cache/ SCONSFLAGS: ${{ matrix.sconsflags }} platform=${{ matrix.platform }} arch=${{ matrix.arch }} --jobs=2 defaults: @@ -107,10 +121,16 @@ jobs: shell: bash steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: recursive + - name: Setup Godot build cache + uses: ./godot-cpp/.github/actions/godot-cache + with: + cache-name: ${{ matrix.cache-name }} + continue-on-error: true + - name: Install Windows build dependencies if: ${{ matrix.platform == 'windows' }} run: | @@ -129,7 +149,7 @@ jobs: sudo apt-get install build-essential gcc-multilib g++-multilib - name: Set up Python 3.x - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: '3.x' architecture: 'x64' @@ -168,7 +188,7 @@ jobs: needs: build runs-on: "ubuntu-latest" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: recursive @@ -28,6 +28,11 @@ if env["godot_version"] == "3": env = SConscript("godot-cpp-3.x/SConstruct") + scons_cache_path = os.environ.get("SCONS_CACHE") + if scons_cache_path is not None: + CacheDir(scons_cache_path) + Decider("MD5") + # Patch base env replace_flags(env["CCFLAGS"], { "-mios-simulator-version-min=10.0": "-mios-simulator-version-min=11.0", |