89 lines
2.9 KiB
YAML
89 lines
2.9 KiB
YAML
image: docker:latest
|
|
|
|
stages:
|
|
- Build Base
|
|
- Build Variants
|
|
- Push Images
|
|
|
|
0-build-base:
|
|
stage: Build Base
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- ./images/
|
|
tags:
|
|
- docker
|
|
before_script:
|
|
- mkdir ./images
|
|
script:
|
|
- docker build --pull --build-arg "GRAV_VERSION=$GRAV_VERSION" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
|
|
- docker save --output "./images/$CI_COMMIT_SHORT_SHA.tar" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
|
|
|
|
1-build-git:
|
|
stage: Build Variants
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- ./images/
|
|
dependencies:
|
|
- 0-build-base
|
|
tags:
|
|
- docker
|
|
before_script:
|
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
|
|
script:
|
|
- docker build --build-arg "CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA" -f ./variants/Dockerfile-git -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-git" .
|
|
- docker save --output "./images/$CI_COMMIT_SHORT_SHA-git.tar" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-git"
|
|
|
|
2A-push-dev:
|
|
stage: Push Images
|
|
dependencies:
|
|
- 0-build-base
|
|
- 1-build-git
|
|
tags:
|
|
- docker
|
|
before_script:
|
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
|
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA-git.tar"
|
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
|
script:
|
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:dev-$GRAV_VERSION"
|
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-git" "$CI_REGISTRY_IMAGE:dev-$GRAV_VERSION-git"
|
|
- docker push "$CI_REGISTRY_IMAGE:dev-$GRAV_VERSION"
|
|
- docker push "$CI_REGISTRY_IMAGE:dev-$GRAV_VERSION-git"
|
|
|
|
2B-push-version:
|
|
stage: Push Images
|
|
dependencies:
|
|
- 0-build-base
|
|
- 1-build-git
|
|
tags:
|
|
- docker
|
|
when: manual
|
|
before_script:
|
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
|
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA-git.tar"
|
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
|
script:
|
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$GRAV_VERSION"
|
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-git" "$CI_REGISTRY_IMAGE:$GRAV_VERSION-git"
|
|
- docker push "$CI_REGISTRY_IMAGE:$GRAV_VERSION"
|
|
- docker push "$CI_REGISTRY_IMAGE:$GRAV_VERSION-git"
|
|
|
|
2C-push-latest:
|
|
stage: Push Images
|
|
dependencies:
|
|
- 0-build-base
|
|
- 1-build-git
|
|
tags:
|
|
- docker
|
|
when: manual
|
|
before_script:
|
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
|
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA-git.tar"
|
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
|
script:
|
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest"
|
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-git" "$CI_REGISTRY_IMAGE:latest-git"
|
|
- docker push "$CI_REGISTRY_IMAGE:latest"
|
|
- docker push "$CI_REGISTRY_IMAGE:latest-git" |