From 9b0a5d8b4677e6e10d7fb7f96ba469738add47e9 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Sun, 9 Oct 2022 20:07:36 +0200 Subject: [CI] Update actions, add cache for faster builds. --- .github/workflows/build_release.yml | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) (limited to '.github') 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 -- cgit v1.2.3