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