Merge branch 'rrt/testing' into rrt/staging

This commit is contained in:
Aaron Louie 2020-06-17 11:13:50 -04:00
commit beeb968c76
7 changed files with 71 additions and 86 deletions

View File

@ -7,9 +7,6 @@ language: node_js
node_js:
- 12
python:
- "3.7"
services:
- docker
- xvfb
@ -33,6 +30,7 @@ env:
global:
- API_URL=http://localhost:5000/v1.0
- BASE_HREF=/
- DEPLOY_URL=/
- HOME_ROUTE=home
- IRB_URL=http://localhost:5001/
- PORT0=4200
@ -42,7 +40,7 @@ script:
deploy:
provider: script
script: bash ./deploy.sh
script: bash ./deploy.sh sartography/cr-connect-bpmn
on:
all_branches: true
condition: $TRAVIS_BRANCH =~ ^(dev|testing|demo|training|staging|master|rrt\/.*)$

View File

@ -1,13 +1,7 @@
### STAGE 1: Build ###
FROM node AS builder
FROM sartography/cr-connect-angular-base AS builder
RUN mkdir /crc-bpmn
WORKDIR /crc-bpmn
ADD package.json /crc-bpmn/
ADD package-lock.json /crc-bpmn/
COPY . /crc-bpmn/
COPY . /app/
ARG build_config=prod
RUN npm install && \
@ -17,8 +11,8 @@ RUN npm install && \
FROM nginx:alpine
RUN set -x && apk add --update --no-cache bash libintl gettext curl
COPY --from=builder /crc-bpmn/dist/* /etc/nginx/html/
COPY --from=builder /crc-bpmn/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/dist/* /etc/nginx/html/
COPY --from=builder /app/nginx.conf /etc/nginx/conf.d/default.conf
# Script for substituting environment variables
COPY ./docker/substitute-env-variables.sh ./entrypoint.sh

View File

@ -1,48 +1,45 @@
#!/bin/bash
# Install AWS CLI
pip install --user awscli;
export PATH=$PATH:$HOME/.local/bin;
#########################################################################
# Builds the Docker image for the current git branch on Travis CI and
# publishes it to Docker Hub.
#
# Parameters:
# $1: Docker Hub repository to publish to
#
# Required environment variables (place in Settings menu on Travis CI):
# $DOCKER_USERNAME: Docker Hub username
# $DOCKER_TOKEN: Docker Hub access token
#########################################################################
echo 'Building Docker image...'
DOCKER_REPO="$1"
function branch_to_tag () {
if [ "$1" == "latest" ]; then echo "production"; else echo "$1" ; fi
if [ "$1" == "master" ]; then echo "latest"; else echo "$1" ; fi
}
function branch_to_deploy_group() {
if [[ $1 =~ ^(rrt\/.*)$ ]]; then echo "rrt"; else echo "crconnect" ; fi
}
function branch_to_deploy_stage () {
if [ "$1" == "master" ]; then echo "production"; else echo "$1" ; fi
}
DOCKER_TAG=$(branch_to_tag "$TRAVIS_BRANCH")
REPO="sartography/cr-connect-bpmn"
TAG=$(branch_to_tag "$TRAVIS_BRANCH")
DEPLOY_APP="bpmn"
DEPLOY_GROUP=$(branch_to_deploy_group "$TRAVIS_BRANCH")
DEPLOY_STAGE=$(branch_to_deploy_stage "$TRAVIS_BRANCH")
if [ "$DEPLOY_GROUP" == "rrt" ]; then
IFS='/' read -ra ARR <<< "$TRAVIS_BRANCH" # Split branch on '/' character
TAG=$(branch_to_tag "rrt_${ARR[1]}")
DEPLOY_STAGE=$(branch_to_deploy_stage "${ARR[1]}")
DOCKER_TAG=$(branch_to_tag "rrt_${ARR[1]}")
fi
DEPLOY_PATH="$DEPLOY_GROUP/$DEPLOY_STAGE/$DEPLOY_APP"
echo "REPO = $REPO"
echo "TAG = $TAG"
echo "DEPLOY_PATH = $DEPLOY_PATH"
echo "DOCKER_REPO = $DOCKER_REPO"
echo "DOCKER_TAG = $DOCKER_TAG"
# Build and push Docker image to Docker Hub
echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USERNAME" --password-stdin || exit 1
docker build -f Dockerfile -t "$REPO:$TAG" . || exit 1
docker push "$REPO" || exit 1
docker build -f Dockerfile -t "$DOCKER_REPO:$DOCKER_TAG" . || exit 1
# Wait for Docker Hub
# Push Docker image to Docker Hub
echo "Publishing to Docker Hub..."
sleep 30
# Notify UVA DCOS that Docker image has been updated
echo "Refreshing DC/OS..."
aws sqs send-message --region "$AWS_DEFAULT_REGION" --queue-url "$AWS_SQS_URL" --message-body "$DEPLOY_PATH" || exit 1
docker push "$DOCKER_REPO" || exit 1
echo "Done."

View File

@ -1,11 +1,5 @@
version: "3.3"
services:
ldap:
container_name: ldap
image: tuxmonteiro/ldap-mock
ports:
- "3890:3890"
db:
container_name: db
image: sartography/cr-connect-db:$E2E_TAG
@ -17,33 +11,10 @@ services:
- POSTGRES_MULTIPLE_DATABASES=crc_test,pb_test
healthcheck:
test: ["CMD", "pg_isready"]
timeout: 20s
interval: 10s
timeout: 5s
retries: 10
backend:
container_name: backend
depends_on:
- db
image: sartography/cr-connect-workflow:$E2E_TAG
environment:
- APPLICATION_ROOT=/
- CORS_ALLOW_ORIGINS=localhost:5002,bpmn:5002,localhost:4200,frontend:4200
- DB_HOST=db
- DB_NAME=crc_test
- DB_PASSWORD=crc_pass
- DB_PORT=5432
- DB_USER=crc_user
- LDAP_URL=ldap
- PB_ENABLED=true
- PB_BASE_URL=http://pb:5001/v2.0/
- PORT0=5000
- RESET_DB=true
- UPGRADE_DB=true
- TESTING=true
ports:
- "5000:5000"
command: ./wait-for-it.sh db:5432 -t 0 -- ./docker_run.sh
pb:
container_name: pb
depends_on:
@ -63,6 +34,34 @@ services:
- "5001:5001"
command: ./wait-for-it.sh db:5432 -t 0 -- ./docker_run.sh
backend:
container_name: backend
depends_on:
- db
- pb
image: sartography/cr-connect-workflow:$E2E_TAG
environment:
- APPLICATION_ROOT=/
- CORS_ALLOW_ORIGINS=localhost:5002,bpmn:5002,localhost:4200,frontend:4200
- DB_HOST=db
- DB_NAME=crc_test
- DB_PASSWORD=crc_pass
- DB_PORT=5432
- DB_USER=crc_user
- DEVELOPMENT=true
- LDAP_URL=mock
- PB_BASE_URL=http://pb:5001/v2.0/
- PB_ENABLED=true
- PORT0=5000
- PRODUCTION=false
- RESET_DB=true
- TESTING=false
- UPGRADE_DB=true
ports:
- "5000:5000"
command: ./wait-for-it.sh pb:5001 -t 0 -- ./docker_run.sh
# bpmn:
# container_name: bpmn
# depends_on:

View File

@ -4,7 +4,7 @@
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
allScriptsTimeout: 60000,
specs: [
'./src/**/*.e2e-spec.ts'
],
@ -21,7 +21,7 @@ exports.config = {
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
defaultTimeoutInterval: 60000,
print: function() {}
},
onPrepare() {

View File

@ -7,13 +7,10 @@ describe('workspace-project App', () => {
page = new AppPage();
});
it('should display fake sign-in screen', () => {
it('should display home screen', () => {
page.navigateTo();
expect(page.getText('h1')).toEqual('FAKE UVA NETBADGE SIGN IN (FOR TESTING ONLY)');
});
it('should click sign-in and navigate to home screen', () => {
page.clickAndExpectRoute('#sign_in', '/home');
expect(page.getText('h1')).toEqual('Workflow Specifications');
expect(page.getRoute()).toEqual('/home');
expect(page.getElements('app-workflow-spec-list').count()).toBeGreaterThan(0);
expect(page.getElements('app-file-list').count()).toBeGreaterThan(0);
});

View File

@ -12,13 +12,13 @@
"test:coverage": "ng test --codeCoverage=true --watch=false --browsers=ChromeHeadless",
"lint": "ng lint",
"e2e": "./node_modules/protractor/bin/webdriver-manager update && ng e2e",
"e2e:with-wf": "npm run e2e-wf && ng e2e && npm run e2e-wf:stop",
"e2e-wf:stop": "cd docker && docker-compose down && cd ..",
"e2e-wf:build": "cd docker && docker-compose pull && docker-compose build && cd ..",
"e2e-wf:start": "cd docker && docker-compose up -d --force-recreate && cd ..",
"e2e-wf": "npm run e2e-wf:stop && npm run e2e-wf:build && npm run e2e-wf:start",
"e2e:with-backend": "npm run backend && ng e2e && npm run backend:stop",
"backend:stop": "cd docker && docker-compose down && cd ..",
"backend:build": "cd docker && docker-compose pull && docker-compose build && cd ..",
"backend:start": "cd docker && docker-compose up -d --force-recreate && cd ..",
"backend": "npm run backend:stop && npm run backend:build && npm run backend:start",
"env": "chmod +x ./docker/substitute-env-variables.sh && ./docker/substitute-env-variables.sh src/index.html PRODUCTION,API_URL,IRB_URL,HOME_ROUTE,BASE_HREF,DEPLOY_URL,PORT0,GOOGLE_ANALYTICS_KEY,SENTRY_KEY,TITLE",
"ci": "npm run lint && npm run test:coverage && sonar-scanner"
"ci": "npm run lint && npm run test:coverage && sonar-scanner && npm run env && npm run backend && npm run e2e"
},
"private": true,
"dependencies": {