92 lines
No EOL
4.3 KiB
YAML
92 lines
No EOL
4.3 KiB
YAML
variables:
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
DOCKER_DRIVER: overlay2
|
|
|
|
services:
|
|
- docker:dind
|
|
|
|
.build: &build
|
|
image: docker:latest
|
|
stage: build
|
|
script:
|
|
- docker login -u gitlab-ci-token -p "${CI_JOB_TOKEN}" "${CI_REGISTRY}"
|
|
- docker build -f "${DOCKERFILE}" -t "${CI_REGISTRY_IMAGE}/${NAME}:${CI_COMMIT_SHA:0:8}" .
|
|
- docker tag "${CI_REGISTRY_IMAGE}/${NAME}:${CI_COMMIT_SHA:0:8}" "${CI_REGISTRY_IMAGE}/${NAME}:${CI_COMMIT_REF_SLUG}"
|
|
- docker push "${CI_REGISTRY_IMAGE}/${NAME}:${CI_COMMIT_SHA:0:8}"
|
|
- docker push "${CI_REGISTRY_IMAGE}/${NAME}:${CI_COMMIT_REF_SLUG}"
|
|
- if [[ "${CI_COMMIT_REF_SLUG}" == "main" ]]; then docker tag "${CI_REGISTRY_IMAGE}/${NAME}:${CI_COMMIT_REF_SLUG}" "${CI_REGISTRY_IMAGE}/${NAME}:latest" && docker push "${CI_REGISTRY_IMAGE}/${NAME}:latest"; fi
|
|
|
|
.docker-multiarch-image: &docker-multiarch-image
|
|
image: jdrouet/docker-with-buildx:stable
|
|
stage: build
|
|
tags: [docker-builder]
|
|
before_script: # per recommendations from https://github.com/docker/buildx/issues/495#issuecomment-754200673
|
|
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
|
- docker buildx create --name cibuilder --driver docker-container --use
|
|
- docker buildx inspect --bootstrap
|
|
- docker login -u gitlab-ci-token -p "${CI_JOB_TOKEN}" "${CI_REGISTRY}"
|
|
- export platform_sanatized=$(echo ${PLATFORM:6} | sed 's#/#-#g')
|
|
script:
|
|
- docker buildx build --platform "${PLATFORM}" -f "${DOCKERFILE}" -t "${CI_REGISTRY_IMAGE}/${NAME}:${CI_COMMIT_SHA:0:8}" -t "${CI_REGISTRY_IMAGE}/${NAME}-${platform-sanatized}:${CI_COMMIT_SHA:0:8}" -t "${CI_REGISTRY_IMAGE}/${NAME}:${CI_COMMIT_REF_SLUG}" -t "${CI_REGISTRY_IMAGE}/${NAME}-${platform-sanatized}:${CI_COMMIT_REF_SLUG}" --push .
|
|
- if [[ "${CI_COMMIT_REF_SLUG}" == "main" ]]; then docker buildx build --platform "${PLATFORM}" -f "${DOCKERFILE}" -t "${CI_REGISTRY_IMAGE}/${NAME}:latest" -t "${CI_REGISTRY_IMAGE}/${NAME}-${platform-sanatized}:latest" --push . ; fi
|
|
parallel:
|
|
matrix:
|
|
- PLATFORM:
|
|
- linux/amd64
|
|
- linux/arm64/v8
|
|
- linux/arm/v7
|
|
|
|
signal-server:
|
|
image: docker:20.10.0
|
|
stage: build
|
|
script:
|
|
- docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
|
|
- docker build -f signal-server.Dockerfile -t ${CI_REGISTRY_IMAGE}/signal-server:${CI_COMMIT_SHA:0:8} .
|
|
- export VERSION=$(docker run ${CI_REGISTRY_IMAGE}/signal-server:${CI_COMMIT_SHA:0:8} java -jar /usr/share/TextSecureServer.jar -v)
|
|
- docker tag ${CI_REGISTRY_IMAGE}/signal-server:${CI_COMMIT_SHA:0:8} ${CI_REGISTRY_IMAGE}/signal-server:${CI_COMMIT_REF_SLUG}
|
|
- docker tag ${CI_REGISTRY_IMAGE}/signal-server:${CI_COMMIT_SHA:0:8} ${CI_REGISTRY_IMAGE}/signal-server:${VERSION}
|
|
- docker push ${CI_REGISTRY_IMAGE}/signal-server:${CI_COMMIT_SHA:0:8}
|
|
- docker push ${CI_REGISTRY_IMAGE}/signal-server:${CI_COMMIT_REF_SLUG}
|
|
- docker push ${CI_REGISTRY_IMAGE}/signal-server:${VERSION}
|
|
- echo "docker pull ${CI_REGISTRY_IMAGE}/signal-server:${VERSION}"
|
|
allow_failure: true
|
|
|
|
freebsd-cross-build:
|
|
image: docker:20.10.0
|
|
stage: build
|
|
script:
|
|
- apk add git
|
|
- git clone https://github.com/wezm/freebsd-cross-build.git
|
|
- cd freebsd-cross-build
|
|
- echo "RUN apt-get update && apt-get install -y git" >> Dockerfile
|
|
- VERSION=$(git rev-parse --short=8 HEAD)
|
|
- docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
|
|
- docker build -t ${CI_REGISTRY_IMAGE}/${CI_JOB_NAME}:${VERSION} .
|
|
- docker push ${CI_REGISTRY_IMAGE}/${CI_JOB_NAME}:${VERSION}
|
|
- if [[ "${CI_COMMIT_REF_SLUG}" == "main" ]]; then docker tag ${CI_REGISTRY_IMAGE}/${CI_JOB_NAME}:${VERSION} ${CI_REGISTRY_IMAGE}/${CI_JOB_NAME}:latest && docker push ${CI_REGISTRY_IMAGE}/${CI_JOB_NAME}:latest; fi
|
|
- echo "docker pull ${CI_REGISTRY_IMAGE}/${CI_JOB_NAME}:${VERSION}"
|
|
|
|
test-helper:
|
|
<<: *build
|
|
variables:
|
|
DOCKERFILE: "test-helper.Dockerfile"
|
|
NAME: "test-helper"
|
|
allow_failure: true
|
|
|
|
signal-cross-builder:
|
|
<<: *build
|
|
variables:
|
|
DOCKERFILE: "signald-cross-builder.Dockerfile"
|
|
NAME: "signald-cross-builder"
|
|
|
|
builder-image-alpine:
|
|
<<: *docker-multiarch-image
|
|
variables:
|
|
DOCKERFILE: "signald-builder-alpine.Dockerfile"
|
|
NAME: "signald-builder-alpine-arm"
|
|
|
|
signald-builder:
|
|
<<: *docker-multiarch-image
|
|
variables:
|
|
DOCKERFILE: "signald-builder.Dockerfile"
|
|
NAME: "signald-builder" |