Skip to content

ci: Update automated release workflow #11

ci: Update automated release workflow

ci: Update automated release workflow #11

Workflow file for this run

name: Core
on:
push:
branches: [master]
pull_request: {}
permissions:
contents: read
env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: --deny warnings
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Init toolchain
uses: alorel-actions/cargo/init@v1
with:
components: rustfmt,clippy
cache-prefix: lint
local: true
- name: Fmt
run: cargo fmt --check
- name: Clippy
run: cargo clippy --locked --tests
- name: Doc
run: cargo doc --locked --no-deps && rm -rf target/doc
- name: cargo-rdme
uses: alorel-actions/cargo/rdme@v1
with:
intralinks-strip-links: true
test:
name: Test on ${{matrix.toolchain}}
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- nightly-2023-10-28
- stable
- 1.70.0
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Init toolchain
uses: alorel-actions/cargo/init@v1
with:
toolchain: ${{matrix.toolchain}}
cache-prefix: test
local: true
- name: Install wasm-pack
uses: alorel-actions/cargo-global-dep@v1
with:
name: wasm-pack
version: 0.12.1
- name: Test (no features)
run: wasm-pack test --headless --firefox --chrome --locked --no-default-features
- name: Test (default features)
run: wasm-pack test --headless --firefox --chrome --locked
- name: Test (nightly)
run: wasm-pack test --headless --firefox --chrome --locked --all-features
if: ${{startsWith(matrix.toolchain, 'nightly')}}
release:
name: Release
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/master' }}
needs:
- lint
- test
permissions:
contents: write
steps:
- uses: actions/checkout@v4
name: Checkout
with:
fetch-depth: 0
fetch-tags: true
token: ${{ secrets.GH_TOKEN }}
- name: Parse
id: parse
uses: alorel-actions/semantic-release-lite@v0
with:
stay-at-zero: true
minor-types: |
feat: Features
patch-types: |
fix: Bug Fixes
trivial-types: |
chore: Maintenance
deps: Dependency updates
ci: CI & Build
build: CI & Build
refactor: Refactors
docs: Documentation
perf: Performance
- name: Prep release
if: ${{ steps.parse.outputs.should-release }}
id: prep
uses: ./.github/actions/prep-release
with:
release-type: ${{ steps.parse.outputs.release-type }}
version: ${{ steps.parse.outputs.next-version }}
- name: Release
if: ${{ steps.prep.outputs.in-sync }}
uses: ./.github/actions/release
with:
version: ${{ steps.parse.outputs.next-version }}
changelog: ${{ steps.parse.outputs.changelog }}
issues-closed: ${{ steps.parse.outputs.issues-closed }}
crates-io-token: ${{ secrets.CRATES_IO_TOKEN }}