Skip to content

Commit

Permalink
Merge branch 'v2.x/staging' into v2.x/rc
Browse files Browse the repository at this point in the history
  • Loading branch information
1000TurquoisePogs authored Oct 11, 2023
2 parents 5b84d17 + fa71348 commit 56cb92d
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 61 deletions.
120 changes: 85 additions & 35 deletions .github/workflows/build-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,50 +44,99 @@ jobs:
github-repo: ${{ github.repository }}
github-token: ${{ secrets.GITHUB_TOKEN }}

check_changelog:
update-changelog:
if: github.event_name == 'pull_request'
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: |
cd copy-repo
if ${{ github.event_name == 'pull_request' }}; then
echo "changed_files=$(git diff --name-only -r HEAD^1 HEAD | xargs)" >> $GITHUB_OUTPUT
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
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 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
- name: List changed files
id: set-flag
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: |
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
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
- 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
check_changelog:
if: github.event_name == 'pull_request'
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: Remove copy-repo
if: always()
run: rm -r copy-repo

build:
runs-on: ubuntu-latest
needs: check-permission
Expand All @@ -103,7 +152,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:
Expand Down Expand Up @@ -139,6 +188,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

4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Zlux App Server Changelog

All notable changes to the Zlux App Server package will be documented in this file.

## v2.12.0
- enhancement: new versions of components can change the location of their plugins, as the app-server will now re-inspect the plugin locations on each startup. (#280)


## v2.11.0

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
This program and the accompanying materials are
This program and the accompanying materials are
made available under the terms of the Eclipse Public License v2.0 which accompanies
this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html

Expand Down
44 changes: 19 additions & 25 deletions bin/init/plugins-init.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,33 +38,27 @@ function deleteFile(path) {
}

function registerPlugin(pluginPath, pluginDefinition) {
const pointerPath = `${pluginPointerDirectory}/${pluginDefinition.identifier}.json`;
if (fs.fileExists(pointerPath)) {
//in case of upgrade
registerApp2App(pluginPath, pluginDefinition.identifier, pluginDefinition.pluginVersion);
return true;
} else {
let location, relativeTo;
if (pluginPath.startsWith(runtimeDirectory)) {
relativeTo = "$ZWE_zowe_runtimeDirectory";
location = pluginPath.substring(runtimeDirectory.length);
if (location.startsWith('/')) {
location = location.substring(1);
}

xplatform.storeFileUTF8(pointerPath, xplatform.AUTO_DETECT, JSON.stringify({
"identifier": pluginDefinition.identifier,
"pluginLocation": location,
"relativeTo": relativeTo
}, null, 2));
} else {
xplatform.storeFileUTF8(pointerPath, xplatform.AUTO_DETECT, JSON.stringify({
"identifier": pluginDefinition.identifier,
"pluginLocation": pluginPath
}, null, 2));
const pointerPath = `${pluginPointerDirectory}/${pluginDefinition.identifier}.json`;
let location, relativeTo;
if (pluginPath.startsWith(runtimeDirectory)) {
relativeTo = "$ZWE_zowe_runtimeDirectory";
location = pluginPath.substring(runtimeDirectory.length);
if (location.startsWith('/')) {
location = location.substring(1);
}
registerApp2App(pluginPath, pluginDefinition.identifier, pluginDefinition.pluginVersion);

xplatform.storeFileUTF8(pointerPath, xplatform.AUTO_DETECT, JSON.stringify({
"identifier": pluginDefinition.identifier,
"pluginLocation": location,
"relativeTo": relativeTo
}, null, 2));
} else {
xplatform.storeFileUTF8(pointerPath, xplatform.AUTO_DETECT, JSON.stringify({
"identifier": pluginDefinition.identifier,
"pluginLocation": pluginPath
}, null, 2));
}
registerApp2App(pluginPath, pluginDefinition.identifier, pluginDefinition.pluginVersion);
}


Expand Down

0 comments on commit 56cb92d

Please sign in to comment.