Skip to content

Instantly share code, notes, and snippets.

@khayyamsaleem
Created October 25, 2019 16:53
Show Gist options
  • Save khayyamsaleem/6f447aa20b7ee01bcc192e82871dd6f5 to your computer and use it in GitHub Desktop.
Save khayyamsaleem/6f447aa20b7ee01bcc192e82871dd6f5 to your computer and use it in GitHub Desktop.
stages:
- build
- push
- deploy
Get Prod Environment Variables:
stage: build
image: lyasper/s3cmd
only:
- master
artifacts:
untracked: true
paths:
- .env.api.prod
expire_in: 1 day
script:
- s3cmd --access_key="${S3_ACCESS_KEY}" --secret_key="${S3_SECRET_KEY}" --host="${S3_HOST}" --host-bucket="${S3_HOST_BUCKET}" sync s3://lss-assets/secrets/.env.api.prod ./.env.api.prod
Build Client:
stage: build
image: node:alpine
only:
- master
cache:
paths:
- frontend/node_modules/
- .npm_cache
artifacts:
untracked: true
paths:
- frontend/dist
expire_in: 1 day
before_script:
- npm config set cache .npm_cache
- cd frontend
- npm i
script:
- npm run build
Push New Image:
image: docker:stable
dependencies:
- Build Client
- Get Prod Environment Variables
services:
- docker:dind
stage: push
only:
- master
before_script:
- cp ./.env.api.prod ./.env
- echo -n $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY
- mv .env.api.prod ./.env
script:
- docker build -t ${CI_REGISTRY}/life-skills-software/lss-portal .
- docker push ${CI_REGISTRY}/life-skills-software/lss-portal
Refresh Container:
dependencies:
- Push New Image
stage: deploy
only:
- master
before_script:
- "which ssh-agent || (apk update && apk add openssh-client)"
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan lifeskillssoftware.tech >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
script:
- ssh [email protected] 'docker-compose -f ~/deploys/portal/docker-compose.portal.yml rm -f'
- scp docker-compose.prod.yml [email protected]:~/deploys/portal/docker-compose.portal.yml
- ssh [email protected] 'docker-compose -f ~/deploys/portal/docker-compose.portal.yml pull'
- ssh [email protected] 'docker-compose -f ~/deploys/portal/docker-compose.portal.yml up --build -d'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment