variables: - &all_events ["push", "cron", "deployment", "manual"] labels: backend: local matrix: include: - TYPE: prod MAKE_TARGET: build-prod SSH_TARGET: ssh_target - TYPE: dev MAKE_TARGET: build-dev SSH_TARGET: ssh_target_dev # Run the correct matrix build on the correct branch when: evaluate: | CI_PIPELINE_EVENT in ["push", "cron", "deployment", "manual"] and (("${TYPE}" != "prod")) pipeline: - name: check image: bash commands: - nix shell pkgs#coreutils --command env - nix flake check when: event: *all_events - name: build (${TYPE}) image: bash commands: # If dev, include drafts and future articles, change base URL - nix develop -c make ${MAKE_TARGET} when: event: *all_events - name: deploy (${TYPE}) image: bash environment: # Trailing slash to synchronize the folder's *content* to the target - SYNC_SOURCE=public/ secrets: - source: ssh_key target: sync_key - source: ssh_port target: sync_port - source: ${SSH_TARGET} target: sync_target - source: ssh_user target: sync_username - source: ssh_host target: sync_host commands: - "nix run github:ambroisie/nix-config#drone-rsync" when: event: *all_events - name: notify image: bash secrets: - source: matrix_homeserver target: address - source: matrix_password target: pass - source: matrix_roomid target: room - source: matrix_username target: user commands: - nix run github:ambroisie/matrix-notifier when: event: *all_events status: - failure - success