name: Create Release
on:
push:
branches:
- master
jobs:
test:
name: Build & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
bump_version:
name: Bump Version
runs-on: ubuntu-latest
needs: test
outputs:
version: ${{ steps.bump_version.outputs.versionNumber }}
changes: ${{ steps.bump_version.outputs.changeLog }}
steps:
- uses: actions/checkout@v2
with:
ref: 'master'
fetch-depth: 0
- name: Fetch History
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Bump Version Number
id: bump_version
uses: sotch-pr35mac/bump@master
- name: Commit Changes
uses: stefanzweifel/git-auto-commit-action@v4.2.0
with:
commit_message: '[auto] Apply version bump'
create_release:
name: Create Release
runs-on: ubuntu-latest
needs: bump_version
steps:
- uses: actions/checkout@v2
with:
ref: 'master'
fetch-depth: 0
- name: Fetch History
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Create Release
uses: ncipollo/release-action@v1
with:
tag: ${{ needs.bump_version.outputs.version }}
body: ${{ needs.bump_version.outputs.changes }}
token: ${{ secrets.GITHUB_TOKEN }}
package_crate:
name: Package crate
runs-on: ubuntu-latest
needs: create_release
steps:
- uses: actions/checkout@v2
with:
ref: 'master'
- name: Login
run: cargo login ${{ secrets.CARGO_TOKEN }}
- name: Package
run: cargo package
publish:
name: Publish to crates.io
runs-on: ubuntu-latest
needs: package_crate
steps:
- uses: actions/checkout@v2
with:
ref: 'master'
- name: Login
run: cargo login ${{ secrets.CARGO_TOKEN }}
- name: Publish
run: cargo publish