All checks were successful
ci/crow/cron/process-updates-alpine-323-amd64 Pipeline was successful
ci/crow/cron/process-updates-alpine-323-arm64 Pipeline was successful
ci/crow/cron/process-updates-redhat-9-arm64 Pipeline was successful
ci/crow/cron/process-updates-ubuntu-2204-amd64 Pipeline was successful
ci/crow/cron/process-updates-ubuntu-2204-arm64 Pipeline was successful
ci/crow/cron/process-updates-ubuntu-2404-amd64 Pipeline was successful
## Summary When a `build-all-*` workflow is restarted, the build job re-reads the static `pkgs_to_build.rds` that the install-deps step produced once, so it cycles over every package an interrupted run already built. This adds a DB-based skip filter so a restart only processes what is genuinely left. - At job start, `build-all.R` queries the `single_builds` metadata table for `(name, tag)` already built successfully (`error_occurred = FALSE`) on this `platform`/`arch`, and drops those pairs from the chunk before the build loop. It logs how many it skipped. - One indexed query, one round trip, run before the pak forks — no extra S3 listing and no new Python/s3fs memory pressure (`RPostgres`/`DBI` are already used in the container). - Errored versions are intentionally **not** skipped, so transient failures still get retried on restart. ## Dependency Correctness depends on a `error_occurred = FALSE` row meaning the binary is actually published. That guarantee is added in rpkgs/bincraft#56 (success row written only after a confirmed S3 upload). This PR should land together with / after a bincraft release including that fix. Reviewed-on: #91
81 lines
2.2 KiB
YAML
81 lines
2.2 KiB
YAML
### Required extra vars
|
|
# woodpecker-cli pipeline create --var task=archive-missed-packages --branch=main --log-level=info 7
|
|
when:
|
|
- event: manual
|
|
evaluate: 'task == "archive-missed-packages"'
|
|
- event: cron
|
|
cron: archive-missed-packages
|
|
|
|
matrix:
|
|
include:
|
|
- CODENAME: jammy
|
|
ARCH: amd64
|
|
- CODENAME: jammy
|
|
ARCH: arm64
|
|
- CODENAME: noble
|
|
ARCH: amd64
|
|
- CODENAME: noble
|
|
ARCH: arm64
|
|
- CODENAME: redhat-8
|
|
ARCH: amd64
|
|
- CODENAME: redhat-8
|
|
ARCH: arm64
|
|
- CODENAME: redhat-9
|
|
ARCH: amd64
|
|
- CODENAME: redhat-9
|
|
ARCH: arm64
|
|
- CODENAME: redhat-10
|
|
ARCH: amd64
|
|
- CODENAME: redhat-10
|
|
ARCH: arm64
|
|
- CODENAME: alpine321
|
|
ARCH: amd64
|
|
- CODENAME: alpine321
|
|
ARCH: arm64
|
|
- CODENAME: alpine322
|
|
ARCH: amd64
|
|
- CODENAME: alpine322
|
|
ARCH: arm64
|
|
- CODENAME: alpine323
|
|
ARCH: amd64
|
|
- CODENAME: alpine323
|
|
ARCH: arm64
|
|
|
|
steps:
|
|
- name: 'Archive missed packages'
|
|
image: reg.devxy.io/rpkgs/build-env-alpine:3.24
|
|
pull: true
|
|
environment:
|
|
RED_HAT_DEV_PW:
|
|
from_secret: RED_HAT_DEV_PW
|
|
B2_S3_ACCESS_KEY:
|
|
from_secret: B2_S3_ACCESS_KEY
|
|
B2_S3_SECRET_KEY:
|
|
from_secret: B2_S3_SECRET_KEY
|
|
PGPASS:
|
|
from_secret: PGPASS
|
|
REPO_RO_TOKEN:
|
|
from_secret: REPO_RO_TOKEN
|
|
GITHUB_PAT:
|
|
from_secret: GITHUB_PAT
|
|
# normal env vars
|
|
GIT_USER: pat-s
|
|
R_VERSION: 4.5.3
|
|
commands:
|
|
- /opt/R/$R_VERSION/bin/R -q -e 'if (!requireNamespace("bincraft", quietly = TRUE) || packageVersion("bincraft") != "4.2.2") pak::pak("git::https://codefloe.com/rpkgs/bincraft.git@v4.2.2", dependencies = TRUE)'
|
|
- /opt/R/$R_VERSION/bin/R -q -e 'packageVersion("bincraft")'
|
|
- /opt/R/$R_VERSION/bin/R -q -e 'bincraft::process_unarchived_pkgs(Sys.getenv("CODENAME"), Sys.getenv("ARCH"), workers = 2L)'
|
|
backend_options:
|
|
kubernetes:
|
|
resources:
|
|
requests:
|
|
memory: 1Gi
|
|
cpu: 2000m
|
|
limits:
|
|
memory: 1200Mi
|
|
cpu: 2000m
|
|
tolerations:
|
|
- key: 'CI'
|
|
operator: 'Equal'
|
|
value: 'true'
|
|
effect: 'NoSchedule'
|