From cae3115061d0a0e0804c48b2a02bb1ee4f677ca0 Mon Sep 17 00:00:00 2001 From: Stephan Schnabel Date: Thu, 12 Jun 2025 14:18:22 +0200 Subject: [PATCH 1/5] 1 --- .woodpecker/build.yaml | 2 +- .woodpecker/test.yaml | 8 ++++---- Dockerfile | 1 + renovate.json | 6 +++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml index a1b9b86..4d298a2 100644 --- a/.woodpecker/build.yaml +++ b/.woodpecker/build.yaml @@ -12,7 +12,7 @@ steps: pull: true depends_on: [] settings: &settings - name: registry.kokuwa.io/buildctl:$CI_PIPELINE_NUMBER + name: registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER} auth: registry.kokuwa.io: username: {from_secret: kokuwa_io_username} diff --git a/.woodpecker/test.yaml b/.woodpecker/test.yaml index b096834..73201a0 100644 --- a/.woodpecker/test.yaml +++ b/.woodpecker/test.yaml @@ -15,14 +15,14 @@ labels: steps: pr: - image: registry.kokuwa.io/buildctl:$CI_PIPELINE_NUMBER + image: registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER} pull: true commands: buildctl --version when: event: pull_request kokuwa.io: &version - image: kokuwa.io/buildctl + image: registry.kokuwa.io/kokuwaio/buildctl:latest pull: true commands: buildctl --version when: @@ -30,9 +30,9 @@ steps: branch: main docker.io: - image: docker.io/kokuwaio/buildctl + image: docker.io/kokuwaio/buildctl:latest <<: *version ghcr.io: - image: ghcr.io/kokuwaio/buildctl + image: ghcr.io/kokuwaio/buildctl:latest <<: *version diff --git a/Dockerfile b/Dockerfile index ea76470..988b464 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ # bash is non-default location https://github.com/tianon/docker-bash/issues/29 # hadolint only uses default locations https://github.com/hadolint/hadolint/issues/977 # hadolint global ignore=DL4006 + FROM docker.io/library/bash:5.2.37@sha256:01a15c6f48f6a3c08431cd77e11567823530b18159889dca3b7309b707beef91 SHELL ["/usr/local/bin/bash", "-u", "-e", "-o", "pipefail", "-c"] diff --git a/renovate.json b/renovate.json index a7a4671..ad623e7 100644 --- a/renovate.json +++ b/renovate.json @@ -10,15 +10,15 @@ "- docker.io/kokuwaio/buildctl:(?v[0-9]+\\.[0-9]+\\.[0-9]+)", "- ghcr.io/kokuwaio/buildctl:(?v[0-9]+\\.[0-9]+\\.[0-9]+)", "org.opencontainers.image.version: (?v[0-9]+\\.[0-9]+\\.[0-9]+)", - "https://github.com/moby/buildkit/releases/download/(?v[0-9]+\\.[0-9]+\\.[0-9]+)/buildkit-v[0-9]+\\.[0-9]+\\.[0-9]+.linux-$SUFFIX.tar.gz", - "https://github.com/moby/buildkit/releases/download/v[0-9]+\\.[0-9]+\\.[0-9]+/buildkit-(?v[0-9]+\\.[0-9]+\\.[0-9]+).linux-$SUFFIX.tar.gz" + "github.com/moby/buildkit/releases/download/(?v[0-9]+\\.[0-9]+\\.[0-9]+)/buildkit-v[0-9]+\\.[0-9]+\\.[0-9]+.linux-\\$SUFFIX.tar.gz", + "github.com/moby/buildkit/releases/download/v[0-9]+\\.[0-9]+\\.[0-9]+/buildkit-(?v[0-9]+\\.[0-9]+\\.[0-9]+).linux-\\$SUFFIX.tar.gz" ], "datasourceTemplate": "github-tags", "packageNameTemplate": "moby/buildkit" },{ "customType": "regex", "managerFilePatterns": ["Dockerfile"], - "matchStrings": ["https://github.com/jqlang/jq/releases/download/(?jq-[0-9]+\\.[0-9]+\\.[0-9]+)/jq-linux-$SUFFIX"], + "matchStrings": ["github.com/jqlang/jq/releases/download/(?jq-[0-9]+\\.[0-9]+\\.[0-9]+)/jq-linux-\\$SUFFIX"], "datasourceTemplate": "github-tags", "packageNameTemplate": "jqlang/jq" } From 7be58a9b5b79583a2eb9c196ae4b5e5d599e5c44 Mon Sep 17 00:00:00 2001 From: Stephan Schnabel Date: Thu, 12 Jun 2025 14:34:02 +0200 Subject: [PATCH 2/5] 1 --- .github/workflows/lint.yaml | 10 ++++++++++ .woodpecker/test.yaml | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 1af5647..826cced 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -33,3 +33,13 @@ jobs: steps: - uses: actions/checkout@main - uses: docker://kokuwaio/shellcheck + + buildx: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@main + - uses: docker/setup-qemu-action@main + - uses: docker/setup-buildx-action@main + - uses: docker/build-push-action@main + with: + platforms: linux/amd64,linux/arm64 \ No newline at end of file diff --git a/.woodpecker/test.yaml b/.woodpecker/test.yaml index 73201a0..8d7000a 100644 --- a/.woodpecker/test.yaml +++ b/.woodpecker/test.yaml @@ -15,6 +15,15 @@ labels: steps: pr: + image: registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER} + pull: true + commands: + - ls -lA + - pwd + when: + event: pull_request + + pr2: image: registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER} pull: true commands: buildctl --version From 93c7a26579e3b00d693e030090eaf51b8137a33f Mon Sep 17 00:00:00 2001 From: Stephan Schnabel Date: Thu, 12 Jun 2025 14:35:48 +0200 Subject: [PATCH 3/5] 123 --- .github/workflows/build.yaml | 15 +++++++++++++++ .github/workflows/lint.yaml | 10 ---------- .woodpecker/test.yaml | 1 - 3 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..25bfc28 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,15 @@ +name: Lint + +on: push + +jobs: + + buildx: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@main + - uses: docker/setup-qemu-action@main + - uses: docker/setup-buildx-action@main + - uses: docker/build-push-action@main + with: + platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 826cced..1af5647 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -33,13 +33,3 @@ jobs: steps: - uses: actions/checkout@main - uses: docker://kokuwaio/shellcheck - - buildx: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - uses: docker/setup-qemu-action@main - - uses: docker/setup-buildx-action@main - - uses: docker/build-push-action@main - with: - platforms: linux/amd64,linux/arm64 \ No newline at end of file diff --git a/.woodpecker/test.yaml b/.woodpecker/test.yaml index 8d7000a..9ca19f3 100644 --- a/.woodpecker/test.yaml +++ b/.woodpecker/test.yaml @@ -6,7 +6,6 @@ when: path: [.woodpecker/build.yaml, Dockerfile, Dockerfile.dockerignore, entrypoint.sh] depends_on: [build] -skip_clone: true matrix: PLATFORM: [amd64, arm64] labels: From 2a5cc2d0c5c7122e28193f4cef4eb80a600cea62 Mon Sep 17 00:00:00 2001 From: Stephan Schnabel Date: Thu, 12 Jun 2025 14:38:37 +0200 Subject: [PATCH 4/5] 1 --- .justfile | 10 ++-------- .woodpecker/test.yaml | 17 ++++------------- entrypoint.sh | 2 +- 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/.justfile b/.justfile index b8a3119..a96f31e 100644 --- a/.justfile +++ b/.justfile @@ -7,7 +7,7 @@ # Run linter. @lint: docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/shellcheck - docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/hadolint + docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/hadolint docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/yamllint docker run --rm --read-only --volume=$(pwd):$(pwd):rw --workdir=$(pwd) kokuwaio/markdownlint --fix docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/renovate @@ -16,13 +16,7 @@ # Build image with local docker daemon. [group('image')] @build: - docker buildx build . --tag=kokuwaio/buildctl --platform=linux/amd64,linux/arm64 --push - docker buildx build . --platform=linux/amd64,linux/arm64 --push --tag registry.kokuwa.io/b - -# Inspect image with docker. -[group('image')] -@inspect: build - docker image inspect kokuwaio/buildctl + docker buildx build . --tag=kokuwaio/buildctl --platform=linux/amd64,linux/arm64 # Inspect image layers with `dive`. [group('image')] diff --git a/.woodpecker/test.yaml b/.woodpecker/test.yaml index 9ca19f3..e68f23c 100644 --- a/.woodpecker/test.yaml +++ b/.woodpecker/test.yaml @@ -13,23 +13,14 @@ labels: steps: - pr: - image: registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER} - pull: true - commands: - - ls -lA - - pwd - when: - event: pull_request - - pr2: + registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER}: image: registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER} pull: true commands: buildctl --version when: event: pull_request - kokuwa.io: &version + registry.kokuwa.io/kokuwaio/buildctl: &version image: registry.kokuwa.io/kokuwaio/buildctl:latest pull: true commands: buildctl --version @@ -37,10 +28,10 @@ steps: event: [manual, push] branch: main - docker.io: + docker.io/kokuwaio/buildctl: image: docker.io/kokuwaio/buildctl:latest <<: *version - ghcr.io: + ghcr.io/kokuwaio/buildctl: image: ghcr.io/kokuwaio/buildctl:latest <<: *version diff --git a/entrypoint.sh b/entrypoint.sh index 455d6d7..d0cf87a 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -38,7 +38,7 @@ fi COMMAND="$COMMAND --frontend $BUILDCTL_FRONTEND" COMMAND="$COMMAND --local context='$BUILDCTL_CONTEXT'" COMMAND="$COMMAND --local dockerfile='$BUILDCTL_DOCKERFILE'" -if [[ "${PLUGIN_PLATFORM:-}" == "true" ]]; then +if [[ -n "${PLUGIN_PLATFORM:-}" ]]; then COMMAND="$COMMAND --opt platform='$PLUGIN_PLATFORM'" fi From 58234199cf413ce3e550fc33da01d66fe0fa1579 Mon Sep 17 00:00:00 2001 From: Stephan Schnabel Date: Thu, 12 Jun 2025 15:00:15 +0200 Subject: [PATCH 5/5] 1 1 --- .woodpecker/build.yaml | 2 +- Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml index 4d298a2..b020142 100644 --- a/.woodpecker/build.yaml +++ b/.woodpecker/build.yaml @@ -20,7 +20,7 @@ steps: platform: [linux/amd64, linux/arm64] annotation: org.opencontainers.image.title: Buildctl Plugin - org.opencontainers.image.description: A Woodpecker CI plugin for yamllint to lint yaml files. + org.opencontainers.image.description: A Woodpecker CI plugin for buildctl to build container images using a remote builtkitd instance. org.opencontainers.image.url: $CI_REPO_URL org.opencontainers.image.documentation: $CI_REPO_URL/README.md org.opencontainers.image.source: $CI_REPO_CLONE_URL diff --git a/Dockerfile b/Dockerfile index 988b464..31433b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ RUN ARCH=$(uname -m) && \ [[ $ARCH == aarch64 ]] && export SUFFIX=arm64; \ [[ -z ${SUFFIX:-} ]] && echo "Unknown arch: $ARCH" && exit 1; \ wget -q "https://github.com/moby/buildkit/releases/download/v0.21.0/buildkit-v0.21.0.linux-$SUFFIX.tar.gz" --output-document=- | tar --gz --extract --directory=/usr/local bin/buildctl && \ - chmod 555 /usr/local/bin/jq + chmod 555 /usr/local/bin/buildctl COPY --chmod=555 entrypoint.sh /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]