diff --git a/.github/workflows/release-changelog.yml b/.github/workflows/release-changelog.yml index 2087e5e994..418010cb52 100644 --- a/.github/workflows/release-changelog.yml +++ b/.github/workflows/release-changelog.yml @@ -1,64 +1,28 @@ -name: Release PR Changelog +name: Generate Changelog on: pull_request: branches: - master - types: [opened, synchronize, reopened] jobs: - changelog-comment: + generate-changelog: runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Important pour s'assurer que tous les commits sont récupérés - - name: Generate changelog - id: generate_changelog - run: | - # Script pour générer le changelog à partir des commits - features="" - bug_fixes="" - - git log origin/master.. --oneline --no-merges | while read -r line ; do - commit_message=$(echo "$line" | cut -d ' ' -f 2-) - commit_type=$(echo "$commit_message" | cut -d '(' -f 1 | cut -d ':' -f 1) - commit_scope=$(echo "$commit_message" | grep -o '(\K[^)]+' | cut -d ':' -f 1) + steps: + - name: Checkout repository + uses: actions/checkout@v2 - case $commit_type in - "feat") - feature_desc=$(echo "$commit_message" | cut -d ':' -f 2-) - feature_link=$(echo "$commit_message" | grep -o '#[0-9]\+' | sed 's/#//') - features="$features* **[$commit_scope]** $feature_desc [#$feature_link]\n" - ;; - "fix") - fix_desc=$(echo "$commit_message" | cut -d ':' -f 2-) - fix_link=$(echo "$commit_message" | grep -o '#[0-9]\+' | sed 's/#//') - bug_fixes="$bug_fixes* **[$commit_scope]** $fix_desc [#$fix_link]\n" - ;; - *) - # Ignore other commit types - ;; - esac - done + - name: Install dependencies + run: npm install -g conventional-changelog-cli - echo "::set-output name=features::${features}" - echo "::set-output name=bug_fixes::${bug_fixes}" + - name: Generate Changelog + run: conventional-changelog -i CHANGELOG.md -s && git add CHANGELOG.md && git commit -m "chore(changelog): update changelog" && git push origin master - - name: Format and Comment on PR - id: comment_on_pr - run: | - changelog="$(echo "${FEATURES}" | sed '/^$/d')\n\n$(echo "${BUG_FIXES}" | sed '/^$/d')" - echo "::set-output name=changelog::$changelog" + - name: Update PR comment + uses: unsplash/comment-on-pr@v1 + with: + msg: | + Changelog has been updated. You can review it [here](https://github.com/${{ github.repository }}/blob/master/CHANGELOG.md). env: - FEATURES: ${{ steps.generate_changelog.outputs.features }} - BUG_FIXES: ${{ steps.generate_changelog.outputs.bug_fixes }} - - - name: Comment on PR - run: | - curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.number }}/comments \ - -d "{\"body\": \"## Changelog\n${{ steps.comment_on_pr.outputs.changelog }}\"}" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file