Improve speed for Windows build on github actions #1521
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: C/C++ CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: ["master", "CI"] | |
pull_request: | |
branches: ["master", "CI"] | |
env: | |
BUILD_TYPE: Release | |
CMAKE_BUILD_PARALLEL_LEVEL: 4 | |
jobs: | |
# =============================================================== | |
Linux-Build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Downloads pd-Sources | |
shell: bash | |
run: | | |
curl -L -o pure-data.zip https://api.github.com/repos/pure-data/pure-data/zipball/refs/tags/0.55-0 | |
unzip pure-data.zip | |
rm pure-data.zip | |
mv pure-data-* pure-data | |
- name: Configure pd-else | |
run: | | |
cmake -BBuild -DPD_PATH=${{github.workspace}}/pure-data | |
- name: Build pd-else | |
run: | | |
cmake --build Build | |
- name: Upload Zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: else-linux | |
path: ./Build/else | |
# =============================================================== | |
macOS-Build: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Downloads pd sources | |
shell: bash | |
run: | | |
curl -L -o pure-data.zip https://api.github.com/repos/pure-data/pure-data/zipball/refs/tags/0.55-0 | |
unzip pure-data.zip | |
rm pure-data.zip | |
mv pure-data-* pure-data | |
- name: Configure pd-else | |
run: | | |
cmake -BBuild -DPD_PATH=${{github.workspace}}/pure-data | |
- name: Build pd-else | |
run: | | |
cmake --build Build | |
- name: Upload Zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: else-macos | |
path: ./Build/else | |
# =============================================================== | |
Windows-Build: | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- if: runner.os == 'Windows' | |
name: "Install mingw deps" | |
uses: msys2/setup-msys2@v2 | |
with: | |
install: make mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-ccache | |
cache: true | |
- name: Restore build cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: D:/ccache | |
key: ccache-windows-${{ github.run_id }} | |
restore-keys: | | |
ccache-windows-${{ github.sha }} | |
ccache-windows- | |
- name: Get Pd | |
shell: bash | |
run: | | |
curl -L -o pure-data.zip http://msp.ucsd.edu/Software/pd-0.55-0.msw.zip | |
unzip pure-data.zip | |
rm pure-data.zip | |
mv pd-0.55-0 pd | |
- name: Configure pd-else | |
shell: msys2 {0} | |
run: | | |
cmake -GNinja -BBuild -DPD_PATH=./pd -DCMAKE_C_COMPILER_LAUNCHER="ccache" -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" | |
- name: Build pd-else | |
shell: msys2 {0} | |
run: | | |
export CCACHE_COMPRESS=1 | |
export CCACHE_COMPRESSLEVEL=6 | |
export CCACHE_MAXSIZE=1G | |
export CCACHE_DIR=D:/ccache | |
cmake --build Build | |
ccache -s | |
rm -rf ./Build/else/*.a | |
env: | |
CCACHE_COMPRESS: "1" | |
CCACHE_COMPRESSLEVEL: "6" | |
CCACHE_MAXSIZE: "1G" | |
CCACHE_DIR: D:/ccache | |
- name: Save build cache | |
uses: actions/cache/save@v4 | |
with: | |
path: D:/ccache | |
key: ccache-windows-${{ github.run_id }} | |
- name: Upload Zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: else-windows | |
path: ./Build/else | |
merge: | |
runs-on: ubuntu-latest | |
needs: [Windows-Build, macOS-Build, Linux-Build] | |
steps: | |
- name: Merge Artifacts | |
uses: actions/upload-artifact/merge@v4 | |
with: | |
name: else |