chore: release (#10) #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release branch jobs | |
permissions: | |
pull-requests: write | |
contents: write | |
on: | |
push: | |
branches: | |
- main | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
# Ensure formatting | |
fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check Rustfmt | |
run: cargo fmt --all --check | |
# Make sure the release's build works | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build | |
run: cargo build | |
# Generate code coverage using llvm cov | |
coverage: | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Populate test graph | |
run: pip install falkordb && ./resources/populate_graph.py | |
- uses: taiki-e/install-action@cargo-llvm-cov | |
- uses: taiki-e/install-action@nextest | |
- name: Generate Code Coverage | |
run: cargo llvm-cov nextest --all --codecov --output-path codecov.json | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} # Must be manually set | |
files: codecov.json | |
fail_ci_if_error: true | |
services: | |
falkordb: | |
image: falkordb/falkordb:edge | |
ports: | |
- 6379:6379 | |
# Ensure no clippy warnings | |
clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check Clippy | |
run: cargo clippy --all | |
# Make sure the release's docs are full | |
doc: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Doc | |
run: cargo doc --all | |
# Make sure no unwanted licenses or yanked crates have slipped in | |
deny: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: EmbarkStudios/cargo-deny-action@v1 | |
# Actually publish to crates.io | |
crates-io: | |
needs: | |
- fmt | |
- build | |
- coverage | |
- clippy | |
- doc | |
- deny | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Release-plz needs all the history | |
- name: Run release-plz | |
uses: MarcoIeni/[email protected] | |
with: | |
command: release-pr | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Automatically generated by Github Actions | |
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} # Must be manually set |