image: docker:latest services: - docker:dind stages: - test - build variables: IMAGE: registry.gitlab.com/kdam0/nccli DOCKER_CLI_EXPERIMENTAL: enabled before_script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY unit-test: stage: test coverage: '/coverage: \d+.\d+% of statements/' script: - docker build --pull --target test -t $IMAGE:temp . build: stage: build script: - docker build --build-arg opts="CGO_ENABLED=0 GOARCH=amd64" --pull -t $IMAGE:amd64 . - docker push $IMAGE:amd64 - docker build --build-arg opts="CGO_ENABLED=0 GOARCH=arm64" --pull -t $IMAGE:arm64 . - docker push $IMAGE:arm64 - docker build --build-arg opts="GOARCH=arm GOARM=7" --pull -t $IMAGE:arm32v7 . - docker push $IMAGE:arm32v7 - docker manifest create $IMAGE --amend $IMAGE:amd64 --amend $IMAGE:arm64 --amend $IMAGE:arm32v7 - docker manifest annotate $IMAGE $IMAGE:amd64 --os linux --arch amd64 - docker manifest annotate $IMAGE $IMAGE:arm32v7 --os linux --arch arm --variant v7 - docker manifest annotate $IMAGE $IMAGE:arm64 --os linux --arch arm64 --variant v8 - docker manifest push --purge $IMAGE