diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b892394f3ee8718191760803f02ebc0167e6c961..84a9e93a06402777d6b8448ee23a49d31e21d8a8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,12 +2,17 @@ stages: - build-dev - push-dev - deploy-dev + # - .post workflow: rules: - - if: $CI_COMMIT_MESSAGE =~ /\A(?i)-wip/ - when: never - - if: '$CI_PIPELINE_SOURCE == "push"' + # - 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 @@ -25,31 +30,60 @@ image: docker:19.03.12 build dev workflow: stage: build-dev script: - - docker build -t marconi.aoc.nrao.edu/workspaces/workflow:$CI_COMMIT_BRANCH -f services/workflow/Dockerfile.dev . - - docker tag marconi.aoc.nrao.edu/workspaces/workflow:$CI_COMMIT_BRANCH marconi.aoc.nrao.edu/workspaces/workflow:$CI_COMMIT_SHORT_SHA + - 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: + - 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_COMMIT_BRANCH -f services/capability/Dockerfile.dev . - - docker tag marconi.aoc.nrao.edu/workspaces/capability:$CI_COMMIT_BRANCH marconi.aoc.nrao.edu/workspaces/capability:$CI_COMMIT_SHORT_SHA + - 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: + - services/capability/**/* + - apps/cli/**/*.{py,sh} + - shared/**/*.{py,sh} # Push 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_COMMIT_BRANCH - needs: ["build dev workflow"] + - 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_COMMIT_MESSAGE =~ /\A(?i)Merge/ + # needs: ["build dev workflow"] 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_COMMIT_BRANCH - needs: ["build dev capability"] + - docker push marconi.aoc.nrao.edu/workspaces/capability:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME + rules: + - if: $CI_COMMIT_MESSAGE =~ /\A(?i)Merge/ + # needs: ["build dev capability"] + +# Cleanup +# clean runner: +# stage: .post +# script: +# - docker images -q --filter=reference="marconi.aoc.nrao.edu/workspaces/*" | xargs docker rmi -f # Tests @@ -62,8 +96,8 @@ push dev capability: # when: manual # Deploy -deploy dev: - stage: deploy-dev - script: - - env SWARM_NODE_ENV="dev" docker stack deploy --compose-file docker-compose.dev.yml workspaces-$CI_COMMIT_SHORT_SHA - when: manual +# deploy dev: +# stage: deploy-dev +# script: +# - env SWARM_NODE_ENV="dev" docker stack deploy --compose-file docker-compose.dev.yml workspaces-dev +# when: manual \ No newline at end of file diff --git a/services/workflow/Dockerfile.dev b/services/workflow/Dockerfile.dev index 78a6686085abb564f88959a411594fffd82bc426..3c7790e50098bb887997b81272c81ebcf30956d2 100644 --- a/services/workflow/Dockerfile.dev +++ b/services/workflow/Dockerfile.dev @@ -1,11 +1,12 @@ # This is nrao:workflow FROM marconi.aoc.nrao.edu/ops/base:workspaces +RUN pip --version # Get workflow code into the image WORKDIR /code COPY ./services/workflow ./ COPY ./shared ./src/shared -COPY ./apps ./src/apps +COPY ./apps/cli ./src/apps/cli # Python library installation RUN pip install -r requirements.txt \ @@ -15,3 +16,4 @@ RUN pip install -r requirements.txt \ ENV CAPO_PROFILE dev ENTRYPOINT pserve --reload development.ini +