diff --git a/.drone.jsonnet b/.drone.jsonnet index 99470f9..21c42a2 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -1,5 +1,5 @@ // yaml_stream.jsonnet -local Build(go, alpine, os, arch) = { +local Build(mirror, go, alpine, os, arch) = { kind: "pipeline", type: "docker", name: "build-" + go + "-alpine" + alpine + "-" + arch, @@ -17,6 +17,7 @@ local Build(go, alpine, os, arch) = { { name: "build", image: "golang:" + go +"-alpine" + alpine, + mirror: mirror, commands: [ "apk update", "apk add --no-cache git", @@ -28,6 +29,7 @@ local Build(go, alpine, os, arch) = { { name: "check-policy-forgejo", image: "alpine:" + alpine, + mirror: mirror, depends_on: ["build"], commands: [ "./.bin/go-away --check --slog-level DEBUG --backend example.com=http://127.0.0.1:80 --policy examples/forgejo.yml --policy-snippets examples/snippets/" @@ -36,6 +38,7 @@ local Build(go, alpine, os, arch) = { { name: "check-policy-generic", image: "alpine:" + alpine, + mirror: mirror, depends_on: ["build"], commands: [ "./.bin/go-away --check --slog-level DEBUG --backend example.com=http://127.0.0.1:80 --policy examples/generic.yml --policy-snippets examples/snippets/" @@ -44,6 +47,7 @@ local Build(go, alpine, os, arch) = { { name: "test-wasm-success", image: "alpine:" + alpine, + mirror: mirror, depends_on: ["build"], commands: [ "./.bin/test-wasm-runtime -wasm ./embed/challenge/js-pow-sha256/runtime/runtime.wasm " + @@ -56,6 +60,7 @@ local Build(go, alpine, os, arch) = { { name: "test-wasm-fail", image: "alpine:" + alpine, + mirror: mirror, depends_on: ["build"], commands: [ "./.bin/test-wasm-runtime -wasm ./embed/challenge/js-pow-sha256/runtime/runtime.wasm " + @@ -68,7 +73,7 @@ local Build(go, alpine, os, arch) = { ] }; -local Publish(registry, repo, secret, go, alpine, os, arch, trigger, platforms, extra) = { +local Publish(mirror, registry, repo, secret, go, alpine, os, arch, trigger, platforms, extra) = { kind: "pipeline", type: "docker", name: "publish-" + go + "-alpine" + alpine + "-" + secret, @@ -78,6 +83,15 @@ local Publish(registry, repo, secret, go, alpine, os, arch, trigger, platforms, }, trigger: trigger, steps: [ + { + name: "setup-buildkitd", + image: "alpine:" + alpine, + mirror: mirror, + commands: [ + "echo '[registry.\"docker.io\"]' > buildkitd.toml", + "echo ' mirrors = [\"mirror.gcr.io\"]' >> buildkitd.toml" + ], + }, { name: "docker", image: "plugins/buildx", @@ -87,13 +101,15 @@ local Publish(registry, repo, secret, go, alpine, os, arch, trigger, platforms, SOURCE_DATE_EPOCH: 0, TZ: "UTC", LC_ALL: "C", + PLUGIN_BUILDER_CONFIG: "buildkitd.toml", + PLUGIN_BUILDER_DRIVER: "docker-container", }, settings: { registry: registry, repo: repo, + mirror: mirror, compress: true, platform: platforms, - builder_driver: "docker-container", build_args: { from_builder: "golang:" + go +"-alpine" + alpine, from: "alpine:" + alpine, @@ -116,17 +132,19 @@ local containerArchitectures = ["linux/amd64", "linux/arm64", "linux/riscv64"]; local alpineVersion = "3.21"; local goVersion = "1.24"; +local mirror = "https://mirror.gcr.io"; + [ - Build(goVersion, alpineVersion, "linux", "amd64"), - Build(goVersion, alpineVersion, "linux", "arm64"), + Build(mirror, goVersion, alpineVersion, "linux", "amd64"), + Build(mirror, goVersion, alpineVersion, "linux", "arm64"), # latest - Publish("git.gammaspectra.live", "git.gammaspectra.live/git/go-away", "git", goVersion, alpineVersion, "linux", "amd64", {event: ["push"], branch: ["master"], }, containerArchitectures, {tags: ["latest"],}) + {name: "publish-latest-git"}, - Publish("codeberg.org", "codeberg.org/weebdatahoarder/go-away", "codeberg", goVersion, alpineVersion, "linux", "amd64", {event: ["push"], branch: ["master"], }, containerArchitectures, {tags: ["latest"],}) + {name: "publish-latest-codeberg"}, - Publish("ghcr.io", "ghcr.io/weebdatahoarder/go-away", "github", goVersion, alpineVersion, "linux", "amd64", {event: ["push"], branch: ["master"], }, containerArchitectures, {tags: ["latest"],}) + {name: "publish-latest-github"}, + Publish(mirror, "git.gammaspectra.live", "git.gammaspectra.live/git/go-away", "git", goVersion, alpineVersion, "linux", "amd64", {event: ["push"], branch: ["master"], }, containerArchitectures, {tags: ["latest"],}) + {name: "publish-latest-git"}, + Publish(mirror, "codeberg.org", "codeberg.org/weebdatahoarder/go-away", "codeberg", goVersion, alpineVersion, "linux", "amd64", {event: ["push"], branch: ["master"], }, containerArchitectures, {tags: ["latest"],}) + {name: "publish-latest-codeberg"}, + Publish(mirror, "ghcr.io", "ghcr.io/weebdatahoarder/go-away", "github", goVersion, alpineVersion, "linux", "amd64", {event: ["push"], branch: ["master"], }, containerArchitectures, {tags: ["latest"],}) + {name: "publish-latest-github"}, # modern - Publish("git.gammaspectra.live", "git.gammaspectra.live/git/go-away", "git", goVersion, alpineVersion, "linux", "amd64", {event: ["promote", "tag"], target: ["production"], }, containerArchitectures, {auto_tag: true,}), - Publish("codeberg.org", "codeberg.org/weebdatahoarder/go-away", "codeberg", goVersion, alpineVersion, "linux", "amd64", {event: ["promote", "tag"], target: ["production"], }, containerArchitectures, {auto_tag: true,}), - Publish("ghcr.io", "ghcr.io/weebdatahoarder/go-away", "github", goVersion, alpineVersion, "linux", "amd64", {event: ["promote", "tag"], target: ["production"], }, containerArchitectures, {auto_tag: true,}), + Publish(mirror, "git.gammaspectra.live", "git.gammaspectra.live/git/go-away", "git", goVersion, alpineVersion, "linux", "amd64", {event: ["promote", "tag"], target: ["production"], }, containerArchitectures, {auto_tag: true,}), + Publish(mirror, "codeberg.org", "codeberg.org/weebdatahoarder/go-away", "codeberg", goVersion, alpineVersion, "linux", "amd64", {event: ["promote", "tag"], target: ["production"], }, containerArchitectures, {auto_tag: true,}), + Publish(mirror, "ghcr.io", "ghcr.io/weebdatahoarder/go-away", "github", goVersion, alpineVersion, "linux", "amd64", {event: ["promote", "tag"], target: ["production"], }, containerArchitectures, {auto_tag: true,}), ] \ No newline at end of file diff --git a/.drone.yml b/.drone.yml index 4aee29f..f397c29 100644 --- a/.drone.yml +++ b/.drone.yml @@ -17,6 +17,7 @@ steps: - go build -v -pgo=auto -v -trimpath -ldflags=-buildid= -o ./.bin/go-away ./cmd/go-away - go build -v -o ./.bin/test-wasm-runtime ./cmd/test-wasm-runtime image: golang:1.24-alpine3.21 + mirror: https://mirror.gcr.io name: build - commands: - ./.bin/go-away --check --slog-level DEBUG --backend example.com=http://127.0.0.1:80 @@ -24,6 +25,7 @@ steps: depends_on: - build image: alpine:3.21 + mirror: https://mirror.gcr.io name: check-policy-forgejo - commands: - ./.bin/go-away --check --slog-level DEBUG --backend example.com=http://127.0.0.1:80 @@ -31,6 +33,7 @@ steps: depends_on: - build image: alpine:3.21 + mirror: https://mirror.gcr.io name: check-policy-generic - commands: - ./.bin/test-wasm-runtime -wasm ./embed/challenge/js-pow-sha256/runtime/runtime.wasm @@ -41,6 +44,7 @@ steps: depends_on: - build image: alpine:3.21 + mirror: https://mirror.gcr.io name: test-wasm-success - commands: - ./.bin/test-wasm-runtime -wasm ./embed/challenge/js-pow-sha256/runtime/runtime.wasm @@ -51,6 +55,7 @@ steps: depends_on: - build image: alpine:3.21 + mirror: https://mirror.gcr.io name: test-wasm-fail type: docker --- @@ -72,6 +77,7 @@ steps: - go build -v -pgo=auto -v -trimpath -ldflags=-buildid= -o ./.bin/go-away ./cmd/go-away - go build -v -o ./.bin/test-wasm-runtime ./cmd/test-wasm-runtime image: golang:1.24-alpine3.21 + mirror: https://mirror.gcr.io name: build - commands: - ./.bin/go-away --check --slog-level DEBUG --backend example.com=http://127.0.0.1:80 @@ -79,6 +85,7 @@ steps: depends_on: - build image: alpine:3.21 + mirror: https://mirror.gcr.io name: check-policy-forgejo - commands: - ./.bin/go-away --check --slog-level DEBUG --backend example.com=http://127.0.0.1:80 @@ -86,6 +93,7 @@ steps: depends_on: - build image: alpine:3.21 + mirror: https://mirror.gcr.io name: check-policy-generic - commands: - ./.bin/test-wasm-runtime -wasm ./embed/challenge/js-pow-sha256/runtime/runtime.wasm @@ -96,6 +104,7 @@ steps: depends_on: - build image: alpine:3.21 + mirror: https://mirror.gcr.io name: test-wasm-success - commands: - ./.bin/test-wasm-runtime -wasm ./embed/challenge/js-pow-sha256/runtime/runtime.wasm @@ -106,6 +115,7 @@ steps: depends_on: - build image: alpine:3.21 + mirror: https://mirror.gcr.io name: test-wasm-fail type: docker --- @@ -115,9 +125,17 @@ platform: arch: amd64 os: linux steps: +- commands: + - echo '[registry."docker.io"]' > buildkitd.toml + - echo ' mirrors = ["mirror.gcr.io"]' >> buildkitd.toml + image: alpine:3.21 + mirror: https://mirror.gcr.io + name: setup-buildkitd - environment: DOCKER_BUILDKIT: "1" LC_ALL: C + PLUGIN_BUILDER_CONFIG: buildkitd.toml + PLUGIN_BUILDER_DRIVER: docker-container SOURCE_DATE_EPOCH: 0 TZ: UTC image: plugins/buildx @@ -128,8 +146,8 @@ steps: build_args: from: alpine:3.21 from_builder: golang:1.24-alpine3.21 - builder_driver: docker-container compress: true + mirror: https://mirror.gcr.io password: from_secret: git_password platform: @@ -155,9 +173,17 @@ platform: arch: amd64 os: linux steps: +- commands: + - echo '[registry."docker.io"]' > buildkitd.toml + - echo ' mirrors = ["mirror.gcr.io"]' >> buildkitd.toml + image: alpine:3.21 + mirror: https://mirror.gcr.io + name: setup-buildkitd - environment: DOCKER_BUILDKIT: "1" LC_ALL: C + PLUGIN_BUILDER_CONFIG: buildkitd.toml + PLUGIN_BUILDER_DRIVER: docker-container SOURCE_DATE_EPOCH: 0 TZ: UTC image: plugins/buildx @@ -168,8 +194,8 @@ steps: build_args: from: alpine:3.21 from_builder: golang:1.24-alpine3.21 - builder_driver: docker-container compress: true + mirror: https://mirror.gcr.io password: from_secret: codeberg_password platform: @@ -195,9 +221,17 @@ platform: arch: amd64 os: linux steps: +- commands: + - echo '[registry."docker.io"]' > buildkitd.toml + - echo ' mirrors = ["mirror.gcr.io"]' >> buildkitd.toml + image: alpine:3.21 + mirror: https://mirror.gcr.io + name: setup-buildkitd - environment: DOCKER_BUILDKIT: "1" LC_ALL: C + PLUGIN_BUILDER_CONFIG: buildkitd.toml + PLUGIN_BUILDER_DRIVER: docker-container SOURCE_DATE_EPOCH: 0 TZ: UTC image: plugins/buildx @@ -208,8 +242,8 @@ steps: build_args: from: alpine:3.21 from_builder: golang:1.24-alpine3.21 - builder_driver: docker-container compress: true + mirror: https://mirror.gcr.io password: from_secret: github_password platform: @@ -235,9 +269,17 @@ platform: arch: amd64 os: linux steps: +- commands: + - echo '[registry."docker.io"]' > buildkitd.toml + - echo ' mirrors = ["mirror.gcr.io"]' >> buildkitd.toml + image: alpine:3.21 + mirror: https://mirror.gcr.io + name: setup-buildkitd - environment: DOCKER_BUILDKIT: "1" LC_ALL: C + PLUGIN_BUILDER_CONFIG: buildkitd.toml + PLUGIN_BUILDER_DRIVER: docker-container SOURCE_DATE_EPOCH: 0 TZ: UTC image: plugins/buildx @@ -249,8 +291,8 @@ steps: build_args: from: alpine:3.21 from_builder: golang:1.24-alpine3.21 - builder_driver: docker-container compress: true + mirror: https://mirror.gcr.io password: from_secret: git_password platform: @@ -275,9 +317,17 @@ platform: arch: amd64 os: linux steps: +- commands: + - echo '[registry."docker.io"]' > buildkitd.toml + - echo ' mirrors = ["mirror.gcr.io"]' >> buildkitd.toml + image: alpine:3.21 + mirror: https://mirror.gcr.io + name: setup-buildkitd - environment: DOCKER_BUILDKIT: "1" LC_ALL: C + PLUGIN_BUILDER_CONFIG: buildkitd.toml + PLUGIN_BUILDER_DRIVER: docker-container SOURCE_DATE_EPOCH: 0 TZ: UTC image: plugins/buildx @@ -289,8 +339,8 @@ steps: build_args: from: alpine:3.21 from_builder: golang:1.24-alpine3.21 - builder_driver: docker-container compress: true + mirror: https://mirror.gcr.io password: from_secret: codeberg_password platform: @@ -315,9 +365,17 @@ platform: arch: amd64 os: linux steps: +- commands: + - echo '[registry."docker.io"]' > buildkitd.toml + - echo ' mirrors = ["mirror.gcr.io"]' >> buildkitd.toml + image: alpine:3.21 + mirror: https://mirror.gcr.io + name: setup-buildkitd - environment: DOCKER_BUILDKIT: "1" LC_ALL: C + PLUGIN_BUILDER_CONFIG: buildkitd.toml + PLUGIN_BUILDER_DRIVER: docker-container SOURCE_DATE_EPOCH: 0 TZ: UTC image: plugins/buildx @@ -329,8 +387,8 @@ steps: build_args: from: alpine:3.21 from_builder: golang:1.24-alpine3.21 - builder_driver: docker-container compress: true + mirror: https://mirror.gcr.io password: from_secret: github_password platform: @@ -350,6 +408,6 @@ trigger: type: docker --- kind: signature -hmac: 8aed9810938e4aa4b34c4afb35e1101f27f98a61ffe5349be9a30f22ce7480ed +hmac: ad13c88b81cd1c6ebd4bb8d33479ffe8e67bc8caefdcc1c06dd1a6b75476bcd7 ...