test #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Check Changelog | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| paths: | |
| - 'api/**' | |
| - 'ui/**' | |
| - 'prowler/**' | |
| jobs: | |
| check-changelog: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2with: | |
| with: | |
| fetch-depth: 0 | |
| - name: Get list of changed files | |
| id: changed_files | |
| run: | | |
| git fetch origin ${{ github.base_ref }} | |
| git diff --name-only origin/${{ github.base_ref }}...HEAD > changed_files.txt | |
| cat changed_files.txt | |
| - name: Check for folder changes and changelog presence | |
| id: check_folders | |
| run: | | |
| missing_changelogs="" | |
| for folder in api ui prowler; do | |
| if grep -q "^${folder}/" changed_files.txt; then | |
| echo "Detected changes in ${folder}/" | |
| if ! grep -q "^${folder}/CHANGELOG.md$" changed_files.txt; then | |
| echo "No changelog update found for ${folder}/" | |
| missing_changelogs="${missing_changelogs}- \`${folder}\`\n" | |
| fi | |
| fi | |
| done | |
| echo "missing_changelogs<<EOF" >> $GITHUB_OUTPUT | |
| echo -e "${missing_changelogs}" >> $GITHUB_OUTPUT | |
| echo "EOF" >> $GITHUB_OUTPUT | |
| - name: Find existing comment | |
| id: find_comment | |
| uses: peter-evans/find-comment@v3 | |
| with: | |
| issue-number: ${{ github.event.pull_request.number }} | |
| comment-author: 'github-actions[bot]' | |
| body-includes: '<!-- changelog-check -->' | |
| - name: Comment on PR | |
| uses: peter-evans/create-or-update-comment@v4 | |
| with: | |
| issue-number: ${{ github.event.pull_request.number }} | |
| comment-id: ${{ steps.find_comment.outputs.comment-id }} | |
| body: | | |
| <!-- changelog-check --> | |
| ${{ steps.check_folders.outputs.missing_changelogs != '' && format( | |
| '⚠️ **Changes detected in the following folders without a corresponding update to the `CHANGELOG.md`:** | |
| {0} | |
| Please add an entry to the corresponding `CHANGELOG.md` file to maintain a clear history of changes.', steps.check_folders.outputs.missing_changelogs | |
| ) || '✅ All necessary CHANGELOG.md files have been updated. Great job! 🎉' }} |