# DEPLOY kind: pipeline name: deploy trigger: status: - success event: - push steps: # # Restore cache (node_modules, build, etc) # - name: cache-restore image: meltwater/drone-cache:dev pull: true volumes: - name: cache path: /tmp/cache settings: backend: "filesystem" restore: true cache_key: "volume" archive_format: "gzip" mount: - "node_modules" # # Build Node.js app # - name: build-node image: node:latest commands: - npm install -s - npm run build # # Build the Docker image # # DEV - name: build-docker-dev image: docker:latest volumes: - name: docker_sock path: /var/run/docker.sock commands: - docker build --pull --no-cache -t cetrucflotte/housesof:dev . when: branch: - dev # PROD - name: build-docker-prod image: docker:latest volumes: - name: docker_sock path: /var/run/docker.sock commands: - docker build --pull --no-cache -t cetrucflotte/housesof:latest . when: branch: - master # # Restart container # # DEV - name: restart-container-dev image: appleboy/drone-ssh settings: host: flayks.com username: from_secret: ssh_user key: from_secret: ssh_key script: - cd /data/sites/housesof.world/test - docker-compose down - docker-compose up -d --remove-orphans when: branch: - dev # PROD - name: restart-container-prod image: appleboy/drone-ssh settings: host: flayks.com username: from_secret: ssh_user key: from_secret: ssh_key script: - cd /data/sites/housesof.world/www - docker-compose down - docker-compose up -d --remove-orphans when: branch: - master # # Purge CDN # # DEV - name: cdn-purge-dev image: plugins/webhook settings: urls: from_secret: cdn_purgeurl_dev headers: from_secret: cdn_accesskey method: POST failure: ignore when: branch: - dev # PROD - name: cdn-purge-prod image: plugins/webhook settings: urls: from_secret: cdn_purgeurl_prod headers: from_secret: cdn_accesskey method: POST failure: ignore when: branch: - master # # Rebuild cache # - name: cache-rebuild image: meltwater/drone-cache:dev pull: true volumes: - name: cache path: /tmp/cache settings: backend: "filesystem" rebuild: true cache_key: "volume" archive_format: "gzip" mount: - "node_modules" # # Notify (by Email) # - name: notify-email image: drillster/drone-email settings: skip_verify: true host: mail.flayks.com username: admin@flayks.com password: from_secret: notify_email_password from: admin@flayks.com recipients: - admin@flayks.com recipients_only: true # Mount cache volume volumes: - name: cache host: path: /var/lib/cache - name: docker_sock host: path: /var/run/docker.sock