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:
- '/ci/build.template.yml'
- '/ci/push.template.yml'
- '/ci/cleanup.template.yml'
# - '/ci/unit-test.template.yml'
- '/ci/unit-test.template.yml'
# Build Base Image
build base image:
......@@ -80,32 +80,31 @@ build dev workflow:
stage: build-dev
variables:
SERVICE_NAME: "workflow"
PATH_PREFIX: "services/"
extends: .build
build dev capability:
stage: build-dev
variables:
SERVICE_NAME: "capability"
PATH_PREFIX: "services/"
extends: .build
build dev notification:
stage: build-dev
variables:
SERVICE_NAME: "notification"
PATH_PREFIX: "services/"
extends: .build
build dev web:
stage: build-dev
variables:
SERVICE_NAME: "web"
PATH_PREFIX: "apps/"
extends: .build
## 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 test dev workflow:
......@@ -192,6 +191,15 @@ push dev notification:
needs:
- 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
clean build workflow:
stage: .post
......@@ -214,6 +222,13 @@ clean build notification:
extends: .cleanup
allow_failure: true
clean build web:
stage: .post
variables:
SERVICE_NAME: "web"
extends: .cleanup
allow_failure: true
# Deploy Stages
# Disabled until GL Pages are set up
.pages:
......
......@@ -44,6 +44,7 @@ docker-dev-images-locally:
# Build base image
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:nodejs-14 -f apps/web/Dockerfile.base .
# Build DB image
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
COPY package-lock.json .
COPY package.json .
COPY /apps/web/package-lock.json .
COPY /apps/web/package.json .
RUN apk update && apk add --virtual build-dependencies \
git \
python2 \
g++ \
make \
&& rm -rf /var/cache/apk/* \
&& npm install --production=false \
ENV NG_CLI_ANALYTICS=false
RUN npm install \
&& apk del build-dependencies
# COPY . .
COPY ./apps/web ./
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
WORKDIR /code/
......@@ -6,12 +6,8 @@ WORKDIR /code/
# copy web app from host to container
COPY ./apps/web ./
# install dependencies
RUN apk add --no-cache \
git \
python2 \
g++ \
make
# Disable Angular Analytics prompt
ENV NG_CLI_ANALYTICS=false
# install node_modules
RUN npm install
......
......@@ -3,13 +3,9 @@
script:
- '[ -z "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ] && BRANCH=$CI_COMMIT_BRANCH || BRANCH=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME'
- echo "Building branch -- ${BRANCH}"
- |
if [ $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ] ; then \
docker build -t ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_BRANCH} -f services/${SERVICE_NAME}/Dockerfile.dev . ; \
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}
- NAME="${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}"
- docker build -t ${NAME}:${CI_COMMIT_SHORT_SHA} -f ${PATH_PREFIX}${SERVICE_NAME}/Dockerfile.dev .
- docker tag ${NAME}:${CI_COMMIT_SHORT_SHA} ${NAME}:${BRANCH}
- echo "BRANCH_TAG=$BRANCH" >> build.env
artifacts:
reports:
......
# Cleanup Images Template
.cleanup:
script:
- NAME="${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}"
- |
printf "%s\n" "- Removing Images -" \
"${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${BRANCH_TAG}" \
"${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_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}"
"${NAME}:${BRANCH_TAG}" \
"${NAME}:${CI_COMMIT_SHORT_SHA}"
- docker image rm --force "${NAME}:${BRANCH_TAG}" "${NAME}:${CI_COMMIT_SHORT_SHA}"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-debug/'
when: never
......
......@@ -2,8 +2,9 @@
.push:
script:
- echo "$HARBOR_PASSWORD" | docker login -u "$HARBOR_USER" --password-stdin $REGISTRY_URL
- docker push ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA}
- docker push ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_DEFAULT_BRANCH}
- NAME="${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}"
- docker push ${NAME}:${CI_COMMIT_SHORT_SHA}
- docker push ${NAME}:${CI_DEFAULT_BRANCH}
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
\ No newline at end of file
.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}
- IMAGE_NAME="${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}"
- 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:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
......
......@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \
&& python setup.py develop
# Set Capo
ARG capo_env=dev
ARG capo_env=dsoc-dev
ENV CAPO_PROFILE $capo_env
CMD ["pserve", "--reload", "development.ini"]
......@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \
&& python setup.py develop
# Set Capo
ARG capo_env=dev
ARG capo_env=dsoc-dev
ENV CAPO_PROFILE $capo_env
CMD ["pserve", "--reload", "development.ini"]
......@@ -18,7 +18,7 @@ RUN pip install -r requirements.txt \
&& python setup.py develop
# Set Capo
ARG capo_env=dev
ARG capo_env=dsoc-dev
ENV CAPO_PROFILE $capo_env
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