From 13d51ef4ddf044526b94e1a1e5b65d112a3f008a Mon Sep 17 00:00:00 2001 From: pat-s Date: Thu, 28 May 2026 13:38:19 +0200 Subject: [PATCH] feat(ci): purge CDN cache after process-updates runs process_cran_updates uploads fresh PACKAGES* to S3, but the CDN was only purged by the daily update-package-index-* chain. Between the two cron runs, edges kept serving the stale index, so a binary that had just landed in S3 was effectively invisible until the next index-update purge. Adds the same purge step that update-package-index-* already uses, parameterized per platform/arch. --- .crow/process-updates-alpine-322-amd64.yaml | 14 ++++++++++++++ .crow/process-updates-alpine-322-arm64.yaml | 14 ++++++++++++++ .crow/process-updates-alpine-323-amd64.yaml | 14 ++++++++++++++ .crow/process-updates-alpine-323-arm64.yaml | 14 ++++++++++++++ .crow/process-updates-redhat-10-amd64.yaml | 14 ++++++++++++++ .crow/process-updates-redhat-10-arm64.yaml | 14 ++++++++++++++ .crow/process-updates-redhat-8-amd64.yaml | 14 ++++++++++++++ .crow/process-updates-redhat-8-arm64.yaml | 14 ++++++++++++++ .crow/process-updates-redhat-9-amd64.yaml | 14 ++++++++++++++ .crow/process-updates-redhat-9-arm64.yaml | 14 ++++++++++++++ .crow/process-updates-ubuntu-2204-amd64.yaml | 14 ++++++++++++++ .crow/process-updates-ubuntu-2204-arm64.yaml | 14 ++++++++++++++ .crow/process-updates-ubuntu-2404-amd64.yaml | 14 ++++++++++++++ .crow/process-updates-ubuntu-2404-arm64.yaml | 14 ++++++++++++++ 14 files changed, 196 insertions(+) diff --git a/.crow/process-updates-alpine-322-amd64.yaml b/.crow/process-updates-alpine-322-amd64.yaml index f028182..9699b04 100644 --- a/.crow/process-updates-alpine-322-amd64.yaml +++ b/.crow/process-updates-alpine-322-amd64.yaml @@ -75,3 +75,17 @@ steps: operator: 'Equal' value: 'true' effect: 'NoSchedule' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: alpine322 + ARCH: amd64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-alpine-322-arm64.yaml b/.crow/process-updates-alpine-322-arm64.yaml index 4e6874e..ab60904 100644 --- a/.crow/process-updates-alpine-322-arm64.yaml +++ b/.crow/process-updates-alpine-322-arm64.yaml @@ -57,3 +57,17 @@ steps: # options(future.globals.onReference = NULL): for some reason s3fs::file_delete() throws 'Error: Detected a non-exportable reference ('externalptr') in one of the globals ('FUN' of class 'function') used in the future expression' otherwise - xvfb-run /opt/R/$R_VERSION/bin/R -q -e "options(crayon.enabled = TRUE, Ncpus = 4, future.globals.onReference = 'error', repos = structure(c(getOption('repos'),INLA='https://inla.r-inla-download.org/R/stable'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); options(future.globals.onReference = NULL); bincraft::process_cran_updates(interval = $INTERVAL, platform = 'alpine-322', process_updated = TRUE, process_new = TRUE, process_removed = TRUE, s3_endpoint = 'https://s3.eu-central-003.backblazeb2.com', s3_region = 'eu-central-003', s3_bucket = 'devxy-rpkgs-binaries', s3_access_key_id = Sys.getenv('B2_S3_ACCESS_KEY'), s3_secret_access_key = Sys.getenv('B2_S3_SECRET_KEY'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'rpkgs', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)" - /opt/R/$R_VERSION/bin/R -q -e 'library(bincraft); upload_package_index(codename = "alpine322", s3_endpoint = "https://s3.eu-central-003.backblazeb2.com", s3_region = "eu-central-003", s3_bucket = "devxy-rpkgs-binaries", s3_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"), s3_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"))' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: alpine322 + ARCH: arm64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-alpine-323-amd64.yaml b/.crow/process-updates-alpine-323-amd64.yaml index 26db3b6..3963d01 100644 --- a/.crow/process-updates-alpine-323-amd64.yaml +++ b/.crow/process-updates-alpine-323-amd64.yaml @@ -75,3 +75,17 @@ steps: operator: 'Equal' value: 'true' effect: 'NoSchedule' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: alpine323 + ARCH: amd64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-alpine-323-arm64.yaml b/.crow/process-updates-alpine-323-arm64.yaml index 2d56532..9c00fbf 100644 --- a/.crow/process-updates-alpine-323-arm64.yaml +++ b/.crow/process-updates-alpine-323-arm64.yaml @@ -57,3 +57,17 @@ steps: # options(future.globals.onReference = NULL): for some reason s3fs::file_delete() throws 'Error: Detected a non-exportable reference ('externalptr') in one of the globals ('FUN' of class 'function') used in the future expression' otherwise - xvfb-run /opt/R/$R_VERSION/bin/R -q -e "options(crayon.enabled = TRUE, Ncpus = 4, future.globals.onReference = 'error', repos = structure(c(getOption('repos'),INLA='https://inla.r-inla-download.org/R/stable'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); options(future.globals.onReference = NULL); bincraft::process_cran_updates(interval = $INTERVAL, platform = 'alpine-323', process_updated = TRUE, process_new = TRUE, process_removed = TRUE, s3_endpoint = 'https://s3.eu-central-003.backblazeb2.com', s3_region = 'eu-central-003', s3_bucket = 'devxy-rpkgs-binaries', s3_access_key_id = Sys.getenv('B2_S3_ACCESS_KEY'), s3_secret_access_key = Sys.getenv('B2_S3_SECRET_KEY'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'rpkgs', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)" - /opt/R/$R_VERSION/bin/R -q -e 'library(bincraft); upload_package_index(codename = "alpine323", s3_endpoint = "https://s3.eu-central-003.backblazeb2.com", s3_region = "eu-central-003", s3_bucket = "devxy-rpkgs-binaries", s3_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"), s3_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"))' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: alpine323 + ARCH: arm64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-redhat-10-amd64.yaml b/.crow/process-updates-redhat-10-amd64.yaml index d955bf4..7609969 100644 --- a/.crow/process-updates-redhat-10-amd64.yaml +++ b/.crow/process-updates-redhat-10-amd64.yaml @@ -77,3 +77,17 @@ steps: operator: 'Equal' value: 'true' effect: 'NoSchedule' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: rhel10 + ARCH: amd64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-redhat-10-arm64.yaml b/.crow/process-updates-redhat-10-arm64.yaml index fa46fd6..3bd5b92 100644 --- a/.crow/process-updates-redhat-10-arm64.yaml +++ b/.crow/process-updates-redhat-10-arm64.yaml @@ -58,3 +58,17 @@ steps: - XVFB=$(command -v xwfb-run 2>/dev/null || command -v xvfb-run); XVFB_ARGS=""; if command -v xwfb-run >/dev/null 2>&1; then dnf install -y -q weston 2>/dev/null; XVFB_ARGS="-c weston"; fi - $XVFB $XVFB_ARGS -- /opt/R/$R_VERSION/bin/R -q -e "options(crayon.enabled = TRUE, Ncpus = 4, future.globals.onReference = 'error', repos = structure(c(getOption('repos'),INLA='https://inla.r-inla-download.org/R/stable'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); options(future.globals.onReference = NULL); bincraft::process_cran_updates(interval = $INTERVAL, platform = 'redhat-10', process_updated = TRUE, process_new = TRUE, process_removed = TRUE, s3_endpoint = 'https://s3.eu-central-003.backblazeb2.com', s3_region = 'eu-central-003', s3_bucket = 'devxy-rpkgs-binaries', s3_access_key_id = Sys.getenv('B2_S3_ACCESS_KEY'), s3_secret_access_key = Sys.getenv('B2_S3_SECRET_KEY'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'rpkgs', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)" - /opt/R/$R_VERSION/bin/R -q -e 'library(bincraft); upload_package_index(codename = "rhel10", s3_endpoint = "https://s3.eu-central-003.backblazeb2.com", s3_region = "eu-central-003", s3_bucket = "devxy-rpkgs-binaries", s3_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"), s3_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"))' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: rhel10 + ARCH: arm64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-redhat-8-amd64.yaml b/.crow/process-updates-redhat-8-amd64.yaml index 775a8ab..defcfec 100644 --- a/.crow/process-updates-redhat-8-amd64.yaml +++ b/.crow/process-updates-redhat-8-amd64.yaml @@ -75,3 +75,17 @@ steps: operator: 'Equal' value: 'true' effect: 'NoSchedule' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: rhel8 + ARCH: amd64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-redhat-8-arm64.yaml b/.crow/process-updates-redhat-8-arm64.yaml index 8561917..9410bec 100644 --- a/.crow/process-updates-redhat-8-arm64.yaml +++ b/.crow/process-updates-redhat-8-arm64.yaml @@ -57,3 +57,17 @@ steps: # options(future.globals.onReference = NULL): for some reason s3fs::file_delete() throws 'Error: Detected a non-exportable reference ('externalptr') in one of the globals ('FUN' of class 'function') used in the future expression' otherwise - xvfb-run /opt/R/$R_VERSION/bin/R -q -e "options(crayon.enabled = TRUE, Ncpus = 4, future.globals.onReference = 'error', repos = structure(c(getOption('repos'),INLA='https://inla.r-inla-download.org/R/stable'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); options(future.globals.onReference = NULL); bincraft::process_cran_updates(interval = $INTERVAL, platform = 'redhat-8', process_updated = TRUE, process_new = TRUE, process_removed = TRUE, s3_endpoint = 'https://s3.eu-central-003.backblazeb2.com', s3_region = 'eu-central-003', s3_bucket = 'devxy-rpkgs-binaries', s3_access_key_id = Sys.getenv('B2_S3_ACCESS_KEY'), s3_secret_access_key = Sys.getenv('B2_S3_SECRET_KEY'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'rpkgs', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)" - /opt/R/$R_VERSION/bin/R -q -e 'library(bincraft); upload_package_index(codename = "rhel8", s3_endpoint = "https://s3.eu-central-003.backblazeb2.com", s3_region = "eu-central-003", s3_bucket = "devxy-rpkgs-binaries", s3_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"), s3_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"))' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: rhel8 + ARCH: arm64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-redhat-9-amd64.yaml b/.crow/process-updates-redhat-9-amd64.yaml index f926a68..316263d 100644 --- a/.crow/process-updates-redhat-9-amd64.yaml +++ b/.crow/process-updates-redhat-9-amd64.yaml @@ -76,3 +76,17 @@ steps: operator: 'Equal' value: 'true' effect: 'NoSchedule' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: rhel9 + ARCH: amd64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-redhat-9-arm64.yaml b/.crow/process-updates-redhat-9-arm64.yaml index 9a9fbd5..7edb15a 100644 --- a/.crow/process-updates-redhat-9-arm64.yaml +++ b/.crow/process-updates-redhat-9-arm64.yaml @@ -57,3 +57,17 @@ steps: # options(future.globals.onReference = NULL): for some reason s3fs::file_delete() throws 'Error: Detected a non-exportable reference ('externalptr') in one of the globals ('FUN' of class 'function') used in the future expression' otherwise - xvfb-run /opt/R/$R_VERSION/bin/R -q -e "options(crayon.enabled = TRUE, Ncpus = 4, future.globals.onReference = 'error', repos = structure(c(getOption('repos'),INLA='https://inla.r-inla-download.org/R/stable'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); options(future.globals.onReference = NULL); bincraft::process_cran_updates(interval = $INTERVAL, platform = 'redhat-9', process_updated = TRUE, process_new = TRUE, process_removed = TRUE, s3_endpoint = 'https://s3.eu-central-003.backblazeb2.com', s3_region = 'eu-central-003', s3_bucket = 'devxy-rpkgs-binaries', s3_access_key_id = Sys.getenv('B2_S3_ACCESS_KEY'), s3_secret_access_key = Sys.getenv('B2_S3_SECRET_KEY'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'rpkgs', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)" - /opt/R/$R_VERSION/bin/R -q -e 'library(bincraft); upload_package_index(codename = "rhel9", s3_endpoint = "https://s3.eu-central-003.backblazeb2.com", s3_region = "eu-central-003", s3_bucket = "devxy-rpkgs-binaries", s3_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"), s3_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"))' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: rhel9 + ARCH: arm64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-ubuntu-2204-amd64.yaml b/.crow/process-updates-ubuntu-2204-amd64.yaml index 3ffa6c3..ee7ee40 100644 --- a/.crow/process-updates-ubuntu-2204-amd64.yaml +++ b/.crow/process-updates-ubuntu-2204-amd64.yaml @@ -76,3 +76,17 @@ steps: operator: 'Equal' value: 'true' effect: 'NoSchedule' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: jammy + ARCH: amd64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-ubuntu-2204-arm64.yaml b/.crow/process-updates-ubuntu-2204-arm64.yaml index f98ba39..1b0bb5d 100644 --- a/.crow/process-updates-ubuntu-2204-arm64.yaml +++ b/.crow/process-updates-ubuntu-2204-arm64.yaml @@ -57,3 +57,17 @@ steps: # options(future.globals.onReference = NULL): for some reason s3fs::file_delete() throws 'Error: Detected a non-exportable reference ('externalptr') in one of the globals ('FUN' of class 'function') used in the future expression' otherwise - xvfb-run /opt/R/$R_VERSION/bin/R -q -e "options(crayon.enabled = TRUE, Ncpus = 4, future.globals.onReference = 'error', repos = structure(c(getOption('repos'),INLA='https://inla.r-inla-download.org/R/stable'))); progressr::handlers(global = TRUE); options(future.globals.onReference = NULL); bincraft::process_cran_updates(interval = $INTERVAL, platform = 'ubuntu-2204', process_updated = TRUE, process_new = TRUE, process_removed = TRUE, s3_endpoint = 'https://s3.eu-central-003.backblazeb2.com', s3_region = 'eu-central-003', s3_bucket = 'devxy-rpkgs-binaries', s3_access_key_id = Sys.getenv('B2_S3_ACCESS_KEY'), s3_secret_access_key = Sys.getenv('B2_S3_SECRET_KEY'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'rpkgs', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)" - /opt/R/$R_VERSION/bin/R -q -e 'library(bincraft); upload_package_index(codename = "jammy", s3_endpoint = "https://s3.eu-central-003.backblazeb2.com", s3_region = "eu-central-003", s3_bucket = "devxy-rpkgs-binaries", s3_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"), s3_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"))' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: jammy + ARCH: arm64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-ubuntu-2404-amd64.yaml b/.crow/process-updates-ubuntu-2404-amd64.yaml index 01c546e..30b46d8 100644 --- a/.crow/process-updates-ubuntu-2404-amd64.yaml +++ b/.crow/process-updates-ubuntu-2404-amd64.yaml @@ -75,3 +75,17 @@ steps: operator: 'Equal' value: 'true' effect: 'NoSchedule' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: noble + ARCH: amd64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/process-updates-ubuntu-2404-arm64.yaml b/.crow/process-updates-ubuntu-2404-arm64.yaml index 09e899d..ee5df4c 100644 --- a/.crow/process-updates-ubuntu-2404-arm64.yaml +++ b/.crow/process-updates-ubuntu-2404-arm64.yaml @@ -57,3 +57,17 @@ steps: # options(future.globals.onReference = NULL): for some reason s3fs::file_delete() throws 'Error: Detected a non-exportable reference ('externalptr') in one of the globals ('FUN' of class 'function') used in the future expression' otherwise - xvfb-run /opt/R/$R_VERSION/bin/R -q -e "options(crayon.enabled = TRUE, Ncpus = 4, future.globals.onReference = 'error', repos = structure(c(getOption('repos'),INLA='https://inla.r-inla-download.org/R/stable'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); options(future.globals.onReference = NULL); bincraft::process_cran_updates(interval = $INTERVAL, platform = 'ubuntu-2404', process_updated = TRUE, process_new = TRUE, process_removed = TRUE, s3_endpoint = 'https://s3.eu-central-003.backblazeb2.com', s3_region = 'eu-central-003', s3_bucket = 'devxy-rpkgs-binaries', s3_access_key_id = Sys.getenv('B2_S3_ACCESS_KEY'), s3_secret_access_key = Sys.getenv('B2_S3_SECRET_KEY'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'rpkgs', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)" - /opt/R/$R_VERSION/bin/R -q -e 'library(bincraft); upload_package_index(codename = "noble", s3_endpoint = "https://s3.eu-central-003.backblazeb2.com", s3_region = "eu-central-003", s3_bucket = "devxy-rpkgs-binaries", s3_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"), s3_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"))' + + - name: Purge CDN cache + image: reg.devxy.io/docker.io/library/alpine:3.23 + environment: + BUNNYNET_API_KEY: + from_secret: BUNNYNET_API_KEY + SUBDOMAIN1: 'cran.devxy.io' + SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' + SUBDOMAIN3: 'cran.rpkgs.com' + OS_ID: noble + ARCH: arm64 + commands: + - apk add --no-cache -q bash curl + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" -- 2.54.0