name: CI
on:
push:
branches:
- main
paths-ignore:
- charts/**
jobs:
check:
name: Check
if: ${{ !contains(github.event.head_commit.message, '[skip build]') }}
uses: VersesTech/github-actions/.github/workflows/rust-check.yaml@main
secrets: inherit
lints:
name: Lints
if: ${{ !contains(github.event.head_commit.message, '[skip build]') }}
uses: VersesTech/github-actions/.github/workflows/rust-lint.yaml@main
secrets: inherit
build-test:
name: Build and test
if: ${{ !contains(github.event.head_commit.message, '[skip build]') }}
uses: VersesTech/github-actions/.github/workflows/rust-build-test.yaml@main
secrets: inherit
with:
cargo-test-args: --engine llvm --no-dead-code
maturin:
name: Maturin
if: ${{ !contains(github.event.head_commit.message, '[skip build]') }}
uses: ./.github/workflows/maturin.yaml
secrets: inherit
create-release:
name: Create Release (RC)
if: ${{ !contains(github.event.head_commit.message, '[skip build]') }}
concurrency:
group: release
cancel-in-progress: false
needs:
- check
uses: ./.github/workflows/release.yaml
secrets: inherit
with:
config-file: release-please-config-rc.json
manifest-file: .release-please-manifest-rc.json
release-rc:
name: Release (RC)
if: |
startsWith(github.event.head_commit.message, 'chore') &&
contains(github.event.head_commit.message, 'release') &&
contains(github.event.head_commit.message, '[skip build]') &&
contains(github.event.head_commit.message, 'prerelease')
concurrency:
group: release
cancel-in-progress: false
uses: ./.github/workflows/release.yaml
secrets: inherit
with:
config-file: release-please-config-rc.json
manifest-file: .release-please-manifest-rc.json
release:
name: Release
if: |
startsWith(github.event.head_commit.message, 'chore') &&
contains(github.event.head_commit.message, 'release') &&
contains(github.event.head_commit.message, '[skip build]') &&
!contains(github.event.head_commit.message, 'prerelease')
concurrency:
group: release
cancel-in-progress: false
uses: ./.github/workflows/release.yaml
secrets: inherit
with:
config-file: release-please-config.json
manifest-file: .release-please-manifest.json