diff --git a/.crow/update-package-index-alpine-320-amd64.yaml b/.crow/update-package-index-alpine-320-amd64.yaml deleted file mode 100644 index ef6f390..0000000 --- a/.crow/update-package-index-alpine-320-amd64.yaml +++ /dev/null @@ -1,77 +0,0 @@ -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 deleted file mode 100644 index f4f90f3..0000000 --- a/.crow/update-package-index-alpine-320-arm64.yaml +++ /dev/null @@ -1,77 +0,0 @@ -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 de68087..578abcc 100644 --- a/.crow/update-package-index-alpine-321-amd64.yaml +++ b/.crow/update-package-index-alpine-321-amd64.yaml @@ -66,14 +66,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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" diff --git a/.crow/update-package-index-alpine-321-arm64.yaml b/.crow/update-package-index-alpine-321-arm64.yaml index 703d2dc..f7c49ff 100644 --- a/.crow/update-package-index-alpine-321-arm64.yaml +++ b/.crow/update-package-index-alpine-321-arm64.yaml @@ -67,8 +67,9 @@ 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" + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/update-package-index-alpine-322-amd64.yaml b/.crow/update-package-index-alpine-322-amd64.yaml index f79860e..0d3f405 100644 --- a/.crow/update-package-index-alpine-322-amd64.yaml +++ b/.crow/update-package-index-alpine-322-amd64.yaml @@ -66,14 +66,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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/update-package-index-alpine-322-arm64.yaml b/.crow/update-package-index-alpine-322-arm64.yaml index 94ec11f..1dadee8 100644 --- a/.crow/update-package-index-alpine-322-arm64.yaml +++ b/.crow/update-package-index-alpine-322-arm64.yaml @@ -66,14 +66,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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/update-package-index-redhat-8-amd64.yaml b/.crow/update-package-index-redhat-8-amd64.yaml index 60ab6d9..26c54ac 100644 --- a/.crow/update-package-index-redhat-8-amd64.yaml +++ b/.crow/update-package-index-redhat-8-amd64.yaml @@ -63,14 +63,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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/update-package-index-redhat-8-arm64.yaml b/.crow/update-package-index-redhat-8-arm64.yaml index 38fc188..6f79d82 100644 --- a/.crow/update-package-index-redhat-8-arm64.yaml +++ b/.crow/update-package-index-redhat-8-arm64.yaml @@ -64,14 +64,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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/update-package-index-redhat-9-amd64.yaml b/.crow/update-package-index-redhat-9-amd64.yaml index 440c7cb..db1ce0a 100644 --- a/.crow/update-package-index-redhat-9-amd64.yaml +++ b/.crow/update-package-index-redhat-9-amd64.yaml @@ -70,8 +70,9 @@ 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" + - bash scripts/purge_cdn_cache.sh "$BUNNYNET_API_KEY" "$ARCH" "$OS_ID" "$SUBDOMAIN1" "$SUBDOMAIN2" "$SUBDOMAIN3" diff --git a/.crow/update-package-index-redhat-9-arm64.yaml b/.crow/update-package-index-redhat-9-arm64.yaml index 2247956..8aac89c 100644 --- a/.crow/update-package-index-redhat-9-arm64.yaml +++ b/.crow/update-package-index-redhat-9-arm64.yaml @@ -64,14 +64,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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/update-package-index-ubuntu-2204-amd64.yaml b/.crow/update-package-index-ubuntu-2204-amd64.yaml index 34211a4..e1372a7 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 - 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 + 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/update-package-index-ubuntu-2204-arm64.yaml b/.crow/update-package-index-ubuntu-2204-arm64.yaml index 886afaf..8b17be7 100644 --- a/.crow/update-package-index-ubuntu-2204-arm64.yaml +++ b/.crow/update-package-index-ubuntu-2204-arm64.yaml @@ -64,14 +64,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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/update-package-index-ubuntu-2404-amd64.yaml b/.crow/update-package-index-ubuntu-2404-amd64.yaml index 0cafa42..5546e5b 100644 --- a/.crow/update-package-index-ubuntu-2404-amd64.yaml +++ b/.crow/update-package-index-ubuntu-2404-amd64.yaml @@ -66,14 +66,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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/update-package-index-ubuntu-2404-arm64.yaml b/.crow/update-package-index-ubuntu-2404-arm64.yaml index 487f1fb..faebfac 100644 --- a/.crow/update-package-index-ubuntu-2404-arm64.yaml +++ b/.crow/update-package-index-ubuntu-2404-arm64.yaml @@ -64,14 +64,15 @@ steps: effect: 'NoSchedule' - name: Purge CDN cache - image: curlimages/curl + image: alpine:3.22 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%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 + 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/Justfile b/Justfile index e04f99b..e6fc46a 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 = \"r_binaries\", 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 = \"rpkgs\", 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 = \"r_binaries\", 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 = \"rpkgs\", 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 = \"r_binaries\", 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 = \"rpkgs\", metadata_db_password = Sys.getenv(\"PGPASS\"), metadata_db_sslmode = \"require\", metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE)"