Skip to content

Merge pull request #26 from Concordium/release/4.0.0 #14

Merge pull request #26 from Concordium/release/4.0.0

Merge pull request #26 from Concordium/release/4.0.0 #14

Workflow file for this run

name: Publish release for SwiftPM package tag
on:
push:
tags: '*.*.*'
workflow_dispatch: # trigger manually (for debugging)
jobs:
publish-release:
runs-on: ubuntu-latest
steps:
- name: Parse ref
uses: bisgardo/github-action-parse-ref@v1
id: ref
with:
ref: '${{github.ref}}'
- name: Fail if ref is not a tag
if: "steps.ref.outputs.ref-type != 'tags'"
run: exit 1
- name: Checkout project
uses: actions/checkout@v4
with:
ref: '${{steps.ref.outputs.ref}}'
submodules: recursive # necessary to call 'cargo metadata'
- name: Extract version of the crate
uses: bisgardo/github-action-echo@v1
id: crate-version
with:
version: |-
$(cargo metadata --format-version=1 2>/dev/null | jq -r '.packages[] | select(.name == "concordium-wallet-crypto-uniffi") | .version')
- name: 'Print outputs (for debugging)'
run: |
echo "github.ref='${{github.ref}}'"
echo "steps.ref.outputs.ref='${{steps.ref.outputs.ref}}'"
echo "steps.ref.outputs.ref-name='${{steps.ref.outputs.ref-name}}'"
echo "steps.crate-version.outputs.version='${{steps.crate-version.outputs.version}}'"
- name: Fail if tag doesn't match crate version
if: "steps.crate-version.outputs.version != steps.ref.outputs.ref-name"
run: exit 1
- name: Extract tag message
uses: bisgardo/github-action-echo@v1
id: tag-msg
with:
msg: '$(git for-each-ref "${{steps.ref.outputs.ref}}" --format="%(contents)")'
- name: Fail if tag is not "annotated" or its message is empty
if: "steps.tag-msg.outputs.msg == ''"
run: exit 1
- name: Upload package as GitHub release
uses: softprops/action-gh-release@v2
with:
tag_name: '${{steps.ref.outputs.ref-name}}'
name: '${{steps.ref.outputs.ref-name}}'
# Release body is the message of the annotated tag.
body: |
${{steps.tag-msg.outputs.msg}}
generate_release_notes: false