Skip to content

Commit

Permalink
ci: Add continuous-integration workflow
Browse files Browse the repository at this point in the history
This workflow first calculates the list of changed policies,
and then uses that list as the value for a GH workflow matrix. This way
we get 1 job per policy.

Signed-off-by: Víctor Cuadrado Juan <vcuadradojuan@suse.de>
  • Loading branch information
viccuad committed Dec 17, 2024
1 parent 8a638a1 commit eaf214f
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: CI

on:
push:
branches:
- main
pull_request:

jobs:
calculate-policy-matrix:
runs-on: ubuntu-latest
outputs:
policy-working-dirs: ${{ steps.calculate-policy-dirs.outputs.policy_working_dirs }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # checkout all history to do git diff
- id: calculate-policy-dirs
shell: bash
run: |
# policy_working_dirs must be an array on the form: [ "policies/Foo", "policies/Bar" ]
# list only changes of files in `policies/`:
pushd policies
git_files="$(git diff --no-color --find-renames --find-copies --name-only origin/main ${{ github.sha }} -- .)"
# build policy_working_dirs:
dir_bash_array=($(echo "$git_files" | cut -d/ -f1,2 ))
declare -p dir_bash_array # for debug
policy_working_dirs=$(jq --compact-output --null-input '$ARGS.positional' --args -- "${dir_bash_array[@]}")
echo "policy_working_dirs=$policy_working_dirs" >> $GITHUB_OUTPUT
continuous-integration:
if: ${{ needs.calculate-policy-matrix.outputs.policy-working-dirs != '[]' }}
needs: calculate-policy-matrix
strategy:
matrix:
policy-working-dir: ${{ fromJSON(needs.calculate-policy-matrix.outputs.policy-working-dirs) }}
uses: viccuad/github-actions/.github/workflows/reusable-test-policy-rego.yml@main
with:
policy-working-dir: ${{ matrix.policy-working-dir }}
policy-version: 0.0.0 # hardcode a bogus but semver valid version for `make check-artifacthub.yml`

0 comments on commit eaf214f

Please sign in to comment.