From 57fcf604f7e9d70da37b6f4a9c6f118d1d27095c Mon Sep 17 00:00:00 2001 From: Horst Gutmann Date: Wed, 3 Jul 2024 14:17:25 +0200 Subject: [PATCH] Add workflow for detecting a drift in the generated Dagger files --- .github/workflows/acceptance-tests.yml | 1 + .github/workflows/check-dagger-drift.yml | 39 ++++++++++++++++++++++++ Makefile | 5 +++ 3 files changed, 45 insertions(+) create mode 100644 .github/workflows/check-dagger-drift.yml diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml index 65f069da7..701a98b34 100644 --- a/.github/workflows/acceptance-tests.yml +++ b/.github/workflows/acceptance-tests.yml @@ -15,6 +15,7 @@ jobs: - name: Checkout uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Call Dagger Function + id: dagger uses: dagger/dagger-for-github@11048419d80c283890d0dd68187d44541f63dd89 # v5.11.0 with: version: "0.11.9" diff --git a/.github/workflows/check-dagger-drift.yml b/.github/workflows/check-dagger-drift.yml new file mode 100644 index 000000000..e3e790283 --- /dev/null +++ b/.github/workflows/check-dagger-drift.yml @@ -0,0 +1,39 @@ +name: "Check for drift in Dagger files" + +on: + pull_request: + branches: + - main + +jobs: + check-dagger-drift: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + + - name: Determine Dagger version + id: dagger_version + run: | + sudo apt-get install -y yq + cat .github/workflows/acceptance-tests.yml| yq -r '.jobs.build.steps[] | select(.id == "dagger") | .with.version' > .version + echo "version=$(<.version)" > $GITHUB_OUTPUT + rm -rf .version + + - uses: actions/cache@v4 + id: cache_daggercli + with: + path: bin + key: daggercli-download-${{ steps.dagger_version.outputs.version }} + + - name: Install Dagger CLI + if: steps.cache_daggercli.outputs.cache-hit != 'true' + shell: bash + run: | + curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=${{ steps.dagger_version.outputs.version }} sh + + - name: Check drift + run: | + set -e + make dagger-develop + test -z "$(git status --porcelain)" && "No drift detected" || "Drift detected. Run `make dagger-develop` and commit the changed files" diff --git a/Makefile b/Makefile index 6f308ce72..4df35780f 100644 --- a/Makefile +++ b/Makefile @@ -41,3 +41,8 @@ cross: $(GOX) # Docker container container: static docker build -t grafana/tanka . + +dagger-develop: + cp dagger/.gitignore{,.bak} + dagger develop + mv dagger/.gitignore{.bak,}