genius-core-client 0.4.0

Genius Core Client Library. Written in Rust and using PyO3 for Python bindings.
Documentation
name: CI

on:
  push:
    branches:
      - main
    paths-ignore:
      - charts/**

jobs:
  check:
    name: Check
    # Don't run on release commits
    if: ${{ !contains(github.event.head_commit.message, '[skip build]') }}
    uses: VersesTech/github-actions/.github/workflows/rust-check.yaml@main
    secrets: inherit

  lints:
    name: Lints
    # Don't run on release commits
    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
    # Don't run on release commits
    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
    # Don't run on release commits
    if: ${{ !contains(github.event.head_commit.message, '[skip build]') }}
    uses: ./.github/workflows/maturin.yaml
    secrets: inherit
  
  create-release:
    name: Create Release (RC)
    # Don't run on release commits
    if: ${{ !contains(github.event.head_commit.message, '[skip build]') }}
    concurrency:
      group: release
      cancel-in-progress: false
    needs:
      - check
      # TODO: uncomment once lints are passing
      # - lints
      # TODO: uncomment once we have tests working in CI
      # - build-test
    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
    # Only run from a merged release PR
    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