Skip to content

Improve speed for Windows build on github actions #1521

Improve speed for Windows build on github actions

Improve speed for Windows build on github actions #1521

Workflow file for this run

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