diff --git a/.github/workflows/xep-validation.yml b/.github/workflows/xep-validation.yml new file mode 100644 index 000000000..5facd7712 --- /dev/null +++ b/.github/workflows/xep-validation.yml @@ -0,0 +1,45 @@ +name: XEP validation + +on: + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + name: Test changed-files + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Detect changes to XEP files. + id: changed-xeps + uses: tj-actions/changed-files@v34 + with: + files: | + xep-*.xml + inbox/* + + - name: Run step if any file(s) in the docs folder change. + id: validation + if: steps.changed-xeps.outputs.any_changed == 'true' + run: | + result=Success + for xep in "${{ steps.changed-xeps.outputs.all_changed_files }}"; do + if ! tools/validate-xep0001-conformance.sh "$xep"; then + result=Failure + echo "validate_$xep=success" >> $GITHUB_OUTPUT + else + echo "validate_$xep=failure" >> $GITHUB_OUTPUT + fi + done + echo "result=$result" >> $GITHUB_OUTPUT + + - uses: mshick/add-pr-comment@v2 + if: steps.changed-files-specific.outputs.any_changed == 'true' + with: + issue: ${{ steps.validation.outputs.result }} + message: | + Automated XEP validation result: ${{ steps.validation.outputs.result }}