name: Crates Release
on:
workflow_dispatch:
inputs:
version:
description: 'major/minor/patch or semver'
required: true
default: 'patch'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- name: Run update script
id: script
run: |
npm ci
npm run start -- ${{ github.event.inputs.version }}
working-directory: ./.github/scripts
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Publish on crates.io
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: cargo publish --allow-dirty
- name: Push updated Cargo.toml
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Release: ${{ steps.script.outputs.newVersion }}"
git tag "v${{ steps.script.outputs.newVersion }}"
git push --tags origin main