From c015db2b2ae22e8b05a0fc1e4a4b3232c6f69c8a Mon Sep 17 00:00:00 2001 From: Hannes Mehnert Date: Mon, 6 Jan 2025 18:19:20 +0100 Subject: [PATCH] add a github workflow checking for x-maintenance-intent in the opam files of the PR --- .github/workflows/maintenance-intent.yml | 52 ++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/maintenance-intent.yml diff --git a/.github/workflows/maintenance-intent.yml b/.github/workflows/maintenance-intent.yml new file mode 100644 index 00000000000..805ac51e1f0 --- /dev/null +++ b/.github/workflows/maintenance-intent.yml @@ -0,0 +1,52 @@ +name: maintenance-intent present + +on: + pull_request + +jobs: + changed_files: + runs-on: ubuntu-latest + name: Evaluate changed-files + steps: + - uses: actions/checkout@v4 + - name: Get changed files + id: changed-files + uses: tj-actions/changed-files@v45 + + - name: Find opam files without x-maintenance-intent field + id: missing-intent + env: + ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} + run: | + for file in ${ALL_CHANGED_FILES}; do + bn=$(basename ${file}) + if [ $bn = "opam" ]; then + grep "^x-maintenance-intent: " ${file} > /dev/null; + maint_int_present=$? + if [ $maint_int_present -eq 1 ]; then + echo "- $file" >> maint-int.md + fi; + fi; + done; + if [ -f maint-int.md ]; then + echo "modified=true" >> $GITHUB_OUTPUT + echo "The following opam files lack the x-maintenance-intent field:" > maint-int2.md + echo "" >> maint-int2.md + cat maint-int.md >> maint-int2.md + echo "" >> maint-int2.md + echo "Please look at https://github.com/ocaml/opam-repository/blob/master/governance/policies/archiving.md#specification-of-the-x--fields-used-in-the-archiving-process for further information." >> int-maint2.md + mv maint-int2.md maint-int.md + else + echo "modified=false" >> $GITHUB_OUTPUT + fi + + - name: Add PR Comment + if: steps.missing-intent.outputs.modified == 'true' + uses: marocchino/sticky-pull-request-comment@v2 + with: + recreate: true + path: maint-int.md + + - name: Write to Job Summary + if: steps.missing-intent.outputs.modified == 'true' + run: cat maint-int.md >> $GITHUB_STEP_SUMMARY