Newer
Older
- build-dev
# workflow:
# rules:
# - if: $CI_COMMIT_MESSAGE =~ /\A(?i)-wip/
# when: never
# - if: '$CI_PIPELINE_SOURCE == "push"'
# - if: $CI_MERGE_REQUEST_IID
# - if: $CI_COMMIT_TAG
# - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_DEFAULT_BRANCH
image: docker:19.03.12
# variables:
# # Docker Variables
# DOCKER_TLS_CERTDIR: "/certs"
# services:
# - name: docker:19.03.12-dind
before_script:
- echo "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
- echo "$CI_COMMIT_REF_NAME"
# Check if branch is associated with a MR
# based on issue: https://gitlab.com/gitlab-org/gitlab/-/issues/201845
# which should have a fix in a future Gitlab-CI release
check-merge-request:
stage: init
before_script:
- apk add --no-cache curl
script:
- 'export OPENED_MR_ON_BRANCH=$(curl --header "Private-Token: $GITLAB_TOKEN" "https://$CI_SERVER_HOST/api/v4/merge_requests?project_id=$CI_PROJECT_ID&source_branch=$CI_COMMIT_BRANCH&state=opened")'
- |
if [ "${OPENED_MR_ON_BRANCH}" != "[]" ]; then \
echo "There is at least one MR opened on branch $CI_COMMIT_BRANCH. Stopping the push pipeline in favor of the merge request pipeline"; \
exit 1; \
fi
rules:
- if: $GITLAB_TOKEN && $CI_PIPELINE_SOURCE == 'push'
# Build
build dev workflow:
stage: build-dev
script:
- docker build -t marconi.aoc.nrao.edu/workspaces/workflow:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME -f services/workflow/Dockerfile.dev .
- docker tag marconi.aoc.nrao.edu/workspaces/workflow:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME marconi.aoc.nrao.edu/workspaces/workflow:$CI_COMMIT_SHORT_SHA
rules:
- if: $CI_COMMIT_MESSAGE =~ /\A(?i)Revert/
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- .gitlab-ci.yml
when: always
- if: '$CI_PIPELINE_SOURCE == "push"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- services/workflow/**/*
- apps/cli/**/*.{py,sh}
- shared/**/*.{py,sh}
# build dev capability:
# stage: build-dev
# script:
# - docker build -t marconi.aoc.nrao.edu/workspaces/capability:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME -f services/capability/Dockerfile.dev .
# - docker tag marconi.aoc.nrao.edu/workspaces/capability:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME marconi.aoc.nrao.edu/workspaces/capability:$CI_COMMIT_SHORT_SHA
# rules:
# - if: $CI_COMMIT_MESSAGE =~ /\A(?i)Revert/
# when: always
# - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# changes:
# - .gitlab-ci.yml
# when: always
# - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# changes:
# - services/capability/**/*
# - apps/cli/**/*.{py,sh}
# - shared/**/*.{py,sh}
# push dev workflow:
# stage: push-dev
# script:
# - echo "$HARBOR_PASSWORD" | docker login -u "$HARBOR_USER" --password-stdin $HARBOR_URL
# - docker tag marconi.aoc.nrao.edu/workspaces/workflow:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME marconi.aoc.nrao.edu/workspaces/workflow:dev
# - docker push marconi.aoc.nrao.edu/workspaces/workflow:$CI_COMMIT_SHORT_SHA
# - docker push marconi.aoc.nrao.edu/workspaces/workflow:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
# - docker push marconi.aoc.nrao.edu/workspaces/workflow:dev
# rules:
# - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "development"'
# when: manual
# push dev capability:
# stage: push-dev
# script:
# - echo "$HARBOR_PASSWORD" | docker login -u "$HARBOR_USER" --password-stdin $HARBOR_URL
# - docker tag marconi.aoc.nrao.edu/workspaces/capability:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME marconi.aoc.nrao.edu/workspaces/capability:dev
# - docker push marconi.aoc.nrao.edu/workspaces/capability:$CI_COMMIT_SHORT_SHA
# - docker push marconi.aoc.nrao.edu/workspaces/capability:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
# - docker push marconi.aoc.nrao.edu/workspaces/capability:dev
# rules:
# - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "development"'
# when: manual
# Cleanup
# clean runner:
# stage: .post
# script:
# - docker images -q --filter=reference="marconi.aoc.nrao.edu/workspaces/*" | xargs docker rmi -f
# # Deploy
# deploy dev:
# stage: deploy-dev
# script:
# - docker-compose --version
# when: manual
# deploy dev:
# stage: deploy-dev
# script:
# - env SWARM_NODE_ENV="dev" docker stack deploy --compose-file docker-compose.dev.yml workspaces-dev
# environment:
# name: development
# url: https://wirth.aoc.nrao.edu