CircleCI config for passing CDN url to the Docker image.

The workflows need to split since we're passing different parameters to
the Docker build at the beginning of the workflow.
This commit is contained in:
dandds 2019-11-14 17:06:28 -05:00
parent 8e12c6bfbd
commit 293854ece6
3 changed files with 71 additions and 24 deletions

View File

@ -54,6 +54,22 @@ commands:
name: Apply the default permission sets name: Apply the default permission sets
command: docker run --network atat -e PGDATABASE=<< parameters.pgdatabase >> << parameters.container_env >> atat:builder .venv/bin/python script/seed_roles.py command: docker run --network atat -e PGDATABASE=<< parameters.pgdatabase >> << parameters.container_env >> atat:builder .venv/bin/python script/seed_roles.py
docker-build:
parameters:
cdn_url:
type: string
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
version: 18.06.0-ce
- run:
name: Build image
command: |
docker build . --build-arg CSP=azure --build-arg CDN_URL=<< parameters.cdn_url >> -f ./Dockerfile -t atat:builder --target builder
docker build . --build-arg CSP=azure --build-arg CDN_URL=<< parameters.cdn_url >> -f ./Dockerfile -t atat:latest
- cache_docker_image
deploy: deploy:
parameters: parameters:
namespace: namespace:
@ -124,20 +140,19 @@ commands:
kubectl set image cronjobs.batch/crls crls=<< parameters.tag >> --namespace=<< parameters.namespace >> kubectl set image cronjobs.batch/crls crls=<< parameters.tag >> --namespace=<< parameters.namespace >>
jobs: jobs:
docker-build: docker-build-staging:
docker: docker:
- image: docker:18.06.0-ce-git - image: docker:18.06.0-ce-git
steps: steps:
- checkout - docker-build:
- setup_remote_docker: cdn_url: https://atat-cdn-staging.azureedge.net/
docker_layer_caching: true
version: 18.06.0-ce docker-build-master:
- run: docker:
name: Build image - image: docker:18.06.0-ce-git
command: | steps:
docker build . --target builder --build-arg CSP=azure -f ./Dockerfile -t atat:builder - docker-build:
docker build . --build-arg CSP=azure -f ./Dockerfile -t atat:latest cdn_url: https://atat-cdn.azureedge.net/
- cache_docker_image
test: test:
docker: docker:
@ -194,6 +209,19 @@ jobs:
--virtualenv /install/.venv \ --virtualenv /install/.venv \
--http-socket :8000 --http-socket :8000
" "
- run:
name: Wait for ATAT container to be available
command: |
docker pull curlimages/curl:latest
docker run --network atat \
curlimages/curl:latest \
curl --connect-timeout 3 \
--max-time 5 \
--retry 120 \
--retry-connrefused \
--retry-delay 1 \
--retry-max-time 120 \
test-atat:8000
- run: - run:
name: Execute Ghost Inspector test suite name: Execute Ghost Inspector test suite
command: | command: |
@ -257,29 +285,49 @@ workflows:
version: 2 version: 2
run-tests: run-tests:
jobs: jobs:
- docker-build - docker-build-staging
- test: - test:
requires: requires:
- docker-build - docker-build-staging
- integration-tests: - integration-tests:
requires: requires:
- docker-build - docker-build-staging
- deploy-staging:
requires: build-staging:
- test jobs:
- integration-tests - docker-build-staging:
filters: filters:
branches: branches:
only: only:
- staging - staging
- deploy-master: - test:
requires:
- docker-build-staging
- integration-tests:
requires:
- docker-build-staging
- deploy-staging:
requires: requires:
- test - test
- integration-tests - integration-tests
build-master:
jobs:
- docker-build-master:
filters: filters:
branches: branches:
only: only:
- master - master
- test:
requires:
- docker-build-master
- integration-tests:
requires:
- docker-build-master
- deploy-master:
requires:
- test
- integration-tests
test-crl-parser: test-crl-parser:
triggers: triggers:
@ -288,9 +336,9 @@ workflows:
filters: filters:
branches: branches:
only: only:
- master - staging
jobs: jobs:
- docker-build - docker-build-staging
- test-crl-parser: - test-crl-parser:
requires: requires:
- docker-build - docker-build-staging

View File

@ -298,6 +298,7 @@ def apply_json_logger():
} }
) )
def register_jinja_globals(app): def register_jinja_globals(app):
static_url = app.config.get("STATIC_URL", "/static/") static_url = app.config.get("STATIC_URL", "/static/")
@ -308,5 +309,4 @@ def register_jinja_globals(app):
else: else:
return flask_url_for(endpoint, **values) return flask_url_for(endpoint, **values)
app.jinja_env.globals["url_for"] = _url_for app.jinja_env.globals["url_for"] = _url_for

View File

@ -11,7 +11,6 @@ CRL_STORAGE_CONTAINER = crls
CSP=mock CSP=mock
DEBUG = true DEBUG = true
DISABLE_CRL_CHECK = false DISABLE_CRL_CHECK = false
DISABLE_CRL_CHECK = false
ENVIRONMENT = dev ENVIRONMENT = dev
LIMIT_CONCURRENT_SESSIONS = false LIMIT_CONCURRENT_SESSIONS = false
LOG_JSON = false LOG_JSON = false