diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index 25bfc28..0000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,15 +0,0 @@ -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/.justfile b/.justfile index a96f31e..b8a3119 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,7 +16,13 @@ # Build image with local docker daemon. [group('image')] @build: - docker buildx build . --tag=kokuwaio/buildctl --platform=linux/amd64,linux/arm64 + 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 # Inspect image layers with `dive`. [group('image')] diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml index b020142..a1b9b86 100644 --- a/.woodpecker/build.yaml +++ b/.woodpecker/build.yaml @@ -12,7 +12,7 @@ steps: pull: true depends_on: [] settings: &settings - name: registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER} + name: registry.kokuwa.io/buildctl:$CI_PIPELINE_NUMBER auth: registry.kokuwa.io: username: {from_secret: kokuwa_io_username} @@ -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 buildctl to build container images using a remote builtkitd instance. + org.opencontainers.image.description: A Woodpecker CI plugin for yamllint to lint yaml files. 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/.woodpecker/test.yaml b/.woodpecker/test.yaml index e68f23c..b096834 100644 --- a/.woodpecker/test.yaml +++ b/.woodpecker/test.yaml @@ -6,6 +6,7 @@ when: path: [.woodpecker/build.yaml, Dockerfile, Dockerfile.dockerignore, entrypoint.sh] depends_on: [build] +skip_clone: true matrix: PLATFORM: [amd64, arm64] labels: @@ -13,25 +14,25 @@ labels: steps: - registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER}: - image: registry.kokuwa.io/kokuwaio/buildctl:ci-${CI_PIPELINE_NUMBER} + pr: + image: registry.kokuwa.io/buildctl:$CI_PIPELINE_NUMBER pull: true commands: buildctl --version when: event: pull_request - registry.kokuwa.io/kokuwaio/buildctl: &version - image: registry.kokuwa.io/kokuwaio/buildctl:latest + kokuwa.io: &version + image: kokuwa.io/buildctl pull: true commands: buildctl --version when: event: [manual, push] branch: main - docker.io/kokuwaio/buildctl: - image: docker.io/kokuwaio/buildctl:latest + docker.io: + image: docker.io/kokuwaio/buildctl <<: *version - ghcr.io/kokuwaio/buildctl: - image: ghcr.io/kokuwaio/buildctl:latest + ghcr.io: + image: ghcr.io/kokuwaio/buildctl <<: *version diff --git a/Dockerfile b/Dockerfile index 31433b1..ea76470 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,6 @@ # 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"] @@ -18,7 +17,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/buildctl + chmod 555 /usr/local/bin/jq COPY --chmod=555 entrypoint.sh /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh index d0cf87a..455d6d7 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 [[ -n "${PLUGIN_PLATFORM:-}" ]]; then +if [[ "${PLUGIN_PLATFORM:-}" == "true" ]]; then COMMAND="$COMMAND --opt platform='$PLUGIN_PLATFORM'" fi diff --git a/renovate.json b/renovate.json index ad623e7..a7a4671 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]+)", - "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" + "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" ], "datasourceTemplate": "github-tags", "packageNameTemplate": "moby/buildkit" },{ "customType": "regex", "managerFilePatterns": ["Dockerfile"], - "matchStrings": ["github.com/jqlang/jq/releases/download/(?jq-[0-9]+\\.[0-9]+\\.[0-9]+)/jq-linux-\\$SUFFIX"], + "matchStrings": ["https://github.com/jqlang/jq/releases/download/(?jq-[0-9]+\\.[0-9]+\\.[0-9]+)/jq-linux-$SUFFIX"], "datasourceTemplate": "github-tags", "packageNameTemplate": "jqlang/jq" }