name: Release on: push: tags: - "v*" jobs: cargo_publish: name: Publish to Crates.io runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2.4.0 - name: Setup Rust Toolchain uses: actions-rs/toolchain@v1.0.7 with: toolchain: stable override: true profile: minimal - name: Setup Cargo Plugins uses: actions-rs/cargo@v1.0.3 with: command: install args: cargo-workspaces - name: Publish to Crates.io env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} run: | cargo workspaces publish --from-git -y github_release: name: Create GitHub Release runs-on: ubuntu-latest needs: ["cargo_publish"] steps: - name: Checkout uses: actions/checkout@v2.4.0 with: fetch-depth: 0 - name: Setup Go uses: actions/setup-go@v2 with: go-version: "1.16" - name: Release Notes run: | go install github.com/git-chglog/git-chglog/cmd/git-chglog@v0.15.0 git-chglog -c .github/chglog/release.yml $(git describe --tags) > RELEASE.md - name: Create Release uses: softprops/action-gh-release@v1 with: body_path: RELEASE.md draft: true