image: docker:19.03.1 stages: - lint - build services: - docker:19.03.1-dind variables: CONTAINER_IMAGE_BASE: registry.gitlab.haskell.org/$CI_PROJECT_PATH # Disable use of overlay2 due to https://github.com/moby/moby/issues/39663 #DOCKER_DRIVER: overlay2 DOCKER_DRIVER: vfs DOCKER_TLS_CERTDIR: "/certs" lint: stage: lint image: hadolint/hadolint:latest-debian tags: - x86_64-linux only: - merge_requests - master script: - find . -name "Dockerfile" -print0 | xargs -0 -n1 hadolint .build: stage: build only: - master - merge_requests before_script: - docker info script: - | CONTAINER_IMAGE="$CONTAINER_IMAGE_BASE/$IMAGE" docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY docker pull $CONTAINER_IMAGE:latest || true docker build --cache-from $CONTAINER_IMAGE:latest --tag $CONTAINER_IMAGE:$CI_COMMIT_SHA --tag $CONTAINER_IMAGE:latest $IMAGE if [ -z "$CI_MERGE_REQUEST_ID" ]; then docker push $CONTAINER_IMAGE:$CI_COMMIT_SHA docker push $CONTAINER_IMAGE:latest fi build-linters: extends: .build variables: IMAGE: linters tags: - docker - x86_64-linux build-aarch64-linux-deb9: extends: .build variables: IMAGE: aarch64-linux-deb9 allow_failure: true tags: - docker - aarch64-linux build-armv7-linux-deb9: extends: .build variables: IMAGE: armv7-linux-deb9 allow_failure: true tags: - docker - armv7-linux build-i386-linux-deb9: extends: .build variables: IMAGE: i386-linux-deb9 tags: - docker - x86_64-linux build-x86_64-freebsd: extends: .build variables: IMAGE: x86_64-freebsd tags: - docker - x86_64-linux build-x86_64-linux-centos7: extends: .build variables: IMAGE: x86_64-linux-centos7 tags: - docker - x86_64-linux build-x86_64-linux-alpine: extends: .build variables: IMAGE: x86_64-linux-alpine tags: - docker - x86_64-linux build-x86_64-linux-deb8: extends: .build variables: IMAGE: x86_64-linux-deb8 tags: - docker - x86_64-linux build-x86_64-linux-deb9: extends: .build variables: IMAGE: x86_64-linux-deb9 tags: - docker - x86_64-linux build-x86_64-linux-deb10: extends: .build variables: IMAGE: x86_64-linux-deb10 tags: - docker - x86_64-linux build-x86_64-linux-fedora27: extends: .build variables: IMAGE: x86_64-linux-fedora27 tags: - docker - x86_64-linux