55 lines
1.3 KiB
YAML
55 lines
1.3 KiB
YAML
on:
|
|
push:
|
|
branches:
|
|
- '*'
|
|
paths:
|
|
- src/**
|
|
- static/*
|
|
- .forgejo/**
|
|
- .justfile
|
|
- Cargo.*
|
|
|
|
jobs:
|
|
verify:
|
|
runs-on: docker
|
|
timeout-minutes: 20
|
|
container:
|
|
image: rust:slim
|
|
steps:
|
|
- name: Install action dependencies
|
|
run: |
|
|
apt-get install --no-install-recommends --update -y \
|
|
nodejs git nix
|
|
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-tags: true
|
|
|
|
- name: Cleanup checkout action dependencies
|
|
run: apt-get purge -y nodejs git
|
|
|
|
- name: Set up CI user
|
|
run: useradd -m ci && chown -R ci /nix .
|
|
|
|
- name: Set up Rust toolchain
|
|
run: |
|
|
rust_version=$(sed -nE 's/^rust-version = "(.*)"$/\1/p' Cargo.toml)
|
|
|
|
su ci -c "
|
|
rustup default '$rust_version'
|
|
rustup toolchain install nightly
|
|
rustup component add llvm-tools
|
|
rustup component add --toolchain nightly rustfmt clippy
|
|
rustup target add \
|
|
x86_64-unknown-linux-musl \
|
|
x86_64-unknown-linux-gnu
|
|
"
|
|
|
|
- name: Assess
|
|
run: |
|
|
ENV_PATH=$PATH su ci -c "
|
|
nix --experimental-features 'nix-command flakes' \
|
|
develop path:$PWD \
|
|
-c just -f $PWD/.justfile verify
|
|
"
|