diff --git a/.github/workflows/deploy-integ.yml b/.github/workflows/deploy-integ.yml index ef2568a9c0..32c726f699 100644 --- a/.github/workflows/deploy-integ.yml +++ b/.github/workflows/deploy-integ.yml @@ -143,3 +143,17 @@ jobs: branch: mainline env: GITHUB_TOKEN: ${{ secrets.MERGE_TOKEN }} + check-beta-in-changelog: + name: Check Beta status + # Trigger to check and add Beta header if the latest commit isn't a release from standard-version or the last Add Beta + # workflow run + if: "!contains(github.event.head_commit.message, 'chore(release):') && !contains(github.event.head_commit.message, 'Add Beta')" + needs: merge-develop-to-mainline + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + token: ${{ secrets.MERGE_TOKEN }} + fetch-depth: 0 + - name: Check if Beta is present and add if not + run: ./scripts/check-and-add-beta.sh diff --git a/main/config/settings/.defaults.yml b/main/config/settings/.defaults.yml index dc286c814c..f4ce965b6e 100644 --- a/main/config/settings/.defaults.yml +++ b/main/config/settings/.defaults.yml @@ -171,11 +171,5 @@ auditQldbName: ${self:custom.settings.namespace}-audit # Override and disable this setting if you wish to create your portfolio manually createServiceCatalogPortfolio: true -# Version number of current release -versionNumber: '3.4.0' - -# Release date of current release -versionDate: '2021-09-16' - # Metadata provided with AWS SDK calls customUserAgent: 'AwsLabs/SO0144/${self:custom.settings.versionNumber}' diff --git a/scripts/check-and-add-beta.sh b/scripts/check-and-add-beta.sh new file mode 100755 index 0000000000..e80176c81e --- /dev/null +++ b/scripts/check-and-add-beta.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -e + +# Get the first header (not Changelog) in CHANGELOG.md +versionLine="$(cat CHANGELOG.md | grep -m 1 "[0-9]\+\.[0-9]\+\.[0-9]\+\|Beta")" + +# Check if it contains the word Beta +if (echo "$versionLine" | grep -q "Beta") +then + # Do nothing + echo "Nothing to change in changelog--still Beta" +else + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git checkout develop + # Add Beta header to changelog + echo "Need to add to changelog" + # Get latest release number + latestReleaseVersion="$(cat CHANGELOG.md | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+" | head -n 1)" + # Create ed file + echo "5i +## Beta +[This release is in beta. Click here to see changes since ${latestReleaseVersion}.](https://github.com/maghirardelli/service-workbench-on-aws-github-actions/compare/v${latestReleaseVersion}...mainline) + +. +w +q" > add-beta.ed + # Change CHANGELOG.md with ed file + ed CHANGELOG.md < add-beta.ed + # delete ed file + rm add-beta.ed + # Commit and push new changelog + git add CHANGELOG.md + git commit -m "docs: Add Beta" + git push origin develop +fi \ No newline at end of file diff --git a/scripts/environment-deploy.sh b/scripts/environment-deploy.sh index 296f10c761..1f55ac2ff4 100755 --- a/scripts/environment-deploy.sh +++ b/scripts/environment-deploy.sh @@ -53,6 +53,55 @@ pushd "$SOLUTION_DIR/post-deployment" > /dev/null $EXEC sls invoke -f postDeployment -l -s "$STAGE" popd > /dev/null +# Get the first header (not Changelog) in CHANGELOG.md +versionLine="$(cat CHANGELOG.md | grep -m 1 "[0-9]\+\.[0-9]\+\.[0-9]\+\|Beta")" + +# Get version number +versionNumber="$(echo $versionLine | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\|Beta" | head -n 1)" + +# Get version date (or generate if beta) +if [ "$versionNumber" == "Beta" ] +then + latestReleaseVersion="$(cat CHANGELOG.md | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+" | head -n 1)" + versionDate="Latest Release Version: $latestReleaseVersion" +else + versionDate="$(echo $versionLine | grep -o "[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]")" +fi + +# Is there a stage.yml file? +FILE=main/config/settings/${STAGE}.yml +if [ -f "$FILE" ] +then + # Yes-->Is there a versionDate and versionNumber key? + if (cat "$FILE" | grep -q "versionDate") && (cat "$FILE" | grep -q "versionNumber") + then + # Yes-->Are they different from above? + oldVersionNumber="$(cat "$FILE" | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\|Beta" | head -n 1)" + oldVersionDate="$(cat "$FILE" | grep -o "[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]\|Latest Release Version: [0-9]\.[0-9]\.[0-9]")" + if ([ "$oldVersionNumber" != "$versionNumber" ]) || ([ "$oldVersionDate" != "$versionDate" ]) + then + # Yes-->Replace new with old + sed -i -e "s/versionNumber: '$oldVersionNumber/versionNumber: '$versionNumber/" $FILE + sed -i -e "s/versionDate: '$oldVersionDate/versionDate: '$versionDate/" $FILE + fi + else + # No-->Append new + echo " +# Version number of current release +versionNumber: '${versionNumber}' + +# Release date of current release +versionDate: '${versionDate}'" >> "$FILE" + fi +else + # No-->Make file and append new + echo "# Version number of current release +versionNumber: '${versionNumber}' + +# Release date of current release +versionDate: '${versionDate}'" >> "$FILE" +fi + # Deploy UI pushd "$SOLUTION_DIR/ui" > /dev/null