falkordb 0.2.1

A FalkorDB Rust client
Documentation
name: Release branch jobs

permissions:
  pull-requests: write
  contents: write

on:
  push:
    branches:
      - main
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

env:
  CARGO_TERM_COLOR: always

jobs:
  # Ensure formatting
  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Check Rustfmt
        run: cargo fmt --all --check

  # Make sure the release's build works
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Build
        run: cargo build

  # Ensure no clippy warnings
  clippy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Check Clippy
        run: cargo clippy

  # Make sure the release's docs are full
  doc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Doc
        run: cargo doc

  # Make sure no unwanted licenses or yanked crates have slipped in
  deny:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: EmbarkStudios/cargo-deny-action@v2
        with:
          command: check bans licenses sources

  # Actually publish to crates.io
  crates-io:
    needs:
      - fmt
      - build
      - clippy
      - doc
      - deny
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0 # Release-plz needs all the history
      - name: Run release-plz
        uses: MarcoIeni/release-plz-action@v0.5
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Automatically generated by Github Actions
          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} # Must be manually set