mirror of
https://gitlab.com/openlp/runners.git
synced 2024-09-01 19:53:40 +00:00
170 lines
5.3 KiB
YAML
170 lines
5.3 KiB
YAML
image: docker:stable
|
|
|
|
stages:
|
|
- test
|
|
- build
|
|
|
|
services:
|
|
- docker:dind
|
|
|
|
variables:
|
|
IMAGE_BASE: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
|
|
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
|
|
lint-dockerfiles:
|
|
stage: test
|
|
image: hadolint/hadolint:latest-alpine
|
|
before_script:
|
|
- ''
|
|
script:
|
|
- hadolint --failure-threshold error Dockerfile.*
|
|
rules:
|
|
- when: always
|
|
|
|
test-debian:
|
|
stage: test
|
|
script:
|
|
- docker pull $IMAGE_BASE/debian || true
|
|
- docker build --cache-from $IMAGE_BASE/debian --tag $IMAGE_BASE/debian:$CI_COMMIT_SHA --tag $IMAGE_BASE/debian:latest -f Dockerfile.debian .
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH != "master"
|
|
changes:
|
|
- Dockerfile.debian
|
|
|
|
test-ubuntu:
|
|
stage: test
|
|
script:
|
|
- docker pull $IMAGE_BASE/ubuntu || true
|
|
- docker build --cache-from $IMAGE_BASE/ubuntu --tag $IMAGE_BASE/ubuntu:$CI_COMMIT_SHA --tag $IMAGE_BASE/ubuntu:latest -f Dockerfile.ubuntu .
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH != "master"
|
|
changes:
|
|
- Dockerfile.ubuntu
|
|
|
|
test-fedora:
|
|
stage: test
|
|
script:
|
|
- docker pull $IMAGE_BASE/fedora || true
|
|
- docker build --cache-from $IMAGE_BASE/fedora --tag $IMAGE_BASE/fedora:$CI_COMMIT_SHA --tag $IMAGE_BASE/fedora:latest -f Dockerfile.fedora .
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH != "master"
|
|
changes:
|
|
- Dockerfile.fedora
|
|
|
|
test-arch:
|
|
stage: test
|
|
script:
|
|
- docker pull $IMAGE_BASE/arch || true
|
|
- docker build --cache-from $IMAGE_BASE/arch --tag $IMAGE_BASE/arch:$CI_COMMIT_SHA --tag $IMAGE_BASE/arch:latest -f Dockerfile.arch .
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH != "master"
|
|
changes:
|
|
- Dockerfile.arch
|
|
|
|
test-angular:
|
|
stage: test
|
|
script:
|
|
- docker pull $IMAGE_BASE/angular || true
|
|
- docker build --cache-from $IMAGE_BASE/angular --tag $IMAGE_BASE/angular:$CI_COMMIT_SHA --tag $IMAGE_BASE/angular:latest -f Dockerfile.angular .
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH != "master"
|
|
changes:
|
|
- Dockerfile.angular
|
|
|
|
test-documentation:
|
|
stage: test
|
|
script:
|
|
- docker pull $IMAGE_BASE/documentation || true
|
|
- docker build --cache-from $IMAGE_BASE/documentation --tag $IMAGE_BASE/documentation:$CI_COMMIT_SHA --tag $IMAGE_BASE/documentation:latest -f Dockerfile.documentation .
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH != "master"
|
|
changes:
|
|
- Dockerfile.documentation
|
|
|
|
build-debian:
|
|
stage: build
|
|
script:
|
|
- docker pull $IMAGE_BASE/debian || true
|
|
- docker build --cache-from $IMAGE_BASE/debian --tag $IMAGE_BASE/debian:$CI_COMMIT_SHA --tag $IMAGE_BASE/debian:latest -f Dockerfile.debian .
|
|
- docker push $IMAGE_BASE/debian:$CI_COMMIT_SHA
|
|
- docker push $IMAGE_BASE/debian:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "master"
|
|
changes:
|
|
- Dockerfile.debian
|
|
|
|
build-ubuntu:
|
|
stage: build
|
|
script:
|
|
- docker pull $IMAGE_BASE/ubuntu || true
|
|
- docker build --cache-from $IMAGE_BASE/ubuntu --tag $IMAGE_BASE/ubuntu:$CI_COMMIT_SHA --tag $IMAGE_BASE/ubuntu:latest -f Dockerfile.ubuntu .
|
|
- docker push $IMAGE_BASE/ubuntu:$CI_COMMIT_SHA
|
|
- docker push $IMAGE_BASE/ubuntu:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "master"
|
|
changes:
|
|
- Dockerfile.ubuntu
|
|
|
|
build-fedora:
|
|
stage: build
|
|
script:
|
|
- docker pull $IMAGE_BASE/fedora || true
|
|
- docker build --cache-from $IMAGE_BASE/fedora --tag $IMAGE_BASE/fedora:$CI_COMMIT_SHA --tag $IMAGE_BASE/fedora:latest -f Dockerfile.fedora .
|
|
- docker push $IMAGE_BASE/fedora:$CI_COMMIT_SHA
|
|
- docker push $IMAGE_BASE/fedora:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "master"
|
|
changes:
|
|
- Dockerfile.fedora
|
|
|
|
build-arch:
|
|
stage: build
|
|
script:
|
|
- docker pull $IMAGE_BASE/arch || true
|
|
- docker build --cache-from $IMAGE_BASE/arch --tag $IMAGE_BASE/arch:$CI_COMMIT_SHA --tag $IMAGE_BASE/arch:latest -f Dockerfile.arch .
|
|
- docker push $IMAGE_BASE/arch:$CI_COMMIT_SHA
|
|
- docker push $IMAGE_BASE/arch:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "master"
|
|
changes:
|
|
- Dockerfile.arch
|
|
|
|
build-angular:
|
|
stage: build
|
|
script:
|
|
- docker pull $IMAGE_BASE/angular || true
|
|
- docker build --cache-from $IMAGE_BASE/angular --tag $IMAGE_BASE/angular:$CI_COMMIT_SHA --tag $IMAGE_BASE/angular:latest -f Dockerfile.angular .
|
|
- docker push $IMAGE_BASE/angular:$CI_COMMIT_SHA
|
|
- docker push $IMAGE_BASE/angular:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "master"
|
|
changes:
|
|
- Dockerfile.angular
|
|
|
|
build-documentation:
|
|
stage: build
|
|
script:
|
|
- docker pull $IMAGE_BASE/documentation || true
|
|
- docker build --cache-from $IMAGE_BASE/documentation --tag $IMAGE_BASE/documentation:$CI_COMMIT_SHA --tag $IMAGE_BASE/documentation:latest -f Dockerfile.documentation .
|
|
- docker push $IMAGE_BASE/documentation:$CI_COMMIT_SHA
|
|
- docker push $IMAGE_BASE/documentation:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "master"
|
|
changes:
|
|
- Dockerfile.documentation
|
|
|
|
build-all:
|
|
stage: build
|
|
script:
|
|
- |
|
|
for NAME in debian ubuntu fedora arch angular documentation; do
|
|
docker pull $IMAGE_BASE/$NAME || true
|
|
docker build --cache-from $IMAGE_BASE/$NAME --tag $IMAGE_BASE/$NAME:$CI_COMMIT_SHA --tag $IMAGE_BASE/$NAME:latest -f Dockerfile.$NAME .
|
|
docker push $IMAGE_BASE/$NAME:$CI_COMMIT_SHA
|
|
docker push $IMAGE_BASE/$NAME:latest
|
|
done
|
|
rules:
|
|
- when: manual
|