-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/automate changelog note #278
Merged
1000TurquoisePogs
merged 24 commits into
v2.x/staging
from
feature/Automate_changelog_note
Sep 5, 2023
Merged
Changes from 22 commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
21e66a6
Added Changelog file check
sagar-1310 62e9512
Updated the code as per the suggestions
sagar-1310 405c5a4
Updated code to Build to not fail even if Changelog not udpated
sagar-1310 ac727bb
Removed temporary dir after Check changelog
sagar-1310 5a80c83
Updated Changelog to original
sagar-1310 21d4b8b
MVD-5924
Himani1519 a7b1389
MVD-5924
Himani1519 f93a33c
MVD-5924
Himani1519 57bf3ab
MVD-5924
Himani1519 06d867a
Automate changelog note
Himani1519 b81d55c
fixed syntax error
Himani1519 82447e6
To test
Himani1519 b4f12c0
Add more checks
Himani1519 6b2850d
Update changelog with PR #278 description
actions-user 93ed4e7
Add more checks
Himani1519 3cc7179
update msg
Himani1519 016abb6
update msg
Himani1519 7d7b0b6
update msg
Himani1519 2e41a8b
Minor change
Himani1519 9a0af94
Minor changes
Himani1519 33ecca8
minor change
Himani1519 3ac948e
update changelog
Himani1519 46368ee
Resolve conflicts
Himani1519 da005e3
update changelog.md
Himani1519 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -44,11 +44,101 @@ jobs: | |
github-repo: ${{ github.repository }} | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
update-changelog: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
was_updated: ${{ steps.check-change.outputs.change_detected }} | ||
check_commit: ${{ steps.check-changelog.outputs.check_commit }} | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
with: | ||
ref: ${{ github.head_ref }} | ||
fetch-depth: 0 | ||
|
||
- name: Check for updated CHANGELOG.md using git | ||
id: check-changelog | ||
run: | | ||
if git diff --name-only origin/${{ github.base_ref }} | grep -q "^CHANGELOG.md$"; then | ||
echo "CHANGELOG.md has been updated." | ||
echo "::set-output name=check_commit::true" | ||
else | ||
echo "ERROR: CHANGELOG.md has not been updated." | ||
echo "::set-output name=check_commit::false" | ||
fi | ||
- name: Extract changelog info | ||
if: steps.check-changelog.outputs.check_commit == 'false' | ||
id: extract-changelog | ||
run: | | ||
PR_DESCRIPTION="${{ github.event.pull_request.body }}" | ||
# Check if "changelog:" exists in PR description | ||
if echo "$PR_DESCRIPTION" | grep -q "VERSION:" && echo "$PR_DESCRIPTION" | grep -q "CHANGELOG:"; then | ||
# Extract text after "changelog:" | ||
CHANGELOG_TEXT=$(echo $PR_DESCRIPTION | sed -n 's/.*CHANGELOG: \(.*\)/\1/p') | ||
# Extract VERSION: from PR description | ||
VERSION=$(echo "$PR_DESCRIPTION" | grep -oP 'VERSION:\s*\Kv\d+\.\d+\.\d+') | ||
echo "Extracted changelog: $CHANGELOG_TEXT" | ||
echo "::set-output name=changelog::$CHANGELOG_TEXT" | ||
echo "::set-output name=version::$VERSION" | ||
else | ||
echo -e "No changelog and version information found in PR description please add them.\n Expected Format:\n VERSION:vX.XX.X\n CHANGELOG:This is changelog note.\n | ||
To re-run the action, just make a push or commit after updating the PR description or updating the changelog via a manual file changing commit." | ||
exit 1 | ||
fi | ||
- name: Check PR body against changelog | ||
if: steps.check-changelog.outputs.check_commit == 'false' | ||
run: | | ||
ESCAPED_CHANGELOG="${{ steps.extract-changelog.outputs.changelog }}" | ||
ESCAPED_CHANGELOG=$(echo "$ESCAPED_CHANGELOG" | sed "s/'/\\\\'/g") | ||
VERSION="${{ steps.extract-changelog.outputs.version }}" | ||
|
||
if ! grep -Fq "$ESCAPED_CHANGELOG" CHANGELOG.md; then | ||
# Check if version exists in CHANGELOG.md | ||
if grep -q "^## $VERSION" CHANGELOG.md; then | ||
# Append PR description to existing version | ||
sed -i "/^## $VERSION/a - $ESCAPED_CHANGELOG (#${{ github.event.pull_request.number }})" CHANGELOG.md | ||
else | ||
# Append new version and PR description | ||
ANCHOR_LINE=$(awk '/All notable changes to the Zlux App Server package will be documented in this file\./ {print NR}' CHANGELOG.md) | ||
sed -i "$ANCHOR_LINE a\\ | ||
\n## $VERSION\n- $ESCAPED_CHANGELOG (#${{ github.event.pull_request.number }})\n" CHANGELOG.md | ||
fi | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "Zowe Robot" | ||
git add CHANGELOG.md | ||
git commit -s -m "Update changelog with PR #${{ github.event.pull_request.number }} description" | ||
git push | ||
fi | ||
- name: check for changes | ||
id: check-change | ||
run: | | ||
if git diff --name-only HEAD^ HEAD | grep 'changelog.md'; then | ||
echo "No Changes detected, setting flag to false" | ||
echo "::set-output name=change_detected::false" | ||
else | ||
echo "::set-output name=change_detected::true" | ||
fi | ||
|
||
check_changelog: | ||
needs: update-changelog | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Verify Changelog update | ||
run: | | ||
if [ "${{ needs.update-changelog.outputs.was_updated }}" != "true" ]; then | ||
echo "CHANGELOG.md not updated, please update CHANGELOG.md with the changes made in the pull request" | ||
exit 1 | ||
else | ||
echo "changelog was updated successfully." | ||
fi | ||
|
||
build: | ||
runs-on: ubuntu-latest | ||
needs: check-permission | ||
steps: | ||
|
||
- name: '[Prep 1] Cache node modules' | ||
uses: actions/cache@v2 | ||
with: | ||
|
@@ -60,7 +150,7 @@ jobs: | |
key: ${{ runner.os }}-build-cache-node-modules-${{ hashFiles('**/package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-build-cache-node-modules- | ||
|
||
- name: '[Prep 2] Setup Node' | ||
uses: actions/setup-node@v2 | ||
with: | ||
|
@@ -96,6 +186,7 @@ jobs: | |
pax-ssh-username: ${{ secrets.SSH_MARIST_USERNAME }} | ||
pax-ssh-password: ${{ secrets.SSH_MARIST_RACF_PASSWORD }} | ||
pax-name: zlux-core | ||
|
||
- name: '[Prep 7] deploy' | ||
uses: zowe-actions/zlux-builds/core/[email protected]/main | ||
|
This file contains 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
This file contains 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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is that actually true? Will "changelog:" work? Or is it case sensitive?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it is, then next line should be updated