dayoff/.circleci/config.yml
2020-03-14 20:33:11 +03:00

80 lines
2.2 KiB
YAML

version: 2.1
jobs:
build_server:
docker:
- image: alpine:3.10.3
steps:
- checkout
- run: ./docker/provide-crystal-alpine
- run: shards install
- run: make spec STAGE=prod
- run: make build STAGE=prod
- persist_to_workspace:
root: build
paths: ['*']
build_assets:
docker:
- image: circleci/node:12.13
steps:
- checkout
- run: npm ci
- run: npm run-script build-prod
- run: ls -la ./public/assets
- persist_to_workspace:
root: public/assets
paths: ['*']
build_docker_image:
docker:
- image: docker:19.03
steps:
- attach_workspace:
at: /tmp/data
- run: ls -la /tmp/data
- checkout
- run: mkdir -p ./build/
- run: cp /tmp/data/dayoff ./build/dayoff
- run: mkdir -p ./public/assets/
- run: cp /tmp/data/main.css /tmp/data/main.js ./public/assets/
- setup_remote_docker
- run: echo "$YANDEX_CLOUD_DOCKER_REGISTRY_KEY" | docker login --username json_key --password-stdin cr.yandex
- run: docker build --file ./docker/Dockerfile.prod --tag cr.yandex/crplfk0168i4o8kd7ade/dayoff .
- run: docker push cr.yandex/crplfk0168i4o8kd7ade/dayoff
deploy_app:
docker:
- image: ubuntu:18.04
steps:
- checkout
- add_ssh_keys
- run: apt-get update; apt-get install -yy openssh-client
- run: ssh-keyscan "$TARGET_HOST" >> ~/.ssh/known_hosts
# Prepare sup deploy tool
- run: wget https://github.com/pressly/sup/releases/download/v0.5.3/sup-linux64 -O sup
- run: chmod +x ./sup
# Deploy app
- run: echo "$YANDEX_CLOUD_DOCKER_REGISTRY_KEY" > registry_key.json
- run: ./sup -env REG_AUTH_FILE=registry_key.json -debug production deploy
workflows:
version: 2
test_and_build:
jobs:
# - build_server
# - build_assets
# - build_docker_image:
# requires:
# - build_server
# - build_assets
# filters:
# branches:
# only: master
- deploy_app:
# requires:
# - build_docker_image
filters:
branches:
only: master