diff --git a/.crow/update-package-index-alpine-320-amd64.yaml b/.crow/update-package-index-alpine-320-amd64.yaml new file mode 100644 index 0000000..ef6f390 --- /dev/null +++ b/.crow/update-package-index-alpine-320-amd64.yaml @@ -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 diff --git a/.crow/update-package-index-alpine-320-arm64.yaml b/.crow/update-package-index-alpine-320-arm64.yaml new file mode 100644 index 0000000..f4f90f3 --- /dev/null +++ b/.crow/update-package-index-alpine-320-arm64.yaml @@ -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 diff --git a/.crow/update-package-index-alpine-321-amd64.yaml b/.crow/update-package-index-alpine-321-amd64.yaml index 578abcc..de68087 100644 --- a/.crow/update-package-index-alpine-321-amd64.yaml +++ b/.crow/update-package-index-alpine-321-amd64.yaml @@ -66,15 +66,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl environment: BUNNYNET_API_KEY: from_secret: BUNNYNET_API_KEY - SUBDOMAIN1: 'cran.devxy.io' - SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' - SUBDOMAIN3: 'cran.rpkgs.com' - OS_ID: alpine321 - 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" + 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%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%2Falpine321%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%2Falpine321%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%2Falpine321%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%2Falpine321%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/.crow/update-package-index-alpine-321-arm64.yaml b/.crow/update-package-index-alpine-321-arm64.yaml index f7c49ff..703d2dc 100644 --- a/.crow/update-package-index-alpine-321-arm64.yaml +++ b/.crow/update-package-index-alpine-321-arm64.yaml @@ -67,9 +67,8 @@ steps: from_secret: BUNNYNET_API_KEY SUBDOMAIN1: 'cran.devxy.io' SUBDOMAIN2: 'cran.allianceswisspass.devxy.io' - SUBDOMAIN3: 'cran.rpkgs.com' OS_ID: alpine321 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" + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" diff --git a/.crow/update-package-index-alpine-322-amd64.yaml b/.crow/update-package-index-alpine-322-amd64.yaml index 0d3f405..f79860e 100644 --- a/.crow/update-package-index-alpine-322-amd64.yaml +++ b/.crow/update-package-index-alpine-322-amd64.yaml @@ -66,15 +66,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl 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" + 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%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%2Falpine322%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%2Falpine322%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%2Falpine322%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%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/.crow/update-package-index-alpine-322-arm64.yaml b/.crow/update-package-index-alpine-322-arm64.yaml index 1dadee8..94ec11f 100644 --- a/.crow/update-package-index-alpine-322-arm64.yaml +++ b/.crow/update-package-index-alpine-322-arm64.yaml @@ -66,15 +66,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl 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" + 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%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%2Falpine322%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%2Falpine322%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%2Falpine322%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%2Falpine322%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/.crow/update-package-index-redhat-8-amd64.yaml b/.crow/update-package-index-redhat-8-amd64.yaml index 26c54ac..60ab6d9 100644 --- a/.crow/update-package-index-redhat-8-amd64.yaml +++ b/.crow/update-package-index-redhat-8-amd64.yaml @@ -63,15 +63,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl 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" + 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%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%2Frhel8%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%2Frhel8%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%2Frhel8%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%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/.crow/update-package-index-redhat-8-arm64.yaml b/.crow/update-package-index-redhat-8-arm64.yaml index 6f79d82..38fc188 100644 --- a/.crow/update-package-index-redhat-8-arm64.yaml +++ b/.crow/update-package-index-redhat-8-arm64.yaml @@ -64,15 +64,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl 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" + 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%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%2Frhel8%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%2Frhel8%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%2Frhel8%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%2Frhel8%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/.crow/update-package-index-redhat-9-amd64.yaml b/.crow/update-package-index-redhat-9-amd64.yaml index db1ce0a..440c7cb 100644 --- a/.crow/update-package-index-redhat-9-amd64.yaml +++ b/.crow/update-package-index-redhat-9-amd64.yaml @@ -70,9 +70,8 @@ steps: 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" + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" diff --git a/.crow/update-package-index-redhat-9-arm64.yaml b/.crow/update-package-index-redhat-9-arm64.yaml index 8aac89c..2247956 100644 --- a/.crow/update-package-index-redhat-9-arm64.yaml +++ b/.crow/update-package-index-redhat-9-arm64.yaml @@ -64,15 +64,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl 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" + 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%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%2Frhel9%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%2Frhel9%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%2Frhel9%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%2Frhel9%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/.crow/update-package-index-ubuntu-2204-amd64.yaml b/.crow/update-package-index-ubuntu-2204-amd64.yaml index e1372a7..34211a4 100644 --- a/.crow/update-package-index-ubuntu-2204-amd64.yaml +++ b/.crow/update-package-index-ubuntu-2204-amd64.yaml @@ -68,11 +68,11 @@ steps: 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" + commands: | + apk add -q --no-cache curl ca-certificates + 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 + 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 + 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 + 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 + 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 + sleep 20 diff --git a/.crow/update-package-index-ubuntu-2204-arm64.yaml b/.crow/update-package-index-ubuntu-2204-arm64.yaml index 8b17be7..886afaf 100644 --- a/.crow/update-package-index-ubuntu-2204-arm64.yaml +++ b/.crow/update-package-index-ubuntu-2204-arm64.yaml @@ -64,15 +64,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl 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" + 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%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%2Fjammy%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%2Fjammy%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%2Fjammy%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%2Fjammy%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/.crow/update-package-index-ubuntu-2404-amd64.yaml b/.crow/update-package-index-ubuntu-2404-amd64.yaml index 5546e5b..0cafa42 100644 --- a/.crow/update-package-index-ubuntu-2404-amd64.yaml +++ b/.crow/update-package-index-ubuntu-2404-amd64.yaml @@ -66,15 +66,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl 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" + 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%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%2Fnoble%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%2Fnoble%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%2Fnoble%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%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/.crow/update-package-index-ubuntu-2404-arm64.yaml b/.crow/update-package-index-ubuntu-2404-arm64.yaml index faebfac..487f1fb 100644 --- a/.crow/update-package-index-ubuntu-2404-arm64.yaml +++ b/.crow/update-package-index-ubuntu-2404-arm64.yaml @@ -64,15 +64,14 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: alpine:3.22 + image: curlimages/curl 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" + 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%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%2Fnoble%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%2Fnoble%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%2Fnoble%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%2Fnoble%2Flatest%2Fsrc%2Fcontrib%2FPMeta%2FParchive.rds&async=false + sleep 20 # need to wait a bit to successfully deliver API calls diff --git a/Justfile b/Justfile index e6fc46a..e04f99b 100644 --- a/Justfile +++ b/Justfile @@ -1,13 +1,13 @@ # just build-all alpine 3.21 arm64 4.5.0 odbc 1 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.22 arm64 4.5.0 sf latest 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: - 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)' 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)"