name: Release
on:
workflow_dispatch:
inputs:
tag:
description: Release Tag Name (e.g. v1.1.2)
required: true
jobs:
build:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install minimal nightly
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
- name: test
uses: actions-rs/cargo@v1
with:
command: test
- name: Release build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --all-features
- name: Crates Login
run: cargo login ${{ secrets.CRATES_TOKEN }}
- name: Release Publish
uses: actions-rs/cargo@v1
with:
command: publish
- name: Create Release
uses: release-drafter/release-drafter@v5
with:
name: ${{ github.event.inputs.tag }}
tag: ${{ github.event.inputs.tag }}
version: ${{ github.event.inputs.tag }}
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}