Skip to content

Upgrade garde to 0.15 (#4) #8

Upgrade garde to 0.15 (#4)

Upgrade garde to 0.15 (#4) #8

Workflow file for this run

name: Draft release
on:
push:
branches:
- main
env:
CARGO_TERM_COLOR: always
jobs:
draft:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/gitlog
name: Get changed commits
id: gitlog
with:
output-file: ./draft-gitlog.md
- name: Prepare changes
run: |
echo "## What's New :gem: :new: :tada:" > ./draft-changes.md
cat < ./draft-gitlog.md >> ./draft-changes.md
- name: Get release info
id: release_info
run: |
version=$(cargo metadata --format-version=1 --no-deps | jq -r '.packages[] | .version')
prerelease=false
if [[ "$version" =~ .*-.* ]]; then
prerelease=true
fi
echo "is_prerelease=$prerelease" >> $GITHUB_OUTPUT
echo "version=$version" >> $GITHUB_OUTPUT
- name: Add full change log link
run: |
echo -e "#### Full [change log](${{ github.server_url }}/${{ github.repository }}/compare/${{ steps.gitlog.outputs.last_release }}...${{ steps.release_info.outputs.version }})" >> ./draft-changes.md
- name: Check existing release
id: existing_release
run: |
if git tag | grep -e ^${{ steps.release_info.outputs.version }}$ > /dev/null; then
echo "Tag tag with ${{ steps.release_info.outputs.version }} already exists, cannot draft a release for already existing tag!, Consider upgrading versions to Cargo.toml file"
echo "is_new=false" >> $GITHUB_OUTPUT
else
echo "is_new=true" >> $GITHUB_OUTPUT
fi
- name: Remove previous release
if: ${{ steps.existing_release.outputs.is_new == 'true' }}
run: |
echo ${{ secrets.GITHUB_TOKEN }} | gh auth login --with-token
gh release delete ${{ steps.release_info.outputs.version }} -y || true
- name: Create release
id: create_release
if: ${{ steps.existing_release.outputs.is_new == 'true' }}
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.release_info.outputs.version }}
release_name: ${{ steps.release_info.outputs.version }}
body_path: ./draft-changes.md
draft: true
prerelease: ${{ steps.release_info.outputs.is_prerelease }}