diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index 27dc28d..fe246be 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -8,7 +8,32 @@ on: - cron: '46 5 * * *' jobs: + # I'm sure there's a more lightweight way to do this, but this works well + # enough... + decide-branches: + name: Decide branches to test + outputs: + branches: ${{ steps.branches.outputs.branches }} + runs-on: ubuntu-latest + steps: + # Produce a JSON array of the branches that both exist and which I want + # to build regularly if they do exist. + - name: Report branches to build + id: branches + run: | + git ls-remote --heads "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" | + cut -f2 | + grep -e '^refs/heads/main$' -e '^refs/heads/rc$' | + jq -Rrs 'rtrimstr("\n") | split("\n") | @json "branches=\(.)"' | + tee /dev/stderr >> "$GITHUB_OUTPUT" + build-test: uses: cygporter/workflows/.github/workflows/build-test.yml@v2 + needs: decide-branches + strategy: + matrix: + branch: ${{ fromJSON(needs.decide-branches.outputs.branches) }} + fail-fast: false with: cygport_file: git.cygport + ref: ${{ matrix.branch }}