Add caching to the github workflows #530
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: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-2022] | |
node-version: [20.x] | |
# Adds a platform value to the matrix, used later on to run the appropriate | |
# package command. | |
include: | |
- os: ubuntu-latest | |
platform: linux | |
- os: macos-latest | |
platform: mac | |
- os: windows-2022 | |
platform: win | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Checkout submodules | |
shell: bash | |
run: | | |
git submodule update --init --remote backend/vcpkg | |
git submodule update --init --remote backend/extern/afv-native | |
git submodule update --init --remote backend/extern/libuiohook | |
cd backend/extern/afv-native | |
git checkout unicom2 | |
- name: Restore cache | |
id: restore-cache | |
uses: ./.github/actions/restore-cache | |
with: | |
backend: 'true' | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
- name: Install Python 3.x | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11.x' | |
- name: Update cmake | |
if: matrix.os != 'macos-latest' | |
run: | | |
pip install cmake | |
cmake --version | |
- name: Setup environment | |
if: matrix.os == 'macos-latest' | |
run: | | |
brew update | |
brew upgrade cmake | |
cmake --version | |
- name: Install SFML native dependencies | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libx11-dev libxrandr-dev libxcursor-dev libxi-dev libudev-dev libgl1-mesa-dev pkg-config libxtst-dev libxinerama-dev libx11-xcb-dev libxkbcommon-dev libxkbcommon-x11-dev libxkbfile-dev | |
- name: Build backend and install dependencies | |
if: steps.restore-cache.outputs.backend != 'true' | |
run: | | |
npm -g i cmake-js | |
npm run build:backend | |
- name: Install cached backend and dependencies | |
if: steps.restore-cache.outputs.backend == 'true' | |
run: npm install ./backend/trackaudio-afv-1.0.0.tgz | |
- name: Run eslint | |
run: npm run lint | |
- name: Build and package | |
shell: bash | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: npm run build:${{ matrix.platform }} | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: TrackAudio-${{ matrix.platform }} | |
path: dist/trackaudio-*.* |