Skip to content
Snippets Groups Projects
Commit fe454d6b authored by Thomas Bouquet's avatar Thomas Bouquet
Browse files
parents dc701931 67501665
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 root@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