Skip to content

Parallelize CI

Parallelize CI #7

Workflow file for this run

name: Build
on: push
jobs:
prepare:
name: Prepare Build
runs-on: ubuntu-latest
outputs:
scores: ${{ steps.scores.outputs.json }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: List Scores
id: scores
run: |
echo -n "json=" >> "$GITHUB_OUTPUT"
ls scores/*.ly | jq --raw-input --slurp --compact-output 'split("\n")[:-1] | map({"name": .|sub(".ly$";""), "file": .})' >> "$GITHUB_OUTPUT"
build:
name: Compile ${{ matrix.score.file }}
needs: [ prepare ]
runs-on: ubuntu-latest
strategy:
matrix:
score: ${{ fromJSON(needs.prepare.outputs.scores) }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup LilyPond
uses: codello/setup-lilypond@main
with:
lilypond-version: "2.24"
ol-fonts: beethoven
- name: Install Yorkten Font
run: aws s3 cp s3://brewery/fonts/yorkten/ ~/.local/share/fonts --recursive
env:
AWS_ENDPOINT_URL: s3.eu-central-003.backblazeb2.com
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Compile ${{ matrix.file }}
run: make "build/$SCORE.pdf"
env:
SCORE: ${{ matrix.score.name }}
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.score.name }}
path: build/*