--- kind: pipeline type: docker name: pull clone: disable: true trigger: event: exclude: [push, pull_request] steps: - name: fedora-hugo pull: always image: immawanderer/fedora-hugo:latest commands: - uname -r - cat /etc/fedora-release - name: alpine-rsync pull: always image: immawanderer/alpine-rsync:latest commands: - uname -r - name: hadolint pull: always image: hadolint/hadolint:2.0.0-alpine commands: - uname -r - hadolint --version --- kind: pipeline type: docker name: build platform: os: linux arch: amd64 trigger: branch: [master, testing] event: pull_request depends_on: - pull steps: - name: hugo-extended pull: if-not-exists image: immawanderer/fedora-hugo:latest commands: - git submodule init - git submodule update - hugo version - hugo --gc=true --minify --- kind: pipeline type: docker name: docker-compose-build platform: os: linux arch: amd64 trigger: branch: master event: pull_request depends_on: - build steps: - name: hadolint image: hadolint/hadolint:latest commands: - hadolint --version - hadolint Dockerfile - name: build pull: always image: tmaier/docker-compose:latest volumes: - name: s path: /var/run/docker.sock environment: COMPOSE_DOCKER_CLI_BUILD: 1 DOCKER_BUILDKIT: 1 commands: - docker-compose build --no-cache --pull volumes: - name: s host: path: /var/run/docker.sock --- kind: pipeline type: docker name: deploy-staging platform: os: linux arch: amd64 trigger: branch: - testing event: exclude: [pull_request, tag] depends_on: - build steps: - name: hugo-extended pull: if-not-exists image: immawanderer/fedora-hugo:latest commands: - git submodule init - git submodule update - hugo version - hugo --gc=true --minify - name: deploy pull: if-not-exists image: immawanderer/alpine-rsync:latest when: status: - success branch: - testing depends_on: - hugo-extended environment: OL: from_secret: hugo_user OL_P: from_secret: hugo_passwd OL_D: from_secret: hugo_dir commands: - echo $OL_P > nupass - export RSYNC_RSH='sshpass -f ./nupass ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' - rsync -av --delete --chown $OL public/ $OL@dotya.ml:$OL_D --- kind: pipeline type: docker name: deploy platform: os: linux arch: amd64 trigger: branch: - master event: exclude: [pull_request, tag] environment: # ref: https://www.docker.com/blog/faster-builds-in-compose-thanks-to-buildkit-support/ COMPOSE_DOCKER_CLI_BUILD: 1 DOCKER_BUILDKIT: 1 node: r: main depends_on: - build steps: - name: hugo-extended pull: if-not-exists image: immawanderer/fedora-hugo:latest commands: - git submodule init - git submodule update - hugo version - hugo --gc=true --minify - name: rm-intermediate pull: if-not-exists image: immawanderer/fedora-hugo:latest depends_on: - hugo-extended commands: - rm -rf ./public - name: build pull: always image: tmaier/docker-compose:latest depends_on: - rm-intermediate volumes: - name: s path: /var/run/docker.sock commands: - docker-compose build --no-cache when: branch: master status: success - name: deploy pull: always image: tmaier/docker-compose:latest depends_on: - build volumes: - name: s path: /var/run/docker.sock commands: - docker-compose up -d --remove-orphans --scale homepage=4 when: branch: master status: success volumes: - name: s host: path: /var/run/docker.sock --- kind: pipeline name: notifications platform: os: linux arch: amd64 clone: disable: true trigger: branch: - master - testing event: - push - tag status: - success - failure depends_on: [deploy, deploy-staging] steps: - name: discord pull: if-not-exists image: appleboy/drone-discord:latest settings: message: > {{#success build.status}} ✅ [Build #{{build.number}}]({{build.link}}) of `{{repo.name}}` has been successfully deployed. event: **`{{build.event}}`** commit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}` {{else}} ❌ [Build #{{build.number}}]({{build.link}}) of `{{repo.name}}` failed to deploy. event: **`${DRONE_BUILD_EVENT}`** failed stage(s): **`${DRONE_FAILED_STAGES}`** commit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}` ```{{commit.message}}``` {{/success}} webhook_id: from_secret: discord_webhook_id webhook_token: from_secret: discord_webhook_token --- kind: pipeline name: notifications-cron platform: os: linux arch: amd64 clone: disable: true trigger: event: cron cron: [hourly, nightly] status: [success, failure] depends_on: [deploy] steps: - name: discord pull: always image: appleboy/drone-discord:latest settings: message: > {{#success build.status}} ✅ [Cron build #{{build.number}}]({{build.link}}) of `{{repo.name}}` has been successfully deployed. event: **`{{build.event}}`** commit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}` {{else}} ❌ [Cron build #{{build.number}}]({{build.link}}) of `{{repo.name}}` failed to deploy. event: **`${DRONE_BUILD_EVENT}`** failed stage(s): **`${DRONE_FAILED_STAGES}`** commit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}` ```{{commit.message}}``` {{/success}} webhook_id: from_secret: discord_webhook_hourly_id webhook_token: from_secret: discord_webhook_hourly_token