My objective is to create a GitHub action that, when the release.yml file changes, would either update an existing release or create a new release after checking if that release version is new checking against the previous commit. Ultimately would like to add this to other projects where I would like to add actions and release.yml.
The current issue I am having is difficulty in wrapping my head around how to go about is detecting changes in the release.yml file against the version.
For the very basic use case of adding a new release a simple approach of creating action.yml and adding
version_1_0: # id of input
description: '1.0'
required: true
default: 'The most important changes are downgrading the artifact to java7 (from 8) and switching to gmavenplus plugin to compile groovy.
Besides that, there is a lot of restructuring inside of the pom.xml file
# Misc
* Polishing (f2ec0bb, 9e2ae89 and 8654493)
_Reviewed by_: @user'
and later in index.js file
const version = core.getInput('version_1_0');
core.setOutput("ver", version);
gives the output which later in the GitHub actions file can be fetched and cleaned and later forwarded to the release step to be used to create the release
push:
paths:
- release.yml
branches:
- file_change_trigger
jobs:
hello_world_job:
runs-on: ubuntu-latest
name: release notes
outputs:
output1: ${{ steps.step1.outputs.test }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- run:
description=${{ steps.hello.outputs.ver }}
echo $description
description="${description//'%'/'%25'}"
description="${description//$'\n'/'%0A'}"
description="${description//$'\r'/'%0D'}"
echo $description
echo "::set-output name=test::$description"
release_note:
name: Create Release
runs-on: ubuntu-latest
needs: hello_world_job
steps:
- name: Checkout code
uses: actions/checkout@v2
# Use the output from the `hello` step
- name: Get the output time
run: echo "${{needs.hello_world_job.outputs.output1}}"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body: |
${{needs.hello_world_job.outputs.output1}}
draft: false
prerelease: false
Unfortunately, this approach proved insufficient when I attempt for a file-based trigger based on diffs.
sample release.yml
v1.0:
body:
'The most important changes are downgrading the artifact to java7 (from 8) and switching to gmavenplus plugin to compile groovy.
Besides that, there is a lot of restructuring inside of the pom.xml file
# Misc
* Polishing (f2ec0bb, 9e2ae89 and 8654493)
_Reviewed by_: @user'
v2.0:
body:
'The most important changes are downgrading the artifact to java7 (from 8) and switching to gmavenplus plugin to compile groovy.
# Misc
* Polishing (f2ec0bb, 9e2ae89 and 8654493)
_Reviewed by_: @user'