diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a1ad8b9 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,85 @@ +name: Release and Publish +on: + workflow_dispatch: + inputs: + version: + description: 'Version number' + required: true + changes_1: + description: 'Change entry' + required: true + changes_2: + description: 'Change entry' + required: false + changes_3: + description: 'Change entry' + required: false + changes_4: + description: 'Change entry' + required: false + changes_5: + description: 'Change entry' + required: false + changes_6: + description: 'Change entry' + required: false + changes_7: + description: 'Change entry' + required: false + changes_8: + description: 'Change entry' + required: false +jobs: + release_build: + name: Build the release + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + token: ${{secrets.GITHUB_TOKEN}} + - name: Build the changelog text + run: | + echo 'CHANGES<> $GITHUB_ENV + echo "## [${{github.event.inputs.version}}] - $(date +'%Y-%m-%d')" >> $GITHUB_ENV + echo "- ${{github.event.inputs.changes_1}}" >> $GITHUB_ENV + if [[ -n "${{github.event.inputs.changes_2}}" ]]; then echo "- ${{github.event.inputs.changes_2}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_3}}" ]]; then echo "- ${{github.event.inputs.changes_3}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_4}}" ]]; then echo "- ${{github.event.inputs.changes_4}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_5}}" ]]; then echo "- ${{github.event.inputs.changes_5}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_6}}" ]]; then echo "- ${{github.event.inputs.changes_6}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_7}}" ]]; then echo "- ${{github.event.inputs.changes_7}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_8}}" ]]; then echo "- ${{github.event.inputs.changes_8}}" >> $GITHUB_ENV; fi + echo "" >> $GITHUB_ENV + echo 'EOF' >> $GITHUB_ENV + - name: Update version numbers + run: | + sed -i -E 's/tool_version = .+/tool_version = '\'${{github.event.inputs.version}}\''/' RedfishEventListener_v1.py + - name: Update the changelog + run: | + ex CHANGELOG.md <" + git add CHANGELOG.md RedfishEventListener_v1.py + git commit -s -m "${{github.event.inputs.version}} versioning" + git push origin master + - name: Make the release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + with: + tag_name: ${{github.event.inputs.version}} + release_name: ${{github.event.inputs.version}} + body: | + Changes since last release: + + ${{env.CHANGES}} + draft: false + prerelease: false diff --git a/README.md b/README.md index f2feb7d..433f6ca 100644 --- a/README.md +++ b/README.md @@ -79,10 +79,8 @@ The tool can be stopped by issuing a keyboard interrupt (CTRL-C). ## Release Process -Run the `release.sh` script to publish a new version. - -```bash -sh release.sh -``` - -Enter the release notes when prompted; an empty line signifies no more notes to add. +1. Go to the "Actions" page +2. Select the "Release and Publish" workflow +3. Click "Run workflow" +4. Fill out the form +5. Click "Run workflow" diff --git a/release.sh b/release.sh deleted file mode 100755 index 3bf7aca..0000000 --- a/release.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -# Collect change log info -CHANGES="## [$1] - $(date +'%Y-%m-%d')"$'\n' -echo "Enter changes:" -while : ; do - read CHANGE - if [ "$CHANGE" = "" ]; then - break - fi - - CHANGES="$CHANGES- $CHANGE"$'\n' -done - -# Rebase -git checkout master -git fetch && git rebase origin - -# Update the version number in rf_protocol_validator.py -sed -i -E 's/tool_version = .+/tool_version = '\'$1\''/' RedfishEventListener_v1.py - -# Update the change log file -ex CHANGELOG.md <