name: release
concurrency:
cancel-in-progress: false
group: ${{ github.workflow }}-${{ github.ref }}
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
CARGO_TERM_COLOR: always
CARGO_PKG_VERSION: ${{ github.event.release.tag_name }}
on:
push:
branches: [ main, master ]
tags: [ v*, "*-nightly" ]
release:
types: [ published ]
repository_dispatch:
types: [ crates-io ]
workflow_dispatch:
inputs:
version:
description: 'Version to release'
required: true
default: '0.1.0'
permissions: write-all
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
-
name: setup rust-toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
cache-key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
cache-workspaces: true
-
name: publish to crates.io
run: cargo publish --all-features -v -p ${{ github.event.repository.name }}
release:
env:
CARGO_PKG_VERSION: ${{ github.event.release.tag_name }}
if: startsWith(github.event.ref, 'refs/tags/v') || startsWith(github.event.ref, 'refs/releases/v')
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
-
name: setup rust-toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
cache-key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
cache-workspaces: true
-
name: upload artifact
uses: actions/upload-artifact@v2
with:
name: proton ${{ github.event.release.tag_name }}
path: target/release/proton