Newer
Older

Andrew Kapuscinski
committed
- build-base
- push-base
- build-dev

Andrew Kapuscinski
committed
- push-dev

Andrew Kapuscinski
committed
# - deploy-dev
# - deploy-test
variables:
PROJECT_NAME: "workspaces"
DEFAULT_DEPLOY_ENV: "dev"
image: docker:19.03.12

Andrew Kapuscinski
committed
workflow:
rules:
- if: $CI_MERGE_REQUEST_IID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
# Import Templates
include:
- '/ci/build.template.yml'
- '/ci/push.template.yml'
- '/ci/cleanup.template.yml'
- '/ci/unit-test.template.yml'

Andrew Kapuscinski
committed
# Build Base Image

Andrew Kapuscinski
committed
build base image:
stage: build-base
script:
- docker build -t ${REGISTRY_URL}/ops/base:${PROJECT_NAME} -f Dockerfile.base .
- docker tag ${REGISTRY_URL}/ops/base:${PROJECT_NAME} ${REGISTRY_URL}/ops/base:${CI_COMMIT_SHORT_SHA}

Andrew Kapuscinski
committed
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-ops/'
changes:

Andrew Kapuscinski
committed

Andrew Kapuscinski
committed
# Push Base Image Stage
push base image:
stage: push-base
script:
- echo "$HARBOR_PASSWORD" | docker login -u "$HARBOR_USER" --password-stdin $REGISTRY_URL
- docker push ${REGISTRY_URL}/ops/base:${PROJECT_NAME}
- docker push ${REGISTRY_URL}/ops/base:${CI_COMMIT_SHORT_SHA}

Andrew Kapuscinski
committed
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE =~ /\A(?i)-ops/'

Andrew Kapuscinski
committed
changes:

Andrew Kapuscinski
committed
build dev workflow:
stage: build-dev
variables:
SERVICE_NAME: "workflow"
extends: .build
build dev capability:
stage: build-dev
variables:
SERVICE_NAME: "capability"
extends: .build
build dev notification:
stage: build-dev
variables:
SERVICE_NAME: "notification"
extends: .build
## Test Stages ##
# Unit Tests
stage: unit-test-dev
variables:
SERVICE_NAME: "workflow"
extends: .unit-test
needs:
- build dev workflow
stage: unit-test-dev
variables:
SERVICE_NAME: "capability"
extends: .unit-test
needs:
- build dev capability

Andrew Kapuscinski
committed
unit test dev notification:
stage: unit-test-dev
variables:
SERVICE_NAME: "notification"
extends: .unit-test
needs:
- build dev notification

Andrew Kapuscinski
committed
push dev workflow:
stage: push-dev
variables:
SERVICE_NAME: "workflow"
extends: .push
needs:
- unit test dev workflow

Andrew Kapuscinski
committed
push dev capability:
stage: push-dev
variables:
SERVICE_NAME: "capability"
extends: .push
needs:
- unit test dev capability

Andrew Kapuscinski
committed
push dev notification:
stage: push-dev
variables:
SERVICE_NAME: "notification"
extends: .push
needs:
- unit test dev notification
clean build workflow:
stage: clean-images
variables:
SERVICE_NAME: "workflow"
extends: .cleanup
clean build capability:
stage: clean-images
variables:
SERVICE_NAME: "capability"
extends: .cleanup
clean build notification:
stage: clean-images
variables:
SERVICE_NAME: "notification"
extends: .cleanup

Andrew Kapuscinski
committed
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# deploy dev:
# stage: deploy-dev
# script:
# - |
# if [ "$CI_COMMIT_BRANCH" != "" ]; then \
# if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then \
# echo "Deploying merged branch: ${CI_COMMIT_BRANCH} to dev environment"; \
# SWARM_NODE_ENV="dev" TAG_TO_DEPLOY="development" docker stack deploy --compose-file docker-compose.dev.yml workspaces-dev ; \
# else
# if [ "$CAPABILITY_BRANCH" != "" ]; then \
# echo "Updating Capability Service: ${CI_COMMIT_BRANCH} in dev environment"; \
# docker service update --image marconi.aoc.nrao.edu/workspaces/capability:"$CAPABILITY_BRANCH" workspaces-dev_capability
# fi
# if [ "$WORKFLOW_BRANCH" != "" ]; then \
# echo "Updating Workflow Service: ${CI_COMMIT_BRANCH} in dev environment"; \
# docker service update --image marconi.aoc.nrao.edu/workspaces/workflow:"$WORKFLOW_BRANCH" workspaces-dev_workflow
# fi
# if [ "$WORKFLOW_BRANCH" == "" && "$CAPABILITY_BRANCH" == "" ]; then \
# echo "Deploying branch: ${CI_COMMIT_BRANCH} to dev environment"; \
# SWARM_NODE_ENV="dev" TAG_TO_DEPLOY="${CI_COMMIT_BRANCH}" docker stack deploy --compose-file docker-compose.dev.yml workspaces-dev ; \
# fi
# fi
# fi
# if [ "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" != "" ]; then \
# if [ "$CAPABILITY_BRANCH" != "" ]; then \
# echo "Updating Capability Service with PR Branch: ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} in dev environment"; \
# docker service update --image marconi.aoc.nrao.edu/workspaces/capability:"$CAPABILITY_BRANCH" workspaces-dev_capability
# fi
# if [ "$WORKFLOW_BRANCH" != "" ]; then \
# echo "Updating Workflow Service with PR Branch: ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} in dev environment"; \
# docker service update --image marconi.aoc.nrao.edu/workspaces/workflow:"$WORKFLOW_BRANCH" workspaces-dev_workflow
# fi
# if [ "$WORKFLOW_BRANCH" == "" && "$CAPABILITY_BRANCH" == "" ]; then \
# echo "Deploying branch: ${CI_COMMIT_BRANCH} to dev environment"; \
# SWARM_NODE_ENV="dev" TAG_TO_DEPLOY="${CI_COMMIT_BRANCH}" docker stack deploy --compose-file docker-compose.dev.yml workspaces-dev ; \
# fi
# echo "Deploying PR branch: ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} to dev environment"; \
# SWARM_NODE_ENV="dev" TAG_TO_DEPLOY="dev-branch" docker stack deploy --compose-file docker-compose.dev.yml workspaces-dev ; \
# fi
# environment: development
# rules:
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
# when: always
# - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# when: manual

Andrew Kapuscinski
committed
# deploy test:
# stage: deploy-test
# script:
# |
# echo "branch: ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
# echo "tag: ${CI_COMMIT_TAG}"
# SWARM_NODE_ENV="test" TAG_TO_DEPLOY="${CI_COMMIT_TAG}" docker stack deploy --compose-file docker-compose.dev.yml workspaces-dev
# rules:
# - if: $CI_COMMIT_TAG
# when: manual