forked from github-mirrorer/taskchampion-sync-server
Building of this binary is controlled with features, allowing downstream users to build just the SQLite version and not be concerned with the tokio-postgres dependency tree (which includes links to OpenSSL and other details). The Postgres version is disabled by default. This does not change the binary name for the SQLite build, just to avoid confusion for people upgrading to the new version.
139 lines
3.8 KiB
YAML
139 lines
3.8 KiB
YAML
name: checks
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
types: [opened, reopened, synchronize]
|
|
|
|
jobs:
|
|
clippy:
|
|
runs-on: ubuntu-latest
|
|
name: "Check & Clippy"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Cache cargo registry
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- name: Cache cargo build
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: target
|
|
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: "stable"
|
|
override: true
|
|
components: clippy
|
|
|
|
- uses: actions-rs/cargo@v1.0.3
|
|
with:
|
|
command: check
|
|
|
|
- uses: actions-rs/clippy-check@v1
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
args: --all-features --no-deps -- -D warnings
|
|
name: "Clippy Results"
|
|
|
|
rustdoc:
|
|
runs-on: ubuntu-latest
|
|
name: "Rustdoc"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Cache cargo registry
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
override: true
|
|
minimal: true
|
|
|
|
- name: taskchampion-sync-server
|
|
uses: actions-rs/cargo@v1.0.3
|
|
with:
|
|
command: rustdoc
|
|
args: -p taskchampion-sync-server --bin taskchampion-sync-server --all-features -- -Z unstable-options --check -Dwarnings
|
|
|
|
- name: taskchampion-sync-server-postgres
|
|
uses: actions-rs/cargo@v1.0.3
|
|
with:
|
|
command: rustdoc
|
|
args: -p taskchampion-sync-server --bin taskchampion-sync-server-postgres --all-features -- -Z unstable-options --check -Dwarnings
|
|
|
|
- name: taskchampion-sync-server-core
|
|
uses: actions-rs/cargo@v1.0.3
|
|
with:
|
|
command: rustdoc
|
|
args: -p taskchampion-sync-server-core --all-features -- -Z unstable-options --check -Dwarnings
|
|
|
|
- name: taskchampion-sync-server-storage-sqlite
|
|
uses: actions-rs/cargo@v1.0.3
|
|
with:
|
|
command: rustdoc
|
|
args: -p taskchampion-sync-server-storage-sqlite --all-features -- -Z unstable-options --check -Dwarnings
|
|
|
|
- name: taskchampion-sync-server-storage-postgres
|
|
uses: actions-rs/cargo@v1.0.3
|
|
with:
|
|
command: rustdoc
|
|
args: -p taskchampion-sync-server-storage-postgres --all-features -- -Z unstable-options --check -Dwarnings
|
|
|
|
fmt:
|
|
runs-on: ubuntu-latest
|
|
name: "Formatting"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
components: rustfmt
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- uses: actions-rs/cargo@v1.0.3
|
|
with:
|
|
command: fmt
|
|
args: --all -- --check
|
|
|
|
semver-checks:
|
|
runs-on: ubuntu-latest
|
|
name: "Cargo Semver Checks"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: obi1kenobi/cargo-semver-checks-action@v2
|
|
with:
|
|
# exclude the binary package from semver checks, since it is not published as a crate.
|
|
# exclude postgres temporarily until it is released
|
|
exclude: taskchampion-sync-server,taskchampion-sync-server-storage-postgres
|
|
|
|
mdbook:
|
|
runs-on: ubuntu-latest
|
|
name: "mdBook Documentation"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup mdBook
|
|
uses: peaceiris/actions-mdbook@v2
|
|
with:
|
|
# if this changes, change it in .github/workflows/publish-docs.yml as well
|
|
mdbook-version: '0.4.48'
|
|
|
|
- run: mdbook test docs
|
|
- run: mdbook build docs
|