# define the stages in this pipeline stages: - build - deploy # define the build stage build_stage: stage: build # use node docker image as enviroment image: node:latest script: # install & build the NuxtJS application - apt update #- apt-get install -y --no-install-recommends python3 build-essential - npm install - npm run build # define artifacts which are shared between stages artifacts: paths: - .output/ - .nuxt/ # restrict to specific branch # only: # - master # define the deploy stage deploy_staging: stage: deploy environment: name: staging url: https://next.rockfic.com image: ubuntu:latest # - apt-get update && apt-get install --yes --no-install-recommends rsync git openssh-client curl sshpass # - eval $(ssh-agent -s) # - chmod 600 ${SSH_DEPLOY_KEY} # - ssh-add ${SSH_DEPLOY_KEY} # - mkdir -p ~/.ssh # - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' before_script: - ". ${CI_PROJECT_DIR}/.more-ci/deploy-pre.sh ${SSH_DEPLOY_KEY}" script: # - "cat ${ENV_FILE} | ssh rockfic@${DEPLOY_SERVER} 'cat > ~/rockfic-staging/.env'" - rsync --archive --del ${CI_PROJECT_DIR}/ rockfic@${DEPLOY_SERVER}:~/rockfic-staging/ - scp ${ENV_FILE} rockfic@${DEPLOY_SERVER}:rockfic-staging/.env #- rsync --archive --delete ${CI_PROJECT_DIR}/cnf/ ${DEPLOY_USER}@${DEPLOY_SERVER}:~/cnf/ # restart Node.js and reload nginx configuration - sshpass -p "${OLDROOTPWD}" ssh root@rockfic.com '~/cp.sh' - ssh rockfic@${DEPLOY_SERVER} "~/stage.sh" ${DB_NAME} - ssh rockfic@${DEPLOY_SERVER} node "~/rockfic-staging/.output/server/index.mjs" \&\>/dev/null \& disown \%1 - ssh rockfic@${DEPLOY_SERVER} sudo systemctl reload apache2 except: - tags deploy_production: stage: deploy environment: name: production url: https://www.rockfic.com image: ubuntu:latest before_script: - ". ${CI_PROJECT_DIR}/.more-ci/deploy-pre.sh ${SSH_DEPLOY_KEY}" script: - rsync --archive --del ${CI_PROJECT_DIR}/ root@${DEPLOY_SERVER}:/home/@rockfic/ - scp ${ENV_FILE} root@${DEPLOY_SERVER}:/home/@rockfic/.env #- rsync --archive --delete ${CI_PROJECT_DIR}/cnf/ ${DEPLOY_USER}@${DEPLOY_SERVER}:~/cnf/ - ssh root@${DEPLOY_SERVER} node "/home/@rockfic/.output/server/index.mjs" \&\>/dev/null \& disown \%1 - ssh root@${DEPLOY_SERVER} sudo systemctl reload apache2 only: - tags # restrict to specific branch