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 . ; \

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}

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

Andrew Kapuscinski
committed
changes:

Andrew Kapuscinski
committed
when: always
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
stage: unit-test-dev
variables:
SERVICE_NAME: "capability"
extends: .unit-test

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

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

Andrew Kapuscinski
committed
needs:
clean build capability:
stage: clean-images
variables:
SERVICE_NAME: "capability"
extends: .cleanup

Andrew Kapuscinski
committed
needs:
clean build notification:
stage: clean-images
variables:
SERVICE_NAME: "notification"
extends: .cleanup
needs:
- build dev notification

Andrew Kapuscinski
committed
145
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
# 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