From 4a0b3dbeabc9cdc0be89a36def027dabcddd7ba7 Mon Sep 17 00:00:00 2001 From: syadav3 Date: Thu, 10 Aug 2023 00:27:05 +0530 Subject: [PATCH 01/10] Added Merge Check for Changelog file Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 6433a9d..ea6ea44 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -33,6 +33,50 @@ jobs: github-repo: ${{ github.repository }} github-token: ${{ secrets.GITHUB_TOKEN }} + check_changelog: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + path: copy-repo + fetch-depth: ${{ github.event_name == 'pull_request' && 2 || 0 }} + + - name: Get changed files + id: changed-files + run: | + cd copy-repo + if ${{ github.event_name == 'pull_request' }}; then + echo "changed_files=$(git diff --name-only -r HEAD^1 HEAD | xargs)" >> $GITHUB_OUTPUT + else + echo "changed_files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT + fi + + - name: List changed files + id: set-flag + run: | + cd copy-repo + for file in ${{ steps.changed-files.outputs.changed_files }}; do + echo "$file was changed" + if [[ $file == "CHANGELOG.md" ]] + then + echo "file-flag=true" >> $GITHUB_OUTPUT + break; + else + echo "file-flag=false" >> $GITHUB_OUTPUT + fi + done + + - name: Check if CHANGELOG is Updated and Abort if not updated + if: steps.set-flag.outputs.file-flag != 'true' + run: | + echo "CHANGELOG.md not updated, please update CHANGELOG.md with the changes made in the pull request" + exit 1 + + - name: Remove copy-repo + if: always() + run: rm -r copy-repo + build: runs-on: ubuntu-latest needs: check-permission From c648d38fb0df80ebcfb550227bca11ed4a79a087 Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Wed, 23 Aug 2023 14:12:03 +0530 Subject: [PATCH 02/10] Automate changelog note Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 115 ++++++++++++++++++++++--------- 1 file changed, 81 insertions(+), 34 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index ea6ea44..9625d5d 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -33,49 +33,96 @@ jobs: github-repo: ${{ github.repository }} github-token: ${{ secrets.GITHUB_TOKEN }} - check_changelog: + 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@v3 + uses: actions/checkout@v2 with: - path: copy-repo - fetch-depth: ${{ github.event_name == 'pull_request' && 2 || 0 }} + ref: ${{ github.head_ref }} + fetch-depth: 0 - - name: Get changed files - id: changed-files + - 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*\K\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: | - cd copy-repo - if ${{ github.event_name == 'pull_request' }}; then - echo "changed_files=$(git diff --name-only -r HEAD^1 HEAD | xargs)" >> $GITHUB_OUTPUT + 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 - echo "changed_files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT + # Append new version and PR description + ANCHOR_LINE=$(awk '/All notable changes to the sample iframe app 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 - - - name: List changed files - id: set-flag + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add CHANGELOG.md + git commit -m "Update changelog with PR #${{ github.event.pull_request.number }} description" + git push + fi + - name: check for changes + id: check-change run: | - cd copy-repo - for file in ${{ steps.changed-files.outputs.changed_files }}; do - echo "$file was changed" - if [[ $file == "CHANGELOG.md" ]] - then - echo "file-flag=true" >> $GITHUB_OUTPUT - break; - else - echo "file-flag=false" >> $GITHUB_OUTPUT - fi - done - - - name: Check if CHANGELOG is Updated and Abort if not updated - if: steps.set-flag.outputs.file-flag != 'true' - run: | - echo "CHANGELOG.md not updated, please update CHANGELOG.md with the changes made in the pull request" - exit 1 - - - name: Remove copy-repo - if: always() - run: rm -r copy-repo + 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 From 2e4ff0746eb8b86b275120689d0a38b56b3c2ab7 Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Wed, 23 Aug 2023 14:16:39 +0530 Subject: [PATCH 03/10] Fix syntax error Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 9625d5d..92f5761 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -108,21 +108,21 @@ jobs: 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 + 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 + - 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 From 8667d3dc547aa49f595f0562330e54b408487d20 Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Tue, 29 Aug 2023 19:58:32 +0530 Subject: [PATCH 04/10] minor change Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 92f5761..70a41ab 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -92,10 +92,10 @@ jobs: sed -i "$ANCHOR_LINE a\\ \n## $VERSION\n- $ESCAPED_CHANGELOG (#${{ github.event.pull_request.number }})\n" CHANGELOG.md fi - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" + git config --global user.email "zowe-robot@users.noreply.github.com" + git config --global user.name "Zowe Robot" git add CHANGELOG.md - git commit -m "Update changelog with PR #${{ github.event.pull_request.number }} description" + git commit -s -m "Update changelog with PR #${{ github.event.pull_request.number }} description" git push fi - name: check for changes From 3fc2c4018e8b7c4fbc934c25315e11a518c6641e Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 23 Aug 2023 08:47:45 +0000 Subject: [PATCH 05/10] Update changelog with PR #37 description Signed-off-by: Himani1519 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a34d6d4..98f0276 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to the sample iframe app will be documented in this file. ## 1.2.1 +- This action making a CHANGELOG note via special syntax from the GitHub PR commit message, like it could automatically update CHANGELOG.md with the message. First job checks if PR body has changelog note or not if it's not there then it asked them to add it and second job is to check if changelog note has been added in changelog.md file or not. (#37) - Bugfix: Schema file was not included, preventing installation as a component - Bugfix: Manifest build content template was never resolved, so it has been removed. From f6ee878f48ccb3c30716efd3941a46c18b2c8807 Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Tue, 5 Sep 2023 10:32:46 -0400 Subject: [PATCH 06/10] Remove test comment Signed-off-by: 1000TurquoisePogs --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98f0276..d2a774b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,8 +3,6 @@ All notable changes to the sample iframe app will be documented in this file. ## 1.2.1 -- This action making a CHANGELOG note via special syntax from the GitHub PR commit message, like it could automatically update CHANGELOG.md with the message. First job checks if PR body has changelog note or not if it's not there then it asked them to add it and second job is to check if changelog note has been added in changelog.md file or not. (#37) - - Bugfix: Schema file was not included, preventing installation as a component - Bugfix: Manifest build content template was never resolved, so it has been removed. From ed277b71ffbb0bad3de6d62b85dfe34bda4eccf1 Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Fri, 8 Sep 2023 11:41:19 +0530 Subject: [PATCH 07/10] update changelog when its PR Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 473ece0..a3daebd 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -34,6 +34,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} update-changelog: + if: github.event_name == 'pull_request' runs-on: ubuntu-latest outputs: was_updated: ${{ steps.check-change.outputs.change_detected }} @@ -109,6 +110,7 @@ jobs: fi check_changelog: + if: github.event_name == 'pull_request' needs: update-changelog runs-on: ubuntu-latest steps: From f5e5ab466562b9445da7d805ada20fd1ce374eea Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Fri, 8 Sep 2023 11:43:21 +0530 Subject: [PATCH 08/10] update changelog when its PR Signed-off-by: Himani1519 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2a774b..501a3d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ All notable changes to the sample iframe app will be documented in this file. ## 1.2.1 + +- Small update in changelog action, it will check and update changelog when its a PR, Currently some builds show that they are failing because of the changelog, the changelog logic shouldn't run unless if its a pull request. - Bugfix: Schema file was not included, preventing installation as a component - Bugfix: Manifest build content template was never resolved, so it has been removed. From d90b4f0e0f895386d02d3a9e6bcf17b8a861f387 Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Fri, 8 Sep 2023 11:46:00 +0530 Subject: [PATCH 09/10] removed note from changelog.md Signed-off-by: Himani1519 --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 501a3d0..a34d6d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,6 @@ All notable changes to the sample iframe app will be documented in this file. ## 1.2.1 -- Small update in changelog action, it will check and update changelog when its a PR, Currently some builds show that they are failing because of the changelog, the changelog logic shouldn't run unless if its a pull request. - Bugfix: Schema file was not included, preventing installation as a component - Bugfix: Manifest build content template was never resolved, so it has been removed. From 0a19cec7b4b5163c4c3edd8505af5893ac191ca0 Mon Sep 17 00:00:00 2001 From: zowe-robot Date: Wed, 20 Sep 2023 18:44:04 +0000 Subject: [PATCH 10/10] v2.12.0 Signed-off-by: zowe-robot --- manifest.yaml | 2 +- pluginDefinition.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.yaml b/manifest.yaml index 558db40..34571c3 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -2,7 +2,7 @@ name: iframe-sample id: org.zowe.zlux.sample.iframe # Without the v -version: 2.11.0 +version: 2.12.0 # Human readable component name title: IFrame Sample # Human readable component description diff --git a/pluginDefinition.json b/pluginDefinition.json index 25724bf..3471278 100644 --- a/pluginDefinition.json +++ b/pluginDefinition.json @@ -1,7 +1,7 @@ { "identifier": "org.zowe.zlux.sample.iframe", "apiVersion": "2.0.0", - "pluginVersion": "2.11.0", + "pluginVersion": "2.12.0", "license": "EPL-2.0", "author": "Zowe", "homepage": "https://github.com/zowe/sample-iframe-app",