pmacs/audit/ci/forgejo-actions.yml

71 lines
2.3 KiB
YAML

# Sample Forgejo Actions workflow for pmacs-audit (T M7.9).
#
# Forgejo Actions implements the GitHub Actions schema, so this
# file is intentionally close to its GitHub-Actions sibling. Copy
# into `.forgejo/workflows/audit.yml` (or
# `.gitea/workflows/audit.yml` on a Gitea-compatible runner).
#
# Differences from the GitHub Actions sample:
#
# * `runs-on: docker` (Forgejo's default labels) instead of
# `ubuntu-latest`.
# * Action versions (`actions/checkout`, `actions/cache`,
# `actions/upload-artifact`) point to the Forgejo Actions
# mirror namespace where the runner picks up actions.
# Adjust the action paths to match your runner's `host` field.
# * No `dtolnay/rust-toolchain` action is bundled with the
# Forgejo runner image catalog by default; we install Rust
# via `rustup-init` in a step instead. If your runner image
# ships Rust, remove that step.
#
# pmacs-audit exits 1 on any Error-severity finding; the runner
# treats that as job failure. Warnings and info-level findings
# show up in the report without gating the pipeline.
name: pmacs-audit
on:
push:
branches: [main]
pull_request:
jobs:
audit:
runs-on: docker
steps:
- name: Check out package
uses: actions/checkout@v4
- name: Install Rust toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \
-y --profile minimal --default-toolchain stable
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
- name: Cache cargo registry + target
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-pmacs-audit-${{ hashFiles('**/Cargo.lock') }}
# Pin to a tag once pmacs has its first audit-supporting release.
- name: Build pmacs-audit
run: |
cargo install --git https://git.levineuwirth.org/neuwirth/pmacs \
--rev main \
--bin pmacs-audit \
pmacs
- name: Run audit lint
run: pmacs-audit --pretty . > audit-report.json
- name: Upload audit report
if: always()
uses: actions/upload-artifact@v4
with:
name: audit-report
path: audit-report.json