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: docker build --file ./docker/Dockerfile.prod --tag anwinged/dayoff . - run: echo "$YANDEX_CLOUD_DOCKER_REGISTRY_KEY" | docker login --username json_key --password-stdin cr.yandex - run: docker push cr.yandex/crplfk0168i4o8kd7ade anwinged/dayoff # deploy_app: # docker: # - image: alpine:3.10.3 # steps: # - checkout # - add_ssh_keys # - run: apk add -u openssh-client # - run: ssh-keyscan vakhrushev.me >> ~/.ssh/known_hosts # - run: cat docker/deploy-prod | ssh dayoff@vakhrushev.me 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