Skip to content
Snippets Groups Projects
Commit 9c83fbeb authored by Fabien Zucchet's avatar Fabien Zucchet
Browse files

add pipeline

parent 745d8539
Branches
No related tags found
No related merge requests found
image: node:15
stages:
- build
- deploy
################################################################################
##### BUILD STAGE #####
################################################################################
build-front:
stage: build
only:
- master
- staging
script:
- cd ./front
- npm install --only=prod
- CI=false npm run build
artifacts:
paths:
- front/node_modules/
- front/build/
################################################################################
##### PREPROD-DEPLOY STAGE #####
################################################################################
back-preprod-deploy:
stage: deploy
only:
- staging
script:
- "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- echo ${PREPROD_SECRETS} > secrets.js
- scp secrets.js root@humaviron.cs-campus.fr:~/leaderboard/back/src/secrets.js
- >
ssh root@humaviron.cs-campus.fr
"cd leaderboard/back &&
git stash &&
git checkout staging &&
git stash &&
git pull &&
npm install --only=prod &&
pm2 delete back-preprod &&
pm2 start src/index.js --name back-preprod &&
exit"
front-preprod-deploy:
stage: deploy
only:
- staging
dependencies:
- build-front
script:
- "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- >
ssh root@humaviron.cs-campus.fr
"sudo rm -rf /var/www/preprod/* &&
exit"
- "scp -r ./front/build/* root@humaviron.cs-campus.fr:/var/www/preprod"
################################################################################
##### PROD-DEPLOY STAGE #####
################################################################################
back-prod-deploy:
stage: deploy
only:
- master
script:
- "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- echo ${PROD_SECRETS} > secrets.js
- scp secrets.js root@humaviron.cs-campus.fr:~/leaderboard/back/src/secrets.js
- >
ssh root@humaviron.cs-campus.fr
"cd leaderboard/back &&
git stash &&
git checkout master &&
git stash &&
git pull &&
npm install --only=prod &&
pm2 delete back-prod &&
PROD=true pm2 start src/index.js --name back-prod &&
exit"
front-prod-deploy:
stage: deploy
only:
- master
dependencies:
- build-front
script:
- "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- >
ssh humaviron.cs-campus.fr@humaviron.cs-campus.fr
"sudo rm -rf /var/www/prod/* &&
exit"
- "scp -r ./front/build/* root@humaviron.cs-campus.fr:/var/www/prod"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment