70 lines
1.6 KiB
YAML
70 lines
1.6 KiB
YAML
image: node:14-alpine
|
|
|
|
stages:
|
|
- build
|
|
- publish
|
|
- deploy
|
|
|
|
variables:
|
|
DOCKER_HOST: tcp://docker:2375
|
|
DOCKER_DRIVER: overlay2
|
|
DOCKER_TLS_CERTDIR: ''
|
|
|
|
# only used for deploy stage
|
|
default:
|
|
before_script:
|
|
- apk update
|
|
- apk add openssh
|
|
- apk add rsync
|
|
- apk add bash
|
|
- apk add yarn
|
|
- apk add docker
|
|
- mkdir /root/.ssh
|
|
- touch /root/.ssh/id_rsa
|
|
- echo -e $SSH_KEY | awk '{gsub("\\\\n","\n")};1' >> /root/.ssh/id_rsa
|
|
- chmod 600 /root/.ssh/id_rsa
|
|
|
|
build:
|
|
stage: build
|
|
before_script: []
|
|
script:
|
|
- echo "Building app"
|
|
- yarn
|
|
- echo "REACT_APP_API_URL=https://oas-api.initdevelopment.com/api/v1" > .env
|
|
- echo "EXTEND_ESLINT=true" >> .env
|
|
- yarn build
|
|
- mv build web-build
|
|
- echo "Build successful"
|
|
artifacts:
|
|
expire_in: 1 hour
|
|
name: web-build
|
|
paths:
|
|
- web-build
|
|
|
|
publish:
|
|
stage: publish
|
|
only:
|
|
- master
|
|
services:
|
|
- docker:18.09.7-dind
|
|
script:
|
|
- echo "Publishing production app (ID $CI_PIPELINE_ID)"
|
|
- cp deployment/Dockerfile web-build
|
|
- cp deployment/nginx.conf web-build
|
|
- cd web-build
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
- docker build -t $CI_REGISTRY/init/oas/image:dev .
|
|
- docker push $CI_REGISTRY/init/oas/image:dev
|
|
- echo "Publishing complete"
|
|
|
|
deploy:
|
|
stage: deploy
|
|
only:
|
|
- master
|
|
script:
|
|
- echo "Deploying (ID $CI_PIPELINE_ID)"
|
|
- ssh -o StrictHostKeyChecking=no ubuntu@213.108.108.105 /home/ubuntu/run-services.sh
|
|
environment:
|
|
name: development
|
|
url: https://oas.initdevelopment.com
|