Skip to content

Create EDC Release

Create EDC Release #7

Workflow file for this run

name: Create EDC Release
on:
workflow_dispatch:
inputs:
edc_version:
description: 'Version string that is used for publishing (e.g. "1.0.0", NOT "v1.0.0"). Appending -SNAPSHOT will create a snapshot release.'
required: true
type: string
env:
EDC_VERSION: ${{ github.event.inputs.edc_version || inputs.edc_version }}
jobs:
Prepare-Release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# create tag on the current branch using GitHub's own API
- name: Create tag on current branch (main)
uses: actions/github-script@v6
with:
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: 'refs/tags/v${{ env.EDC_VERSION }}',
sha: context.sha
})
# create merge commit main -> releases encoding the version in the commit message
- name: Merge main -> releases
uses: everlytic/branch-merge@1.1.5
with:
github_token: ${{ github.token }}
source_ref: ${{ github.ref }}
target_branch: 'releases'
commit_message_template: 'Merge commit for release of version v${{ env.EDC_VERSION }}'
outputs:
edc-version: ${{ env.EDC_VERSION }}
Github-Release:
# cannot use the workflow-level env yet as it does not yet exist, must take output from previous job
if: ${{ !endsWith( needs.Prepare-Release.outputs.edc-version, '-SNAPSHOT') }}
needs:
- Prepare-Release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
ref: main
- name: Create GitHub Release
uses: ncipollo/release-action@v1
with:
generateReleaseNotes: true
tag: "v${{ env.EDC_VERSION }}"
token: ${{ secrets.GITHUB_TOKEN }}
removeArtifacts: true