Modify gitlab.yml

This commit is contained in:
Nawaz Dhandala
2019-08-02 21:23:37 +05:30
parent e410883bd0
commit 94b9bc0e4f
3 changed files with 3974 additions and 48 deletions

27
.gitignore vendored Normal file
View File

@@ -0,0 +1,27 @@
node_modules
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
.vscode/
.idea
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
yarn.lock
Untitled-1

View File

@@ -3,35 +3,38 @@
# This CI/CD will run on an Ubuntu VM. After this script runs, the VM will retain the state.
# It's your responsibility to clean the VM up in the cleanup stage after job finishes executing.
# This script runs on Microk8s. since our deployments are on Kubernetes, our aim is to create EXACT same replica for test, staging and production.
# Define stages
#Define stages
stages:
- build_n_test
- e2e_test
- deploy_staging
- deploy_production
build_n_test:
lint_n_audit_backend:
stage: build_n_test
script:
- cd backend
- eslint
- # npm run audit
build_n_test_backend:
stage: build_n_test
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
- cd backend
- sudo docker build -t fyipe-project/backend:1.0.$CI_PIPELINE_IID .
- sudo docker run --name fyipe --network container:mongo fyipe-project/backend:1.0.$CI_PIPELINE_IID npm test
- cd ..
- 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
e2e_test:
stage: e2e_test
script:
- cd kubernetes
- chmod +x ./ci/setup-machine.sh
- ./ci/setup-machine.sh
- chmod +x ./ci/setup.sh
- ./ci/setup.sh
- chmod +x ./kubernetes/ci/setup-machine.sh
- ./kubernetes/ci/setup-machine.sh
- chmod +x ./kubernetes/ci/setup.sh
- ./kubernetes/ci/setup.sh
- BACKEND_CONTAINER_NAME=`sudo kubectl get pods -l app=backend -o custom-columns=:metadata.name`
- sudo kubectl get pod BACKEND_CONTAINER_NAME=
only:
refs:
- release
@@ -40,25 +43,20 @@ e2e_test:
deploy_staging:
stage: deploy_staging
script:
- cd kubernetes
- chmod +x ./ci/deployment-setup.sh
- ./ci/deployment-setup.sh
- chmod +x ./ci/deployment-staging-setup.sh
- ./ci/deployment-staging-setup.sh
- cd ..
- git clone https://$GIT_USERNAME:$GIT_PASSWORD@gitlab.com/fyipe-project/backend.git
- cd backend
- git checkout master
- sudo docker build -t fyipe-project/backend:master .
- sudo docker tag fyipe-project/backend:master registry.gitlab.com/fyipe-project/backend:2.0.$CI_PIPELINE_IID
- chmod +x ./kubernetes/ci/deployment-setup.sh
- ./kubernetes/ci/deployment-setup.sh
- chmod +x ./kubernetes/ci/deployment-staging-setup.sh
- ./kubernetes/ci/deployment-staging-setup.sh
# Build and deploy backend.
- sudo docker build -t fyipe-project/backend:master ./backend
- sudo docker tag fyipe-project/backend:master registry.gitlab.com/fyipe-project/backend:3.0.$CI_PIPELINE_IID
- sudo docker tag fyipe-project/backend:master registry.gitlab.com/fyipe-project/backend:master
- sudo docker push registry.gitlab.com/fyipe-project/backend:2.0.$CI_PIPELINE_IID
- sudo docker push registry.gitlab.com/fyipe-project/backend:3.0.$CI_PIPELINE_IID
- sudo docker push registry.gitlab.com/fyipe-project/backend:master
- sudo $HOME/google-cloud-sdk/bin/kubectl set image deployment/backend backend=registry.gitlab.com/fyipe-project/backend:2.0.$CI_PIPELINE_IID
- cd ..
- cd kubernetes
- chmod +x ./ci/deployment-cleanup.sh
- ./ci/deployment-cleanup.sh
- sudo $HOME/google-cloud-sdk/bin/kubectl set image deployment/backend backend=registry.gitlab.com/fyipe-project/backend:3.0.$CI_PIPELINE_IID
# Cleanup
- chmod +x ./kubernetes/ci/deployment-cleanup.sh
- ./kubernetes/ci/deployment-cleanup.sh
only:
refs:
- master
@@ -68,27 +66,19 @@ deploy_staging:
deploy_production:
stage: deploy_production
script:
- sudo rm -r *
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/fyipe-project/kubernetes
- cd kubernetes
- chmod +x ./ci/deployment-setup.sh
- ./ci/deployment-setup.sh
- chmod +x ./ci/deployment-production-setup.sh
- ./ci/deployment-production-setup.sh
- cd ..
- git clone https://$GIT_USERNAME:$GIT_PASSWORD@gitlab.com/fyipe-project/backend.git
- cd backend
- git checkout release
- sudo docker build -t fyipe-project/backend:latest .
- sudo docker tag fyipe-project/backend:latest registry.gitlab.com/fyipe-project/backend:1.0.$CI_PIPELINE_IID
- chmod +x ./kubernetes/ci/deployment-setup.sh
- ./kubernetes/ci/deployment-setup.sh
- chmod +x ./kubernetes/ci/deployment-production-setup.sh
- ./kubernetes/ci/deployment-production-setup.sh
- sudo docker build -t fyipe-project/backend:latest ./backend
- sudo docker tag fyipe-project/backend:latest registry.gitlab.com/fyipe-project/backend:3.0.$CI_PIPELINE_IID
- sudo docker tag fyipe-project/backend:latest registry.gitlab.com/fyipe-project/backend:latest
- sudo docker push registry.gitlab.com/fyipe-project/backend:1.0.$CI_PIPELINE_IID
- sudo docker push registry.gitlab.com/fyipe-project/backend:3.0.$CI_PIPELINE_IID
- sudo docker push registry.gitlab.com/fyipe-project/backend:latest
- sudo $HOME/google-cloud-sdk/bin/kubectl set image deployment/backend backend=registry.gitlab.com/fyipe-project/backend:1.0.$CI_PIPELINE_IID
- cd ..
- cd kubernetes
- chmod +x ./ci/deployment-cleanup.sh
- ./ci/deployment-cleanup.sh
- sudo $HOME/google-cloud-sdk/bin/kubectl set image deployment/backend backend=registry.gitlab.com/fyipe-project/backend:3.0.$CI_PIPELINE_IID
# Cleanup
- chmod +x ./kubernetes/ci/deployment-cleanup.sh
- ./kubernetes/ci/deployment-cleanup.sh
only:
refs:
- release

3909
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff