build-cran-binaries/.crow/weekly-patch-proposals.yaml

72 lines
2.5 KiB
YAML

# 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'