pmacs/audit/ci/gitlab-ci.yml

43 lines
1.2 KiB
YAML

# Sample GitLab CI configuration for pmacs-audit (T M7.9).
#
# Copy this file into your package repo at `.gitlab-ci.yml` (or
# `include:` it from there). The job:
#
# 1. Pulls a Rust toolchain image.
# 2. Builds `pmacs-audit` from a pinned pmacs revision.
# 3. Runs the audit lint against the package's Lua sources.
# 4. Saves the JSON report as a job artifact (downloadable from
# the GitLab UI for 7 days; tune `expire_in` as needed).
#
# pmacs-audit exits 1 on any Error-severity finding; `script:`
# propagates that to the job status. Warnings and info-level
# findings show up in the report but do not gate the pipeline.
stages:
- audit
audit:
stage: audit
image: rust:1.85
cache:
key: pmacs-audit
paths:
- .cargo/
- target/
variables:
CARGO_HOME: $CI_PROJECT_DIR/.cargo
script:
# Pin to a tag once pmacs has its first audit-supporting release.
- cargo install --git https://git.levineuwirth.org/neuwirth/pmacs
--rev main
--bin pmacs-audit
--root $CI_PROJECT_DIR/.cargo
pmacs
- $CI_PROJECT_DIR/.cargo/bin/pmacs-audit --pretty . > audit-report.json
artifacts:
name: audit-report
paths:
- audit-report.json
expire_in: 7 days
when: always