reuse-surface/.forgejo/workflows/ci.yml

78 lines
2.6 KiB
YAML
Raw Normal View History

# Ported from .gitea/workflows/ci.yml (REUSE-WP-0019-T03). No actions/checkout
# on this runner substrate (railiance-enablement/docs/forgejo-actions-workflow-templates.md)
# -- ubuntu-latest maps to docker://node:20-bookworm, no Python preinstalled,
# so use archive checkout + apt.
name: ci
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
validate-registry:
runs-on: ubuntu-latest
steps:
- name: Archive checkout
run: |
set -eu
REF="${GITHUB_SHA:-main}"
SHORT="${REF:0:7}"
mkdir -p /tmp/repo
wget -qO /tmp/repo.tar.gz "https://forgejo.coulomb.social/${GITHUB_REPOSITORY}/archive/${SHORT}.tar.gz"
tar xzf /tmp/repo.tar.gz -C /tmp/repo --strip-components=1
- name: Install Python + package
working-directory: /tmp/repo
run: |
set -eu
apt-get update -qq
apt-get install -y -qq python3 python3-pip python3-venv >/dev/null
python3 -m pip install --break-system-packages -e ".[dev]"
- name: Validate capability registry
working-directory: /tmp/repo
run: reuse-surface validate --relations --fail-on-warnings
- name: Compose federated index
working-directory: /tmp/repo
run: reuse-surface federation compose
- name: Generate catalog and graph
working-directory: /tmp/repo
run: |
reuse-surface catalog
reuse-surface graph --check --fail-on-warnings
- name: Registry maintain dry-run (informational)
working-directory: /tmp/repo
run: reuse-surface maintain --all --auto --no-llm || true
- name: Registry stats (informational)
working-directory: /tmp/repo
run: reuse-surface stats || true
- name: Workstation roster federation stats (informational)
working-directory: /tmp/repo
run: |
reuse-surface stats --roster registry/federation/local-repo-roster.yaml \
--federation-ready --format json || true
- name: Planning cohort report (informational)
working-directory: /tmp/repo
run: reuse-surface report cohorts --planning-min D4 || true
- name: Registry gap report (informational)
working-directory: /tmp/repo
run: reuse-surface report gaps || true
- name: Plan-check smoke test (informational)
working-directory: /tmp/repo
run: reuse-surface plan-check --intent "smoke test" --format json || true
- name: Run tests
working-directory: /tmp/repo
run: pytest -q