--- kind: pipeline type: docker name: default steps: - name: shellcheck image: koalaman/shellcheck-alpine commands: - cd scripts - find -name "*.sh" | xargs shellcheck - name: markdownlint image: markdownlint/markdownlint commands: - cd docs - find -name "*.md" | xargs mdl - name: docs image: michaelfbryan/mdbook-docker-image volumes: - name: cache path: /cache commands: - cd docs - mdbook build depends_on: - markdownlint - name: rebuild-cache image: drillster/drone-volume-cache volumes: - name: cache path: /cache settings: rebuild: true mount: - ./docs/book depends_on: - docs volumes: - name: cache host: path: /tmp/cache --- kind: pipeline type: docker name: backend steps: - name: ameba image: veelenga/ameba commands: - cd docker/backend - ameba micrate/src src - name: pgsanity image: boechat107/pgsanity commands: - pgsanity docker/backend/db/**/*.sql - name: deps image: crystallang/crystal:1.3-alpine volumes: - name: lib path: /drone/src/docker/backend/lib - name: cache path: /cache commands: - cd docker/backend - shards install - name: docs image: crystallang/crystal:1.3-alpine volumes: - name: lib path: /drone/src/docker/backend/lib commands: - cd docker/backend - make docs depends_on: - ameba - deps - name: rebuild-cache image: drillster/drone-volume-cache volumes: - name: cache path: /cache settings: rebuild: true mount: - ./docker/backend/docs depends_on: - docs - name: build image: tmaier/docker-compose volumes: - name: dockersock path: /var/run/docker.sock commands: - cp .example.env .env - docker-compose build --build-arg BUILD_ENV=development backend depends_on: - ameba - pgsanity volumes: - name: lib temp: {} - name: cache host: path: /tmp/cache - name: dockersock host: path: /var/run/docker.sock --- kind: pipeline type: docker name: frontend steps: - name: build image: tmaier/docker-compose volumes: - name: dockersock path: /var/run/docker.sock commands: - docker-compose build --build-arg BUILD_ENV=development frontend volumes: - name: dockersock host: path: /var/run/docker.sock --- kind: pipeline type: docker name: deploy steps: - name: restore-cache image: drillster/drone-volume-cache volumes: - name: cache path: /cache settings: restore: true mount: - ./docs/book - ./docker/backend/docs - name: prepare-docs image: alpine volumes: - name: cache path: /cache - name: docs path: /tmp/docs commands: - cp -r ./docs/book/* /tmp/docs - mkdir -p /tmp/docs/_api/backend - cp -r ./docker/backend/docs/* /tmp/docs/_api/backend depends_on: - restore-cache - name: deploy-docs image: appleboy/drone-scp volumes: - name: docs path: /tmp/docs settings: host: from_secret: docs_deploy_ssh_host user: from_secret: docs_deploy_ssh_user password: from_secret: docs_deploy_ssh_password target: /mnt/web/docs source: - /tmp/docs/* rm: true depends_on: - prepare-docs volumes: - name: cache host: path: /tmp/cache - name: docs temp: {} depends_on: - default - backend - frontend trigger: event: - promote target: - production