Skip to content
Snippets Groups Projects
Commit 5bb41d3f authored by Andrew Kapuscinski's avatar Andrew Kapuscinski
Browse files

Added Web UI to CI so it builds and pushes when PR is merged

- Added PATH_PREFIX variable to build stage to handle dockerfiles at paths other than /services
- removed .unit-test template from .gitlab-ci.yml because it was duplicated
parent 537fd828
No related branches found
No related tags found
1 merge request!103Ws 105 add ui to ci
Pipeline #726 passed
...@@ -37,7 +37,7 @@ include: ...@@ -37,7 +37,7 @@ include:
- '/ci/build.template.yml' - '/ci/build.template.yml'
- '/ci/push.template.yml' - '/ci/push.template.yml'
- '/ci/cleanup.template.yml' - '/ci/cleanup.template.yml'
# - '/ci/unit-test.template.yml' - '/ci/unit-test.template.yml'
# Build Base Image # Build Base Image
build base image: build base image:
...@@ -80,32 +80,31 @@ build dev workflow: ...@@ -80,32 +80,31 @@ build dev workflow:
stage: build-dev stage: build-dev
variables: variables:
SERVICE_NAME: "workflow" SERVICE_NAME: "workflow"
PATH_PREFIX: "services/"
extends: .build extends: .build
build dev capability: build dev capability:
stage: build-dev stage: build-dev
variables: variables:
SERVICE_NAME: "capability" SERVICE_NAME: "capability"
PATH_PREFIX: "services/"
extends: .build extends: .build
build dev notification: build dev notification:
stage: build-dev stage: build-dev
variables: variables:
SERVICE_NAME: "notification" SERVICE_NAME: "notification"
PATH_PREFIX: "services/"
extends: .build extends: .build
build dev web:
stage: build-dev
variables:
SERVICE_NAME: "web"
PATH_PREFIX: "apps/"
extends: .build
## Test Stages ## ## Test Stages ##
.unit-test:
script:
- docker run --name "${SERVICE_NAME}-${CI_COMMIT_SHORT_SHA}" ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA} ./bin/run-tests.sh -b
- docker cp "${SERVICE_NAME}-${CI_COMMIT_SHORT_SHA}":/code/.coverage ./.coverage.${SERVICE_NAME}.${CI_COMMIT_SHORT_SHA}
- docker container stop "${SERVICE_NAME}-${CI_COMMIT_SHORT_SHA}" && docker container rm "${SERVICE_NAME}-${CI_COMMIT_SHORT_SHA}"
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: always
# Unit Tests # Unit Tests
unit test dev workflow: unit test dev workflow:
...@@ -192,6 +191,15 @@ push dev notification: ...@@ -192,6 +191,15 @@ push dev notification:
needs: needs:
- unit test dev notification - unit test dev notification
push dev web:
stage: push-dev
variables:
SERVICE_NAME: "web"
extends: .push
# UI tests coming soon!
# needs:
# - unit test dev ui
# Cleanup # Cleanup
clean build workflow: clean build workflow:
stage: .post stage: .post
...@@ -214,6 +222,13 @@ clean build notification: ...@@ -214,6 +222,13 @@ clean build notification:
extends: .cleanup extends: .cleanup
allow_failure: true allow_failure: true
clean build web:
stage: .post
variables:
SERVICE_NAME: "web"
extends: .cleanup
allow_failure: true
# Deploy Stages # Deploy Stages
# Disabled until GL Pages are set up # Disabled until GL Pages are set up
.pages: .pages:
......
...@@ -44,6 +44,7 @@ docker-dev-images-locally: ...@@ -44,6 +44,7 @@ docker-dev-images-locally:
# Build base image # Build base image
docker-base: db docker-base: db
docker build -t marconi.aoc.nrao.edu/ops/base:workspaces -f Dockerfile.base . docker build -t marconi.aoc.nrao.edu/ops/base:workspaces -f Dockerfile.base .
docker build -t marconi.aoc.nrao.edu/ops/base:nodejs-14 -f apps/web/Dockerfile.base .
# Build DB image # Build DB image
db: db:
......
FROM node:14.16-alpine3.12
RUN apk update && apk add --virtual build-dependencies \
git \
python2 \
g++ \
make \
&& rm -rf /var/cache/apk/*
\ No newline at end of file
FROM node:14.15.1-alpine3.12 FROM marconi.aoc.nrao.edu/ops/base:nodejs-14
# RUN apk add --no-cache git python3 && alias python=python3
# --virtual build-dependencies
WORKDIR /app WORKDIR /app
COPY package-lock.json . COPY /apps/web/package-lock.json .
COPY package.json . COPY /apps/web/package.json .
RUN apk update && apk add --virtual build-dependencies \ ENV NG_CLI_ANALYTICS=false
git \
python2 \ RUN npm install \
g++ \
make \
&& rm -rf /var/cache/apk/* \
&& npm install --production=false \
&& apk del build-dependencies && apk del build-dependencies
# COPY . . COPY ./apps/web ./
CMD [ "npm", "start" ] CMD [ "npm", "start" ]
\ No newline at end of file
FROM node:14.15.1-alpine3.12 FROM marconi.aoc.nrao.edu/ops/base:nodejs-14
# set container working directory to /code # set container working directory to /code
WORKDIR /code/ WORKDIR /code/
...@@ -6,12 +6,8 @@ WORKDIR /code/ ...@@ -6,12 +6,8 @@ WORKDIR /code/
# copy web app from host to container # copy web app from host to container
COPY ./apps/web ./ COPY ./apps/web ./
# install dependencies # Disable Angular Analytics prompt
RUN apk add --no-cache \ ENV NG_CLI_ANALYTICS=false
git \
python2 \
g++ \
make
# install node_modules # install node_modules
RUN npm install RUN npm install
......
...@@ -3,13 +3,9 @@ ...@@ -3,13 +3,9 @@
script: script:
- '[ -z "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ] && BRANCH=$CI_COMMIT_BRANCH || BRANCH=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME' - '[ -z "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ] && BRANCH=$CI_COMMIT_BRANCH || BRANCH=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME'
- echo "Building branch -- ${BRANCH}" - echo "Building branch -- ${BRANCH}"
- | - NAME="${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}"
if [ $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ] ; then \ - docker build -t ${NAME}:${CI_COMMIT_SHORT_SHA} -f ${PATH_PREFIX}${SERVICE_NAME}/Dockerfile.dev .
docker build -t ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_BRANCH} -f services/${SERVICE_NAME}/Dockerfile.dev . ; \ - docker tag ${NAME}:${CI_COMMIT_SHORT_SHA} ${NAME}:${BRANCH}
else
docker build -t ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} -f services/${SERVICE_NAME}/Dockerfile.dev . ; \
fi
- docker tag ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${BRANCH} ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA}
- echo "BRANCH_TAG=$BRANCH" >> build.env - echo "BRANCH_TAG=$BRANCH" >> build.env
artifacts: artifacts:
reports: reports:
......
# Cleanup Images Template # Cleanup Images Template
.cleanup: .cleanup:
script: script:
- NAME="${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}"
- | - |
printf "%s\n" "- Removing Images -" \ printf "%s\n" "- Removing Images -" \
"${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${BRANCH_TAG}" \ "${NAME}:${BRANCH_TAG}" \
"${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA}" "${NAME}:${CI_COMMIT_SHORT_SHA}"
- docker image rm --force "${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${BRANCH_TAG}" "${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA}" - docker image rm --force "${NAME}:${BRANCH_TAG}" "${NAME}:${CI_COMMIT_SHORT_SHA}"
rules: rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-debug/' - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-debug/'
when: never when: never
......
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
.push: .push:
script: script:
- echo "$HARBOR_PASSWORD" | docker login -u "$HARBOR_USER" --password-stdin $REGISTRY_URL - echo "$HARBOR_PASSWORD" | docker login -u "$HARBOR_USER" --password-stdin $REGISTRY_URL
- docker push ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA} - NAME="${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}"
- docker push ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_DEFAULT_BRANCH} - docker push ${NAME}:${CI_COMMIT_SHORT_SHA}
- docker push ${NAME}:${CI_DEFAULT_BRANCH}
rules: rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always when: always
\ No newline at end of file
.unit-test: .unit-test:
script: script:
- docker run --name "${SERVICE_NAME}-${CI_COMMIT_SHORT_SHA}" ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA} ./bin/run-tests.sh -b - IMAGE_NAME="${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}"
- docker cp "${SERVICE_NAME}-${CI_COMMIT_SHORT_SHA}":/code/.coverage ./.coverage.${SERVICE_NAME}.${CI_COMMIT_SHORT_SHA} - TEST_CONTAINER="${SERVICE_NAME}-${CI_COMMIT_SHORT_SHA}"
- docker run --name "${TEST_CONTAINER}" ${IMAGE_NAME}:${CI_COMMIT_SHORT_SHA} ./bin/run-tests.sh -b
- docker cp "${TEST_CONTAINER}":/code/.coverage ./.coverage.${SERVICE_NAME}.${CI_COMMIT_SHORT_SHA}
- docker container stop "${TEST_CONTAINER}" && docker container rm "${TEST_CONTAINER}"
rules: rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always when: always
......
...@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \ ...@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \
&& python setup.py develop && python setup.py develop
# Set Capo # Set Capo
ARG capo_env=dev ARG capo_env=dsoc-dev
ENV CAPO_PROFILE $capo_env ENV CAPO_PROFILE $capo_env
CMD ["pserve", "--reload", "development.ini"] CMD ["pserve", "--reload", "development.ini"]
...@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \ ...@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \
&& python setup.py develop && python setup.py develop
# Set Capo # Set Capo
ARG capo_env=dev ARG capo_env=dsoc-dev
ENV CAPO_PROFILE $capo_env ENV CAPO_PROFILE $capo_env
CMD ["pserve", "--reload", "development.ini"] CMD ["pserve", "--reload", "development.ini"]
...@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \ ...@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \
&& python setup.py develop && python setup.py develop
# Set Capo # Set Capo
ARG capo_env=dev ARG capo_env=dsoc-dev
ENV CAPO_PROFILE $capo_env ENV CAPO_PROFILE $capo_env
CMD ["pserve", "--reload", "development.ini"] CMD ["pserve", "--reload", "development.ini"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment