Merge branch 'bvanderlugt-cic-eth-build-patch-76069' into 'master'

flesh out the build steps

See merge request grassrootseconomics/cic-internal-integration!5
This commit is contained in:
Blair Vanderlugt 2021-02-05 15:53:15 +00:00
commit 370f11c01b
3 changed files with 80 additions and 35 deletions

View File

@ -1,12 +1,20 @@
.contract-migration-changes-target: variables:
APP_NAME: cic-eth
DOCKERFILE_PATH: $APP_NAME/docker/Dockerfile
.this_changes_target:
rules: rules:
- changes: - changes:
- $CONTEXT/cic-eth/* - $CONTEXT/$APP_NAME/*
build-cic-eth: build-mr-cic-eth:
extends: extends:
- .contract-migration-changes-target - .this_changes_target
- .py-build - .py_build_merge_request
variables:
DOCKERFILE_PATH: cic-eth/docker/Dockerfile build-push-cic-eth:
extends:
- .this_changes_target
- .py_build_push

View File

@ -1,11 +1,18 @@
.contract-migration-changes-target: variables:
APP_NAME: contract-migration
DOCKERFILE_PATH: $APP_NAME/docker/Dockerfile
.this_changes_target:
rules: rules:
- changes: - changes:
- $CONTEXT/contract-migration/* - $CONTEXT/$APP_NAME/*
build-contract-migration: build-mr-contract-migration:
extends: extends:
- .contract-migration-changes-target - .this_changes_target
- .py-build - .py_build_merge_request
variables:
DOCKERFILE_PATH: contract-migration/docker/Dockerfile build-push-contract-migration:
extends:
- .this_changes_target
- .py_build_push

View File

@ -1,6 +1,5 @@
.py-build:
stage: build
image: docker:19.03.13 image: docker:19.03.13
variables: variables:
# docker host # docker host
DOCKER_HOST: tcp://docker:2376 DOCKER_HOST: tcp://docker:2376
@ -11,15 +10,46 @@
# https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4125 # https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4125
DOCKER_TLS_VERIFY: 1 DOCKER_TLS_VERIFY: 1
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client" DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
# We are building these from the apps dir to easily share the requirements file there.
# It would be nicer to build from the app dir context. TODO figure out a nice way to do this in local DOCKER_TLS_VERIFY
CONTEXT: apps/ CONTEXT: apps/
services: services:
- docker:19.03.13-dind - docker:19.03.13-dind
before_script: before_script:
- docker info - docker info
.py_build_merge_request:
stage: build
before_script:
- cd $CONTEXT - cd $CONTEXT
- pwd variables:
- ls -la CI_DEBUG_TRACE: "true"
IMAGE_TAG: $APP_NAME:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME-$CI_COMMIT_SHORT_SHA
script: script:
- docker build -t $CI_PROJECT_PATH_SLUG:$CI_COMMIT_SHORT_SHA -f $DOCKERFILE_PATH . - docker build -t $IMAGE_TAG -f $DOCKERFILE_PATH .
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
.py_build_push:
stage: build
before_script:
- cd $CONTEXT
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" $CI_REGISTRY --password-stdin
variables:
CI_DEBUG_TRACE: "true"
IMAGE_TAG: $APP_NAME:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
LATEST_TAG: $APP_NAME:$CI_COMMIT_BRANCH-latest
script:
- docker build -t $IMAGE_TAG -f $DOCKERFILE_PATH .
- docker push $IMAGE_TAG
- docker tag $IMAGE_TAG $LATEST_TAG
- docker push $LATEST_TAG
rules:
- if: $CI_COMMIT_BRANCH == "master"
when: always