Skip to content

Commit

Permalink
chore: add build_load_test and deploy-load-test job to build-test-dep…
Browse files Browse the repository at this point in the history
…loy ci workflow
  • Loading branch information
Trinaa committed Dec 5, 2023
1 parent a5d8828 commit 05b6d44
Showing 1 changed file with 83 additions and 12 deletions.
95 changes: 83 additions & 12 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,34 @@
# DOCKER_EMAIL - login info for docker hub
# DOCKER_USER
# DOCKER_PASS
#
#
# DOCKERHUB_LOAD_TEST_REPO - Docker Hub repo for load tests, format: <username>/<repo>
# DOCKER_LOAD_TEST_PASS - Docker Hub load test repo password
# DOCKER_LOAD_TEST_USER - Docker Hub load test repo user

version: 2.1

defaults:
docker_login: &docker_login
run:
commands:
docker_login:
parameters:
load:
type: boolean
default: False
steps:
- run:
name: Login to Dockerhub
command: |
if [ "${DOCKER_USER}" == "" ] || [ "${DOCKER_PASS}" == "" ]; then
echo "Skipping Login to Dockerhub, no credentials."
else
echo "${DOCKER_PASS}" | docker login -u="${DOCKER_USER}" --password-stdin
fi
USER="${DOCKER_USER}"
PASS="${DOCKER_PASS}"
if <<parameters.load>>; then
echo "Using load test repository credentials"
USER="${DOCKER_LOAD_TEST_USER}"
PASS="${DOCKER_LOAD_TEST_PASS}"
fi
if [ "${USER}" == "" ] || [ "${PASS}" == "" ]; then
echo "Skipping Login to Dockerhub, no credentials."
else
echo "${PASS}" | docker login -u="${USER}" --password-stdin
fi
jobs:
audit:
Expand Down Expand Up @@ -167,7 +180,7 @@ jobs:
command: apk add --no-cache openssh-client git
- checkout
- setup_remote_docker
- *docker_login
- docker_login
- run:
name: Create a version.json
command: |
Expand All @@ -194,6 +207,26 @@ jobs:
paths:
- docker.tar

build-load-test:
docker:
- image: cimg/base:2023.12
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run:
name: Build Image
command: docker build -t autopush-locust -f ./tests/load/Dockerfile .
- run:
name: Save Docker Image to Workspace
command: |
mkdir -p /tmp/workspace
docker save -o /tmp/workspace/autopush-locust.tar autopush-locust
- persist_to_workspace:
root: /tmp/workspace
paths:
- autopush-locust.tar

deploy:
docker:
- image: docker:18.03.0-ce
Expand All @@ -207,7 +240,7 @@ jobs:
type: string
steps:
- setup_remote_docker
- *docker_login
- docker_login
- attach_workspace:
at: /cache
- run:
Expand All @@ -230,6 +263,29 @@ jobs:
docker push "<<parameters.repo>>:${CIRCLE_TAG}"
fi
deploy-load-test:
docker:
- image: cimg/base:2023.12
steps:
- checkout
- attach_workspace:
at: /tmp/workspace
- setup_remote_docker
- run:
name: Load Docker Image From Workspace
command: docker load -i /tmp/workspace/autopush-locust.tar
- docker_login:
load: True
- run:
name: Push to Docker Hub
command: |
echo ${DOCKERHUB_LOAD_TEST_REPO}:${CIRCLE_SHA1}
docker tag autopush-locust ${DOCKERHUB_LOAD_TEST_REPO}:${CIRCLE_SHA1}
docker tag autopush-locust ${DOCKERHUB_LOAD_TEST_REPO}:latest
docker images
docker push "${DOCKERHUB_LOAD_TEST_REPO}:${CIRCLE_SHA1}"
docker push "${DOCKERHUB_LOAD_TEST_REPO}:latest"
workflows:
version: 2

Expand Down Expand Up @@ -274,6 +330,11 @@ workflows:
tags:
only: /.*/

- build-load-test:
filters:
tags:
only: /.*/

# Comment out the following two sections for local CircleCI testing.
- deploy:
name: deploy-autopush
Expand Down Expand Up @@ -313,3 +374,13 @@ workflows:
only: /.*/
branches:
only: master

- deploy-load-test:
requires:
- build-load-test
- python-checks
filters:
tags:
only: /.*/
branches:
only: master

0 comments on commit 05b6d44

Please sign in to comment.