# Weekly failure-triage proposals (issue #115, steps 3 + 4). # Classifies the recorded `single_builds` failures and: # 1. posts/updates a Forgejo issue with the auto-proposable registry entries # (human reviews, trial-builds, and opens the PR -- nothing merges), # 2. posts/updates a second Forgejo issue with the classifier's blind spots # (unclassified failures = candidates for new signatures, and groups # blocked on a dependency), and prints the feedback-loop metrics to the log. # Global across platforms (the classifier groups over all of single_builds), so # a single job -- no matrix. Clones read-only; the only writes are the two # Forgejo issues via FORGEJO_TOKEN. # # Run manually with: # crow pipeline create --branch main \ # --var weekly_patch_proposals=true devxy/build-cran-binaries # # The gate variable is `weekly_patch_proposals`, named after the pipeline: a # manual run instantiates every pipeline in `.crow/`, so one without its own # gate runs on *any* manual trigger in this repo. This one posts and edits # Forgejo issues, so an unrelated manual run must not fire it. variables: weekly_patch_proposals: description: 'Run the weekly failure triage. Also gates this pipeline.' options: - 'true' - 'false' default: 'false' when: - event: manual evaluate: 'weekly_patch_proposals == "true"' - event: cron cron: weekly-patch-proposals skip_clone: true labels: group: rpkgs-amd64 steps: - name: 'Propose registry patches + track feedback loop' image: reg.devxy.io/rpkgs/build-env-alpine:3.24 pull: true environment: PGPASS: from_secret: PGPASS REPO_RO_TOKEN: from_secret: REPO_RO_TOKEN FORGEJO_TOKEN: from_secret: FORGEJO_TOKEN R_VERSION: 4.5.3 R_LIBS_USER: /mnt/cache/R-pkgs commands: - git clone -q https://pat-s:$$REPO_RO_TOKEN@git.devxy.io/devxy/build-cran-binaries.git . - mkdir -p /mnt/cache/R-pkgs - rm -rf /mnt/cache/R-pkgs/00LOCK-* - UVR_R_BIN=/opt/R/$R_VERSION/bin/R local/uvr-install.sh RPostgres httr2 jsonlite - /opt/R/$R_VERSION/bin/Rscript local/propose-patches.R --open-issue - /opt/R/$R_VERSION/bin/Rscript local/proposal-tracking.R --open-issue backend_options: kubernetes: resources: requests: memory: 1Gi cpu: 2000m limits: memory: 2Gi cpu: 2000m tolerations: - key: 'CI' operator: 'Equal' value: 'true' effect: 'NoSchedule'