Skip to content

Commit

Permalink
ci: Update automated release workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
Alorel committed Oct 29, 2023
1 parent 2de1d83 commit 86d7c45
Show file tree
Hide file tree
Showing 8 changed files with 200 additions and 69 deletions.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @Alorel
1 change: 1 addition & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1. Don't be a cunt :slightly_smiling_face:
6 changes: 6 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# These are supported funding model platforms

github:
- Alorel
custom:
- "https://paypal.me/alorel"
30 changes: 30 additions & 0 deletions .github/actions/prep-release/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Prep release
description: Prepare the release
inputs:
release-type:
description: Release type
required: true
version:
description: Next version
required: true
outputs:
in-sync:
description: Sync check
value: ${{ steps.sync-check.outputs.in-sync }}
runs:
using: composite
steps:
- name: Git identity
uses: alorel-actions/git-ident@v1
- name: Init toolchain
uses: alorel-actions/cargo/init@v1
id: toolchain
with:
cache-prefix: release
- name: cargo-bump
uses: alorel-actions/cargo/bump@v1
with:
release-type: ${{ inputs.release-type }}
- name: Sync check
id: sync-check
uses: alorel-actions/semantic-release-lite/sync-check@v0
33 changes: 33 additions & 0 deletions .github/actions/release/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Release
description: Do the release
inputs:
version:
description: Version to release
required: true
changelog:
description: The changelog
required: true
issues-closed:
description: Issues we've closed
crates-io-token:
description: crates.io API token
required: true
runs:
using: composite
steps:
- uses: alorel-actions/cargo/release-git@v1
with:
version: ${{ inputs.version }}
changelog: ${{ inputs.changelog }}

- name: Publish crate
shell: bash
run: cargo publish --locked --token ${{ inputs.crates-io-token }}

- name: Notify
if: ${{ inputs.issues-closed }}
uses: alorel-actions/semantic-release-lite/notify@v0
with:
tag: ${{ inputs.version }}
issues: ${{ inputs.issues-closed }}
allow-out-of-sync: true
129 changes: 129 additions & 0 deletions .github/workflows/core.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
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 }}
68 changes: 0 additions & 68 deletions .github/workflows/test.yml

This file was deleted.

1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
*.log
/target
/tmp.js
/.github/generate-changelog/node_modules/

0 comments on commit 86d7c45

Please sign in to comment.