Compare commits

..
15 changed files with 239 additions and 96 deletions

View file

@ -0,0 +1,77 @@
when:
- event: [cron]
cron: update-package-index-alpine-320-amd64
- event: [cron]
cron: update-package-index
- event: manual
evaluate: 'update_package_index == "alpine-320-amd64"'
skip_clone: true
steps:
- name: Upload PACKAGES files
image: docker.io/devxygmbh/rpkgs-build-env-ubuntu:noble-4.4
pull: true
environment:
RED_HAT_DEV_PW:
from_secret: RED_HAT_DEV_PW
HETZNER_S3_ACCESS_KEY_K3S:
from_secret: HETZNER_S3_ACCESS_KEY_K3S
HETZNER_S3_SECRET_KEY_K3S:
from_secret: HETZNER_S3_SECRET_KEY_K3S
PGPASS:
from_secret: PGPASS
GIT_RO_TOKEN:
from_secret: GIT_RO_TOKEN
GITHUB_PAT:
from_secret: GITHUB_PAT
# normal env vars
GIT_USER: pat-s
NTFY_SERVER:
from_secret: NTFY_SERVER
NTFY_TOPIC:
from_secret: NTFY_TOPIC
NTFY_AUTH: TRUE
NTFY_PASSWORD:
from_secret: ntfy_token
# set the location of the 'pkgcache' cache dir which persists the R package dependencies needed to install the packages themselves
R_PKG_CACHE_DIR: /mnt/cache/pkgcache
R_LIBS_USER: /mnt/cache/R-pkgs
commands:
- git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-cran-binaries.git .
- rm -rf /mnt/cache/packages/*
- R -q -e 'pak::pak("git::https://codefloe.com/rpkgs/bincraft.git")'
- R -q -e 'pak::pak("pat-s/cranlike@s3")'
- R -q -e 'pak::pak("pat-s/desc@description-from-remote")'
- R -q -e 'packageVersion("bincraft")'
- cd /mnt/cache/packages
- R -q -e 'options(crayon.enabled = TRUE); library(bincraft); future::plan("multisession", workers = 4); library(progressr); handlers(global = TRUE); handlers("progress"); upload_package_index(codename = "alpine320", s3_endpoint = "https://hel1.your-objectstorage.com", s3_region = "hel1", s3_bucket = "devxy-r-package-binaries-hel1", s3_access_key_id = Sys.getenv("HETZNER_S3_ACCESS_KEY_K3S"), s3_secret_access_key = Sys.getenv("HETZNER_S3_SECRET_KEY_K3S"))'
backend_options:
kubernetes:
resources:
requests:
memory: 3000Mi
cpu: 2000m
limits:
memory: 3000Mi
cpu: 8000m
nodeSelector:
kubernetes.io/arch: 'amd64'
tolerations:
- key: 'CI'
operator: 'Equal'
value: 'true'
effect: 'NoSchedule'
- name: Purge CDN cache
image: curlimages/curl
environment:
BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY
commands: |
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
sleep 20 # need to wait a bit to successfully deliver API calls

View file

@ -0,0 +1,77 @@
when:
- event: [cron]
cron: update-package-index-alpine-320-arm64
- event: [cron]
cron: update-package-index
- event: manual
evaluate: 'update_package_index == "alpine-320-arm64"'
skip_clone: true
steps:
- name: Upload PACKAGES files
image: docker.io/devxygmbh/rpkgs-build-env-ubuntu:noble-4.4
pull: true
environment:
RED_HAT_DEV_PW:
from_secret: RED_HAT_DEV_PW
HETZNER_S3_ACCESS_KEY_K3S:
from_secret: HETZNER_S3_ACCESS_KEY_K3S
HETZNER_S3_SECRET_KEY_K3S:
from_secret: HETZNER_S3_SECRET_KEY_K3S
PGPASS:
from_secret: PGPASS
GIT_RO_TOKEN:
from_secret: GIT_RO_TOKEN
GITHUB_PAT:
from_secret: GITHUB_PAT
# normal env vars
GIT_USER: pat-s
NTFY_SERVER:
from_secret: NTFY_SERVER
NTFY_TOPIC:
from_secret: NTFY_TOPIC
NTFY_AUTH: TRUE
NTFY_PASSWORD:
from_secret: ntfy_token
# set the location of the 'pkgcache' cache dir which persists the R package dependencies needed to install the packages themselves
R_PKG_CACHE_DIR: /mnt/cache/pkgcache
R_LIBS_USER: /mnt/cache/R-pkgs
commands:
- git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-cran-binaries.git .
- rm -rf /mnt/cache/packages/*
- R -q -e 'pak::pak("git::https://codefloe.com/rpkgs/bincraft.git")'
- R -q -e 'pak::pak("pat-s/cranlike@s3")'
- R -q -e 'pak::pak("pat-s/desc@description-from-remote")'
- R -q -e 'packageVersion("bincraft")'
- cd /mnt/cache/packages
- R -q -e 'options(crayon.enabled = TRUE); library(bincraft); future::plan("multisession", workers = 4); library(progressr); handlers(global = TRUE); handlers("progress"); upload_package_index(codename = "alpine320", s3_endpoint = "https://hel1.your-objectstorage.com", s3_region = "hel1", s3_bucket = "devxy-r-package-binaries-hel1", s3_access_key_id = Sys.getenv("HETZNER_S3_ACCESS_KEY_K3S"), s3_secret_access_key = Sys.getenv("HETZNER_S3_SECRET_KEY_K3S"))'
backend_options:
kubernetes:
resources:
requests:
memory: 3000Mi
cpu: 2000m
limits:
memory: 3000Mi
cpu: 8000m
nodeSelector:
kubernetes.io/arch: 'arm64'
tolerations:
- key: 'CI'
operator: 'Equal'
value: 'true'
effect: 'NoSchedule'
- name: Purge CDN cache
image: curlimages/curl
environment:
BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY
commands: |
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine320%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
sleep 20 # need to wait a bit to successfully deliver API calls

View file

@ -66,15 +66,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine321%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine321%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: alpine321 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine321%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: amd64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine321%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine321%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -67,9 +67,8 @@ steps:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' SUBDOMAIN1: 'cran.devxy.io'
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' SUBDOMAIN2: 'cran.allianceswisspass.devxy.io'
SUBDOMAIN3: 'cran.rpkgs.com'
OS_ID: alpine321 OS_ID: alpine321
ARCH: arm64 ARCH: arm64
commands: commands:
- apk add --no-cache -q bash curl - apk add --no-cache -q bash curl
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2"

View file

@ -66,15 +66,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: alpine322 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: amd64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -66,15 +66,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: alpine322 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: arm64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -63,15 +63,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: rhel8 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: amd64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -64,15 +64,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: rhel8 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: arm64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -70,9 +70,8 @@ steps:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' SUBDOMAIN1: 'cran.devxy.io'
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' SUBDOMAIN2: 'cran.allianceswisspass.devxy.io'
SUBDOMAIN3: 'cran.rpkgs.com'
OS_ID: rhel9 OS_ID: rhel9
ARCH: amd64 ARCH: amd64
commands: commands:
- apk add --no-cache -q bash curl - apk add --no-cache -q bash curl
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2"

View file

@ -64,15 +64,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel9%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel9%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: rhel9 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel9%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: arm64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel9%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Frhel9%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -68,11 +68,11 @@ steps:
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' apk add -q --no-cache curl ca-certificates
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
OS_ID: jammy curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
ARCH: amd64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
- apk add --no-cache -q bash curl curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" sleep 20

View file

@ -64,15 +64,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: jammy curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: arm64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -66,15 +66,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: noble curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: amd64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Famd64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -64,15 +64,14 @@ steps:
effect: 'NoSchedule' effect: 'NoSchedule'
- name: Purge CDN cache - name: Purge CDN cache
image: alpine:3.22 image: curlimages/curl
environment: environment:
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' commands: |
SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES&async=false
SUBDOMAIN3: 'cran.rpkgs.com' curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.gz&async=false
OS_ID: noble curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.rds&async=false
ARCH: amd64 curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPACKAGES.db&async=false
commands: curl -sL -X POST -H "AccessKey: $BUNNYNET_API_KEY" https://api.bunny.net/purge?url=https%3A%2F%2Fcran.devxy.io%2Farm64%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false
- apk add --no-cache -q bash curl sleep 20 # need to wait a bit to successfully deliver API calls
- bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3"

View file

@ -1,13 +1,13 @@
# just build-all alpine 3.21 arm64 4.5.0 odbc 1 # just build-all alpine 3.21 arm64 4.5.0 odbc 1
build-all OS OS_VERSION ARCH R_VERSION PACKAGE NCPUS: build-all OS OS_VERSION ARCH R_VERSION PACKAGE NCPUS:
docker run --rm -it --platform linux/{{ARCH}} -v ./:/package -e AWS_ACCESS_KEY_ID="$HETZNER_S3_ACCESS_KEY_K3S" -e AWS_SECRET_ACCESS_KEY="$HETZNER_S3_SECRET_KEY_K3S" -e PGPASS="$PGPASS" -e NCPUS={{NCPUS}} --pull=always devxygmbh/rpkgs-build-env-{{OS}}:{{OS_VERSION}}-{{R_VERSION}} bash -c 'R -q -e "install.packages(\"pak\", repos = sprintf(\"https://r-lib.github.io/p/pak/stable/%s/%s/%s\", .Platform\$pkgType, R.Version()\$os, R.Version()\$arch))" && R -q -e "pak::pak(\"git::https://codefloe.com/rpkgs/bincraft.git\")" && R -q -e "bincraft::build_binary_package(\"{{PACKAGE}}\", platform = \"{{OS}}\", is_debug=TRUE, force=TRUE, deps_verbose = TRUE, s3_endpoint = \"https://hel1.your-objectstorage.com\", s3_region = \"hel1\", s3_bucket = \"devxy-r-package-binaries-hel1\", s3_access_key_id = Sys.getenv(\"HETZNER_S3_ACCESS_KEY_K3S\"), s3_secret_access_key = Sys.getenv(\"HETZNER_S3_SECRET_KEY_K3S\"), 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)"' docker run --rm -it --platform linux/{{ARCH}} -v ./:/package -e AWS_ACCESS_KEY_ID="$HETZNER_S3_ACCESS_KEY_K3S" -e AWS_SECRET_ACCESS_KEY="$HETZNER_S3_SECRET_KEY_K3S" -e PGPASS="$PGPASS" -e NCPUS={{NCPUS}} --pull=always devxygmbh/rpkgs-build-env-{{OS}}:{{OS_VERSION}}-{{R_VERSION}} bash -c 'R -q -e "install.packages(\"pak\", repos = sprintf(\"https://r-lib.github.io/p/pak/stable/%s/%s/%s\", .Platform\$pkgType, R.Version()\$os, R.Version()\$arch))" && R -q -e "pak::pak(\"git::https://codefloe.com/rpkgs/bincraft.git\")" && R -q -e "bincraft::build_binary_package(\"{{PACKAGE}}\", platform = \"{{OS}}\", is_debug=TRUE, force=TRUE, deps_verbose = TRUE, s3_endpoint = \"https://hel1.your-objectstorage.com\", s3_region = \"hel1\", s3_bucket = \"devxy-r-package-binaries-hel1\", s3_access_key_id = Sys.getenv(\"HETZNER_S3_ACCESS_KEY_K3S\"), s3_secret_access_key = Sys.getenv(\"HETZNER_S3_SECRET_KEY_K3S\"), metadata_db_host = \"r-binaries.devxy.io\", metadata_db_name = \"build_metadata\", metadata_db_table = \"single_builds\", metadata_db_user = \"r_binaries\", metadata_db_password = Sys.getenv(\"PGPASS\"), metadata_db_sslmode = \"require\", metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)"'
# just build-single alpine 3.21 arm64 4.5.0 odbc 1.5.0 1 # just build-single alpine 3.21 arm64 4.5.0 odbc 1.5.0 1
# just build-single alpine 3.22 arm64 4.5.0 sf latest 1 # just build-single alpine 3.22 arm64 4.5.0 sf latest 1
# just build-single ubuntu noble arm64 4.2.3 rlang 1.1.6 1 # just build-single ubuntu noble arm64 4.2.3 rlang 1.1.6 1
build-single OS OS_VERSION ARCH R_VERSION PACKAGE TAG NCPUS: build-single OS OS_VERSION ARCH R_VERSION PACKAGE TAG NCPUS:
docker run --rm -it --platform linux/{{ARCH}} -v ./:/package -e AWS_ACCESS_KEY_ID="$HETZNER_S3_ACCESS_KEY_K3S" -e AWS_SECRET_ACCESS_KEY="$HETZNER_S3_SECRET_KEY_K3S" -e PGPASS="$PGPASS" -e NCPUS={{NCPUS}} --pull=always devxygmbh/rpkgs-build-env-{{OS}}:{{OS_VERSION}}-{{R_VERSION}} bash -c 'R -q -e "install.packages(\"pak\", repos = sprintf(\"https://r-lib.github.io/p/pak/stable/%s/%s/%s\", .Platform\$pkgType, R.Version()\$os, R.Version()\$arch))" && R -q -e "pak::pak(\"git::https://codefloe.com/rpkgs/bincraft.git\")" && R -q -e "bincraft::build_binary_package(\"{{PACKAGE}}\", tag = \"{{TAG}}\", platform = \"{{OS}}\", is_debug=TRUE, force=TRUE, deps_verbose = TRUE, s3_endpoint = \"https://hel1.your-objectstorage.com\", s3_region = \"hel1\", s3_bucket = \"devxy-r-package-binaries-hel1\", s3_access_key_id = Sys.getenv(\"HETZNER_S3_ACCESS_KEY_K3S\"), s3_secret_access_key = Sys.getenv(\"HETZNER_S3_SECRET_KEY_K3S\"), 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)"' docker run --rm -it --platform linux/{{ARCH}} -v ./:/package -e AWS_ACCESS_KEY_ID="$HETZNER_S3_ACCESS_KEY_K3S" -e AWS_SECRET_ACCESS_KEY="$HETZNER_S3_SECRET_KEY_K3S" -e PGPASS="$PGPASS" -e NCPUS={{NCPUS}} --pull=always devxygmbh/rpkgs-build-env-{{OS}}:{{OS_VERSION}}-{{R_VERSION}} bash -c 'R -q -e "install.packages(\"pak\", repos = sprintf(\"https://r-lib.github.io/p/pak/stable/%s/%s/%s\", .Platform\$pkgType, R.Version()\$os, R.Version()\$arch))" && R -q -e "pak::pak(\"git::https://codefloe.com/rpkgs/bincraft.git\")" && R -q -e "bincraft::build_binary_package(\"{{PACKAGE}}\", tag = \"{{TAG}}\", platform = \"{{OS}}\", is_debug=TRUE, force=TRUE, deps_verbose = TRUE, s3_endpoint = \"https://hel1.your-objectstorage.com\", s3_region = \"hel1\", s3_bucket = \"devxy-r-package-binaries-hel1\", s3_access_key_id = Sys.getenv(\"HETZNER_S3_ACCESS_KEY_K3S\"), s3_secret_access_key = Sys.getenv(\"HETZNER_S3_SECRET_KEY_K3S\"), metadata_db_host = \"r-binaries.devxy.io\", metadata_db_name = \"build_metadata\", metadata_db_table = \"single_builds\", metadata_db_user = \"r_binaries\", metadata_db_password = Sys.getenv(\"PGPASS\"), metadata_db_sslmode = \"require\", metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)"'
# just process-updates redhat 9 arm64 4.4.3 'lubridate::interval(lubridate::today() - 4, lubridate::today() - 4)' # just process-updates redhat 9 arm64 4.4.3 'lubridate::interval(lubridate::today() - 4, lubridate::today() - 4)'
process-updates OS OS_VERSION ARCH R_VERSION interval: process-updates OS OS_VERSION ARCH R_VERSION interval:
docker run --rm -it --platform linux/{{ARCH}} -e AWS_ACCESS_KEY_ID="$HETZNER_S3_ACCESS_KEY_K3S" -e AWS_SECRET_ACCESS_KEY="$HETZNER_S3_SECRET_KEY_K3S" -e PGPASS="$PGPASS" --pull=always devxygmbh/rpkgs-build-env-{{OS}}:{{OS_VERSION}}-{{R_VERSION}} R -q -e "bincraft::process_cran_updates(interval = {{interval}}, platform = \"{{OS}}\", s3_endpoint = \"https://hel1.your-objectstorage.com\", s3_region = \"hel1\", s3_bucket = \"devxy-r-package-binaries-hel1\", s3_access_key_id = Sys.getenv(\"HETZNER_S3_ACCESS_KEY_K3S\"), s3_secret_access_key = Sys.getenv(\"HETZNER_S3_SECRET_KEY_K3S\"), 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)" docker run --rm -it --platform linux/{{ARCH}} -e AWS_ACCESS_KEY_ID="$HETZNER_S3_ACCESS_KEY_K3S" -e AWS_SECRET_ACCESS_KEY="$HETZNER_S3_SECRET_KEY_K3S" -e PGPASS="$PGPASS" --pull=always devxygmbh/rpkgs-build-env-{{OS}}:{{OS_VERSION}}-{{R_VERSION}} R -q -e "bincraft::process_cran_updates(interval = {{interval}}, platform = \"{{OS}}\", s3_endpoint = \"https://hel1.your-objectstorage.com\", s3_region = \"hel1\", s3_bucket = \"devxy-r-package-binaries-hel1\", s3_access_key_id = Sys.getenv(\"HETZNER_S3_ACCESS_KEY_K3S\"), s3_secret_access_key = Sys.getenv(\"HETZNER_S3_SECRET_KEY_K3S\"), metadata_db_host = \"r-binaries.devxy.io\", metadata_db_name = \"build_metadata\", metadata_db_table = \"single_builds\", metadata_db_user = \"r_binaries\", metadata_db_password = Sys.getenv(\"PGPASS\"), metadata_db_sslmode = \"require\", metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)"