Temp branch e2e test

This commit is contained in:
Rajat Soni
2019-09-10 20:52:14 +00:00
parent 440e962ef1
commit 44f199d306
8 changed files with 200 additions and 184 deletions

View File

@@ -7,194 +7,189 @@
# Define stages
stages:
# - BuildAndTest
# - E2E
- BuildAndTest
- E2E
- DeployStaging
- DeployProduction
- SmokeTest
- Rollback
##BACKEND
# lint_n_audit_backend:
# stage: BuildAndTest
# script:
# - cd backend
# - npm install --dev
# - npm run lint
# # - npm run audit
# - cd ..
#BACKEND
lint_n_audit_backend:
stage: BuildAndTest
script:
- cd backend
- npm install --dev
- npm run lint
# - npm run audit
- cd ..
# build_n_test_backend:
# stage: BuildAndTest
# script:
# - sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
# - sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
# - sudo docker run --name mongo -p 27017:27017 -d mongo:3.4
# - sudo docker build -t fyipe-project/backend:3.0.$CI_PIPELINE_IID ./backend
# - sudo docker run --name fyipe --network container:mongo fyipe-project/backend:3.0.$CI_PIPELINE_IID npm test
build_n_test_backend:
stage: BuildAndTest
script:
- sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
- sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
- sudo docker run --name mongo -p 27017:27017 -d mongo:3.4
- sudo docker build -t fyipe-project/backend:3.0.$CI_PIPELINE_IID ./backend
- sudo docker run --name fyipe --network container:mongo fyipe-project/backend:3.0.$CI_PIPELINE_IID npm test
# ##DASHBOARD
# lint_n_audit_dashboard:
# stage: BuildAndTest
# script:
# - cd dashboard
# - npm install --dev
# - npm run lint
# # - npm run audit
# - cd ..
##DASHBOARD
lint_n_audit_dashboard:
stage: BuildAndTest
script:
- cd dashboard
- npm install --dev
- npm run lint
# - npm run audit
- cd ..
# build_n_test_dashboard:
# stage: BuildAndTest
# script:
# - echo "Setup machine for running puppeteer tests"
# - sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
# - sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
# - sudo docker run --name mongo -p 27017:27017 -d mongo:3.4
# - sudo docker build -t fyipe-project/backend:3.0.$CI_PIPELINE_IID ./backend
# - sudo docker run --env-file ./backend/.env.development --net=host -d fyipe-project/backend:3.0.$CI_PIPELINE_IID
# - sudo docker build -t fyipe-project/accounts:3.0.$CI_PIPELINE_IID ./accounts
# - sudo docker run -p 3003:3003 -d fyipe-project/accounts:3.0.$CI_PIPELINE_IID
# - sudo docker build -t fyipe-project/dashboard:3.0.$CI_PIPELINE_IID ./dashboard
# - sudo docker run -p 3000:3000 -d fyipe-project/dashboard:3.0.$CI_PIPELINE_IID
# - sudo docker ps
# - cd dashboard
# - npm install
# - npm run jest
build_n_test_dashboard:
stage: BuildAndTest
script:
- echo "Setup machine for running puppeteer tests"
- sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
- sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
- sudo docker run --name mongo -p 27017:27017 -d mongo:3.4
- sudo docker build -t fyipe-project/backend:3.0.$CI_PIPELINE_IID ./backend
- sudo docker run --env-file ./backend/.env.development --net=host -d fyipe-project/backend:3.0.$CI_PIPELINE_IID
- sudo docker build -t fyipe-project/accounts:3.0.$CI_PIPELINE_IID ./accounts
- sudo docker run -p 3003:3003 -d fyipe-project/accounts:3.0.$CI_PIPELINE_IID
- sudo docker build -t fyipe-project/dashboard:3.0.$CI_PIPELINE_IID ./dashboard
- sudo docker run -p 3000:3000 -d fyipe-project/dashboard:3.0.$CI_PIPELINE_IID
- sudo docker ps
- cd dashboard
- npm install
- npm run jest
# ##ZAPIER
# lint_n_audit_zapier:
# stage: BuildAndTest
# script:
# - cd zapier
# - npm install --dev
# - npm run lint
# - npm run audit
# - cd ..
##ZAPIER
lint_n_audit_zapier:
stage: BuildAndTest
script:
- cd zapier
- npm install --dev
- npm run lint
- npm run audit
- cd ..
# build_n_test_zapier:
# stage: BuildAndTest
# script:
# - echo "No test implemented"
build_n_test_zapier:
stage: BuildAndTest
script:
- echo "No test implemented"
# ## STATUS PAGE
# lint_n_audit_statuspage:
# stage: BuildAndTest
# script:
# - cd status-page
# - npm install --dev
# - npm run lint
# - npm run audit
# - cd ..
## STATUS PAGE
lint_n_audit_statuspage:
stage: BuildAndTest
script:
- cd status-page
- npm install --dev
- npm run lint
- npm run audit
- cd ..
# build_n_test_statuspage:
# stage: BuildAndTest
# script:
# - echo "Setup machine for running puppeteer tests"
# - sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
# - sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
# - sudo docker run --name mongo -p 27017:27017 -d mongo:3.4
# - sudo docker build -t fyipe-project/backend:3.0.$CI_PIPELINE_IID ./backend
# - sudo docker run --net=host -d fyipe-project/backend:3.0.$CI_PIPELINE_IID
# - sudo docker build -t fyipe-project/status-page:3.0.$CI_PIPELINE_IID ./status-page
# - sudo docker run -p 3006:3006 -d fyipe-project/status-page:3.0.$CI_PIPELINE_IID
# - sudo docker ps
# - cd backend
# - npm install
# - cd ..
# - cd status-page
# - npm install
# - curl localhost:3006
# - npm run jest
build_n_test_statuspage:
stage: BuildAndTest
script:
- echo "Setup machine for running puppeteer tests"
- sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
- sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
- sudo docker run --name mongo -p 27017:27017 -d mongo:3.4
- sudo docker build -t fyipe-project/backend:3.0.$CI_PIPELINE_IID ./backend
- sudo docker run --net=host -d fyipe-project/backend:3.0.$CI_PIPELINE_IID
- sudo docker build -t fyipe-project/status-page:3.0.$CI_PIPELINE_IID ./status-page
- sudo docker run -p 3006:3006 -d fyipe-project/status-page:3.0.$CI_PIPELINE_IID
- sudo docker ps
- cd backend
- npm install
- cd ..
- cd status-page
- npm install
- curl localhost:3006
- npm run jest
# ## ACCOUNTS
# lint_n_audit_accounts:
# stage: BuildAndTest
# script:
# - cd accounts
# - npm install --dev
# - npm run lint
# - npm run audit
# - cd ..
## ACCOUNTS
lint_n_audit_accounts:
stage: BuildAndTest
script:
- cd accounts
- npm install --dev
- npm run lint
- npm run audit
- cd ..
# build_n_test_accounts:
# stage: BuildAndTest
# script:
# - echo "Setup machine for running puppeteer tests"
# - sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
# - sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
# - sudo docker run --name mongo -p 27017:27017 -d mongo:3.4
# - sudo docker build -t fyipe-project/backend:3.0.$CI_PIPELINE_IID ./backend
# - sudo docker run --env-file ./backend/.env.development --net=host -d fyipe-project/backend:3.0.$CI_PIPELINE_IID
# - sudo docker build -t fyipe-project/accounts:3.0.$CI_PIPELINE_IID ./accounts
# - sudo docker run -p 3003:3003 -d fyipe-project/accounts:3.0.$CI_PIPELINE_IID
# - sudo docker build -t fyipe-project/dashboard:3.0.$CI_PIPELINE_IID ./dashboard
# - sudo docker run -p 3000:3000 -d fyipe-project/dashboard:3.0.$CI_PIPELINE_IID
# - sudo docker ps
# - cd accounts
# - npm install
# - npm run jest
build_n_test_accounts:
stage: BuildAndTest
script:
- echo "Setup machine for running puppeteer tests"
- sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
- sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
- sudo docker run --name mongo -p 27017:27017 -d mongo:3.4
- sudo docker build -t fyipe-project/backend:3.0.$CI_PIPELINE_IID ./backend
- sudo docker run --env-file ./backend/.env.development --net=host -d fyipe-project/backend:3.0.$CI_PIPELINE_IID
- sudo docker build -t fyipe-project/accounts:3.0.$CI_PIPELINE_IID ./accounts
- sudo docker run -p 3003:3003 -d fyipe-project/accounts:3.0.$CI_PIPELINE_IID
- sudo docker build -t fyipe-project/dashboard:3.0.$CI_PIPELINE_IID ./dashboard
- sudo docker run -p 3000:3000 -d fyipe-project/dashboard:3.0.$CI_PIPELINE_IID
- sudo docker ps
- cd accounts
- npm install
- npm run jest
# ## HOME
# lint_n_audit_home:
# stage: BuildAndTest
# script:
# - cd home
# - npm install --dev
# - npm run lint
# - npm run audit
# - cd ..
## HOME
lint_n_audit_home:
stage: BuildAndTest
script:
- cd home
- npm install --dev
- npm run lint
- npm run audit
- cd ..
# build_n_test_home:
# stage: BuildAndTest
# script:
# - echo "No test implemented"
build_n_test_home:
stage: BuildAndTest
script:
- echo "No test implemented"
# ## PROBE
# lint_n_audit_probe:
# stage: BuildAndTest
# script:
# - cd probe
# - npm install --dev
# - npm run lint
# - npm run audit
# - cd ..
## PROBE
lint_n_audit_probe:
stage: BuildAndTest
script:
- cd probe
- npm install --dev
- npm run lint
- npm run audit
- cd ..
# build_n_test_probe:
# stage: BuildAndTest
# script:
# - echo "No test implemented"
build_n_test_probe:
stage: BuildAndTest
script:
- echo "No test implemented"
# ##E2E Stage.
# e2e_test:
# stage: E2E
# script:
# - chmod +x ./kubernetes/ci/setup-machine.sh
# - ./kubernetes/ci/setup-machine.sh
# - chmod +x ./kubernetes/ci/setup.sh
# - ./kubernetes/ci/setup.sh
# - export ACCOUNTS_URL=`sudo kubectl describe svc accounts | grep Endpoints | cut -d ":" -f 2`
# - export BACKEND_URL=`sudo kubectl describe svc backend | grep Endpoints | cut -d ":" -f 2`
# - export DASHBOARD_URL=`sudo kubectl describe svc dashboard | grep Endpoints | cut -d ":" -f 2`
# - export HOME_URL=`sudo kubectl describe svc home | grep Endpoints | cut -d ":" -f 2`
# - export STATUSPAGE_URL=`sudo kubectl describe svc status-page | grep Endpoints | cut -d ":" -f 2`
# - export APIDOCS_URL=`sudo kubectl describe svc api-docs | grep Endpoints | cut -d ":" -f 2`
# - echo ACCOUNTS_URL=$ACCOUNTS_URL
# - echo BACKEND_URL=$BACKEND_URL
# - echo DASHBOARD_URL=$DASHBOARD_URL
# - echo HOME_URL=$HOME_URL
# - echo STATUSPAGE_URL=$STATUSPAGE_URL
# - chmod +x ./kubernetes/ci/hosts-setup.sh
# - ./kubernetes/ci/hosts-setup.sh
# - cd smoke-test
# - npm i
# - npm run test
##E2E Stage.
e2e_test:
stage: E2E
script:
- chmod +x ./kubernetes/ci/setup-machine.sh
- ./kubernetes/ci/setup-machine.sh
- chmod +x ./kubernetes/ci/setup.sh
- ./kubernetes/ci/setup.sh
- export HOME_URL=http://home.app.local:1444
- export ACCOUNTS_URL=http://accounts.app.local:3003
- export DASHBOARD_URL=http://dashboard.app.local:3000
- export BACKEND_URL=http://backend.app.local:3002
- export STATUSPAGE_URL=http://status-page.app.local:3006
- export APIDOCS_URL=http://api-docs.app.local:1445
- chmod +x ./kubernetes/ci/hosts-setup.sh
- ./kubernetes/ci/hosts-setup.sh
- cd smoke-test
- npm i
- npm run test
# only:
# refs:
# - release
# - master
only:
refs:
- release
- master
# DEPLOYMENT STAGE - BACKEND
deploy_staging_backend:

