Commit a9e5439c authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Initial commit

parents
Loading
Loading
Loading
Loading

.editorconfig

0 → 100644
+11 −0
Original line number Diff line number Diff line
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = tab

[*.{yml,yaml}]
indent_style = space
indent_size = 2

.gitlab-ci.yml

0 → 100644
+58 −0
Original line number Diff line number Diff line
stages:
- build
- deploy

# Prevent duplicate pipelines from merge requests
workflow:
  rules:
  - if: $CI_PIPELINE_SOURCE == "merge_request_event"
  - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
    when: never
  - when: always


.build:
  stage: build
  image: docker.kodo.org.uk/ci-images/buildkit/buildctl:latest
  tags: [buildkit]
  script:
  - buildctl build
    --frontend=dockerfile.v0
    --local context=.
    --local dockerfile=.
    --opt target=$TARGET
    --output=type=image,name=$CI_REGISTRY_IMAGE/$TARGET:build-$CI_PIPELINE_IID,push=true
    ${REVISION:+--opt build-arg:REVISION=$REVISION}
    ${VERSION:+--opt build-arg:VERSION=$VERSION}

Build "buildkitd":
  extends: [.build]
  variables:
    TARGET: buildkitd
  rules:
  - if: $CI_COMMIT_TAG =~ /^v[0-9]/
    variables:
      VERSION: ${CI_COMMIT_TAG}
  - if: $CI_PIPELINE_SOURCE != "push"

Build "buildctl":
  extends: [.build]
  variables:
    TARGET: buildctl
  rules:
  - if: $CI_COMMIT_TAG =~ /^v[0-9]/
    variables:
      REVISION: refs/tags/${CI_COMMIT_TAG}
  - if: $CI_PIPELINE_SOURCE != "push"


Deploy Images:
  stage: deploy
  image: docker.kodo.org.uk/ci-images/docker-reg:latest
  rules:
  - if: $CI_COMMIT_TAG =~ /^v[0-9]/
  script:
  - docker-reg $CI_REGISTRY_IMAGE/buildkitd:build-$CI_PIPELINE_IID retag ${CI_COMMIT_TAG#v}
  - docker-reg $CI_REGISTRY_IMAGE/buildctl:build-$CI_PIPELINE_IID retag ${CI_COMMIT_TAG#v}
  - docker-reg $CI_REGISTRY_IMAGE/buildkitd:build-$CI_PIPELINE_IID retag latest
  - docker-reg $CI_REGISTRY_IMAGE/buildctl:build-$CI_PIPELINE_IID retag latest

.gitlint

0 → 100644
+7 −0
Original line number Diff line number Diff line
[general]
ignore=body-trailing-whitespace,body-is-missing

[author-valid-email]
regex=.*@[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](\.[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9])+

# vim:ft=cfg

Dockerfile

0 → 100644
+39 −0
Original line number Diff line number Diff line
# syntax=docker/dockerfile-upstream:1-labs

ARG VERSION

FROM --platform=$BUILDPLATFORM golang:1.17-alpine as go

# Get source code
WORKDIR /src
ENV PKG=github.com/moby/buildkit
ARG REVISION=refs/heads/master
RUN <<-END
	wget -O- https://$PKG/archive/$REVISION.tar.gz |
	gunzip -c |
	tar -xf- --strip-components=1
END

# Build 'buildctl' binary
ARG TARGETOS
ARG TARGETARCH
RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o buildctl ./cmd/buildctl


FROM alpine as buildctl
ENV DOCKER_CONFIG=/etc/docker
RUN mkdir -p $DOCKER_CONFIG
COPY --from=go /src/buildctl /bin/
COPY entrypoint.buildctl.bash /bin/entrypoint
ENTRYPOINT ["/bin/entrypoint"]


FROM moby/buildkit:${VERSION:+$VERSION-}rootless as buildkitd

USER 0
RUN mkdir --mode 0775 /run/buildkit && chgrp 1000 /run/buildkit
COPY entrypoint.buildkitd.sh /bin/entrypoint

USER 1000
VOLUME /run/buildkit
ENTRYPOINT ["/bin/entrypoint"]
+21 −0
Original line number Diff line number Diff line
#!/bin/sh
set -eu

case ${1-help} in
	-*|du|prune|build|b|debug|help|h) set /bin/buildctl "$@" ;;
esac

if [ -n "${CI_REGISTRY-}" ]; then
	tee >$DOCKER_CONFIG/config.json <<-END_JSON
		{
		  "auths": {
		    "$CI_REGISTRY": {
		      "username": "$CI_REGISTRY_USER",
		      "password": "$CI_REGISTRY_PASSWORD"
		    }
		  }
		}
	END_JSON
fi

exec "$@"