diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
deleted file mode 100644
index 40c5a30..0000000
--- a/.github/workflows/validate.yml
+++ /dev/null
@@ -1,118 +0,0 @@
-name: Validate Otterdog Configuration
-
-on:
- workflow_dispatch:
- pull_request_target:
- branches: [ main ]
-
-permissions:
- contents: read
- pull-requests: write
-
-jobs:
- validate:
- # do not run the workflow in the template repo itself
- if: ${{ !contains (github.repository, '/.eclipsefdn-template') }}
- runs-on: ubuntu-latest
- steps:
- - name: Checkout eclipse-csi/otterdog
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- with:
- repository: eclipse-csi/otterdog
- path: otterdog
-
- - name: Checkout EclipseFdn/otterdog-configs
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- with:
- repository: EclipseFdn/otterdog-configs
- path: otterdog-configs
-
- # checkout the head ref of the PR
- # NOTE: in general it is bad practice to check out the pull request HEAD for PRs originating from forked repos,
- # however, this validation workflow produces a diff between the changes in the PR with the base ref, thus
- # doing this is acceptable, see https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
- - name: Checkout HEAD ref of the PR
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- with:
- ref: ${{ github.event.pull_request.head.sha }}
- path: ${{ github.repository_owner }}
-
- # checkout the base ref of the PR
- - name: Checkout BASE ref of the PR (target branch)
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- with:
- ref: ${{ github.base_ref }}
- path: ${{ github.repository_owner }}-base
-
- - name: Install jsonnet-bundler
- run: |
- go install -a github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@v0.5.1
- echo $(go env GOPATH)/bin >> $GITHUB_PATH
-
- - name: Install poetry
- run: pipx install poetry
-
- - name: Setup Python
- uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
- with:
- python-version: '3.10'
- cache: 'poetry'
-
- - name: Install dependencies with poetry
- run: |
- poetry install --only=main
- working-directory: otterdog
-
- - name: Copy configuration from HEAD and BASE ref
- run: |
- mkdir -p orgs/${{ github.repository_owner }}
- cp -r ../${{ github.repository_owner }}/otterdog/* orgs/${{ github.repository_owner }}
- cp ../${{ github.repository_owner }}-base/otterdog/${{ github.repository_owner }}.jsonnet orgs/${{ github.repository_owner }}/${{ github.repository_owner }}.jsonnet-BASE
- working-directory: otterdog-configs
-
- - name: Validate Otterdog Configuration and diff HEAD <-> BASE
- id: validate
- run: |
- # use script to enable ansi color output
- script -e -q /dev/null --command "../otterdog/otterdog.sh local-plan ${{ github.repository_owner }} -c otterdog.json --suffix=-BASE" | tee "$GITHUB_WORKSPACE/diff-ansi.txt"
- echo "VALIDATION_STATUS=${PIPESTATUS[0]}" >> $GITHUB_OUTPUT
- # filter out ansi escape sequences again, use sed as ansi2txt is not available
- cat "$GITHUB_WORKSPACE/diff-ansi.txt" | sed -e 's/\x1b\[[0-9;]*m//g' | sed -E 's/^([[:space:]]+)([-+!])/\2\1/g' | sed -E 's/^([[:space:]]+)([~])/!\1/g' > "$GITHUB_WORKSPACE/diff.txt"
- working-directory: otterdog-configs
-
- - name: Generate canonical diff
- run: |
- ../otterdog/otterdog.sh canonical-diff ${{ github.repository_owner }} -c otterdog.json | tee "$GITHUB_WORKSPACE/canonical-diff-ansi.txt"
- # filter out ansi escape sequences
- cat "$GITHUB_WORKSPACE/canonical-diff-ansi.txt" | sed -e 's/\x1b\[[0-9;]*m//g' | sed -E 's/^([[:space:]]+)([-+!])/\2\1/g' | sed -E 's/^([[:space:]]+)([~])/!\1/g' > "$GITHUB_WORKSPACE/canonical-diff.txt"
- working-directory: otterdog-configs
-
- # Add a comment to the pull request with the diff
-
- - name: Generate comment
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
- with:
- script: |
- const commentText = 'Diff for ' + process.env.GITHUB_SHA + ':';
- const canonicalCommentText = 'Canonical Diff for ' + process.env.GITHUB_SHA + ':';
-
- const fs = require('fs');
- const diff = fs.readFileSync(process.env.GITHUB_WORKSPACE + '/diff.txt').toString().trimEnd();
- const canonicalDiff = fs.readFileSync(process.env.GITHUB_WORKSPACE + '/canonical-diff.txt').toString().trimEnd();
-
- var body = "\n" + commentText + "
\n\n```diff\n" + diff + "\n```\n\n \n" +
- "\n" + canonicalCommentText + "
\n\n```diff\n" + canonicalDiff + "\n```\n\n ";
-
- fs.writeFileSync(process.env.GITHUB_STEP_SUMMARY, body);
- fs.writeFileSync(process.env.GITHUB_WORKSPACE + '/comment.txt', body);
-
- - name: Attach comment to PR
- uses: marocchino/sticky-pull-request-comment@efaaab3fd41a9c3de579aba759d2552635e590fd # v2.8.0
- with:
- hide_and_recreate: true
- hide_classify: "OUTDATED"
- path: ${{ github.workspace }}/comment.txt
-
- - name: Propagate validation exit status
- run: |
- exit ${{ steps.validate.outputs.VALIDATION_STATUS }}