local Pipeline(isDev) = { kind: "pipeline", name: if isDev then "deploy-dev" else "deploy-prod", # Dev ignores "master", prod only triggers on "master" trigger: { branch: { [if isDev then "exclude" else "include"]: [ "main" ] } }, # We want to clone the submodules, which isn't done by default clone: { disable: true }, steps: [ { name: "clone", image: "plugins/git", recursive: true, }, { name: "markdownlint", image: "06kellyjac/markdownlint-cli", commands: [ "markdownlint --version", "markdownlint content/", ], }, { name: "build", image: "klakegg/hugo", commands: [ "hugo version", # If dev, include drafts and future articles, change base URL "hugo --minify" + if isDev then " -D -F -b https://dev.belanyi.fr" else "", ], [if !isDev then "environment"]: { HUGO_ENV: "production" } }, { name: "deploy", image: "appleboy/drone-scp", settings: { source: "public/*", strip_components: 1, # Remove 'public/' suffix from file paths rm: true, # Remove previous files from target directory host: { from_secret: "ssh_host" }, target: { from_secret: "ssh_target" + if isDev then "_dev" else "" }, username: { from_secret: "ssh_user" }, key: { from_secret: "ssh_key" }, port: { from_secret: "ssh_port" }, }, }, { name: "notify", image: "plugins/matrix", settings: { homeserver: { from_secret: "matrix_homeserver" }, roomid: { from_secret: "matrix_roomid" }, username: { from_secret: "matrix_username" }, password: { from_secret: "matrix_password" }, }, trigger: { status: [ "failure", "success", ] }, }, ] }; [ Pipeline(false), Pipeline(true), ]