View File

@@ -9,7 +9,8 @@ var env = {
REACT_APP_FYIPE_HOSTED: process.env.FYIPE_HOSTED,
REACT_APP_HOST: process.env.HOST,
REACT_APP_DASHBOARD_HOST: process.env.DASHBOARD_HOST,
REACT_APP_BACKEND_HOST: process.env.BACKEND_HOST
REACT_APP_BACKEND_HOST: process.env.BACKEND_HOST,
REACT_APP_DOMAIN: process.env.DOMAIN
}
fs.writeFileSync('.env', envfile.stringifySync(env));

View File

@@ -26,7 +26,7 @@ if (!isServer) {
} else if (env('BACKEND_HOST')) {
apiUrl = env('BACKEND_HOST');
dashboardUrl = env('DASHBOARD_HOST');
domain = '.fyipe.com';
domain = env('DOMAIN');
}
}
@@ -198,7 +198,7 @@ export const PricingPlan = {
getPlans() {
if (window.location.href.indexOf('localhost') > -1 || window.location.href.indexOf('staging') > -1 || window.location.href.indexOf('accounts:3003') > -1) {
if (window.location.href.indexOf('localhost') > -1 || window.location.href.indexOf('staging') > -1 || window.location.href.indexOf('app.local') > -1) {
return [
{
category: 'Basic',

View File

@@ -9,7 +9,8 @@ var env = {
REACT_APP_FYIPE_HOSTED: process.env.FYIPE_HOSTED,
REACT_APP_HOST: process.env.HOST,
REACT_APP_ACCOUNTS_HOST: process.env.ACCOUNTS_HOST,
REACT_APP_BACKEND_HOST: process.env.BACKEND_HOST
REACT_APP_BACKEND_HOST: process.env.BACKEND_HOST,
REACT_APP_DOMAIN: process.env.DOMAIN
}
fs.writeFileSync('.env', envfile.stringifySync(env));

View File

@@ -45,7 +45,7 @@ if (!isServer) {
apiUrl = env('BACKEND_HOST');
dashboardUrl = env('HOST');
accountsUrl = env('ACCOUNTS_HOST');
domain = '.fyipe.com';
domain = env('DOMAIN');
}
}
@@ -233,7 +233,7 @@ export const PricingPlan = {
getPlans() {
if (window.location.href.indexOf('localhost') > -1 || window.location.href.indexOf('staging') > -1 || window.location.href.indexOf('dashboard:3003') > -1) {
if (window.location.href.indexOf('localhost') > -1 || window.location.href.indexOf('staging') > -1 || window.location.href.indexOf('app.local') > -1) {
return [
{
category: 'Basic',

View File

@@ -27,11 +27,13 @@ spec:
- name: FYIPE_HOSTED
value: "true"
- name: HOST
value: "http://dashboard:3000"
value: "http://dashboard.app.local:3000"
- name: ACCOUNTS_HOST
value: "http://accounts:3003"
value: "http://accounts.app.local:3003"
- name: BACKEND_HOST
value: "http://backend:3002"
value: "http://backend.app.local:3002"
- name: DOMAIN
value: ".app.local"
ports:
- containerPort: 3000
hostPort: 3000
@@ -82,11 +84,13 @@ spec:
- name: FYIPE_HOSTED
value: "true"
- name: HOST
value: "http://accounts:3003"
value: "http://accounts.app.local:3003"
- name: BACKEND_HOST
value: "http://backend:3002"
value: "http://backend.app.local:3002"
- name: DASHBOARD_HOST
value: "http://dashboard:3000"
value: "http://dashboard.app.local:3000"
- name: DOMAIN
value: ".app.local"
ports:
- containerPort: 3003
hostPort: 3003

View File

@@ -1,12 +1,23 @@
sudo sed -i '/accounts/c\' /etc/hosts
echo $ACCOUNTS_URL' accounts' | sudo tee -a /etc/hosts
ACCOUNTS_IP=`sudo kubectl describe svc accounts | grep Endpoints | cut -d ":" -f 2`
echo $ACCOUNTS_IP' accounts.app.local' | sudo tee -a /etc/hosts
sudo sed -i '/dashboard/c\' /etc/hosts
echo $DASHBOARD_URL' dashboard' | sudo tee -a /etc/hosts
DASHBOARD_IP=`sudo kubectl describe svc dashboard | grep Endpoints | cut -d ":" -f 2`
echo $DASHBOARD_IP' dashboard.app.local' | sudo tee -a /etc/hosts
sudo sed -i '/backend/c\' /etc/hosts
echo $BACKEND_URL' backend' | sudo tee -a /etc/hosts
BACKEND_IP=`sudo kubectl describe svc backend | grep Endpoints | cut -d ":" -f 2`
echo $BACKEND_IP' backend.app.local' | sudo tee -a /etc/hosts
sudo sed -i '/home/c\' /etc/hosts
echo $HOME_URL' home' | sudo tee -a /etc/hosts
HOME_IP=`sudo kubectl describe svc home | grep Endpoints | cut -d ":" -f 2`
echo $HOME_IP' home.app.local' | sudo tee -a /etc/hosts
sudo sed -i '/status-page/c\' /etc/hosts
echo $STATUSPAGE_URL' status-page' | sudo tee -a /etc/hosts
STATUSPAGE_IP=`sudo kubectl describe svc status-page | grep Endpoints | cut -d ":" -f 2`
echo $STATUSPAGE_IP' status-page.app.local' | sudo tee -a /etc/hosts
sudo sed -i '/api-docs/c\' /etc/hosts
echo $APIDOCS_URL' api-docs' | sudo tee -a /etc/hosts
APIDOCS_IP=`sudo kubectl describe svc api-docs | grep Endpoints | cut -d ":" -f 2`
echo $APIDOCS_IP' api-docs.app.local' | sudo tee -a /etc/hosts

View File

@@ -33,6 +33,8 @@ spec:
value: "https://staging-accounts.fyipe.com"
- name: BACKEND_HOST
value: "https://staging-api.fyipe.com"
- name: DOMAIN
value: ".fyipe.com"
ports:
- containerPort: 3000
hostPort: 3000
@@ -88,6 +90,8 @@ spec:
value: "https://staging-dashboard.fyipe.com"
- name: BACKEND_HOST
value: "https://staging-api.fyipe.com"
- name: DOMAIN
value: ".fyipe.com"
ports:
- containerPort: 3003
hostPort: 3003