local PipelineLinting = { kind: "pipeline", name: "linting", platform: { os: "linux", arch: "amd64", }, steps: [ { name: "ansible-later", image: "xoxys/ansible-later:latest", commands: [ "ansible-later", ], }, ], trigger: { ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"], }, }; local PipelineDeployment = { kind: "pipeline", name: "deployment", platform: { os: "linux", arch: "amd64", }, concurrency: { limit: 1 }, workspace: { base: "/drone/src", path: "xoxys.dnsmasq" }, steps: [ { name: "ansible-molecule", image: "xoxys/molecule:latest", environment: { DO_API_KEY: { "from_secret": "do_api_key" }, USER: "root", MOLECULE_CUSTOM_MODULES_REPO: "https://gitea.rknet.org/ansible/custom_modules", MOLECULE_CUSTOM_FILTERS_REPO: "https://gitea.rknet.org/ansible/custom_filters", }, commands: [ "molecule test -s default", ], }, ], depends_on: [ "linting", ], trigger: { ref: ["refs/heads/master", "refs/tags/**"], }, }; local PipelineDocumentation = { kind: "pipeline", name: "documentation", platform: { os: "linux", arch: "amd64", }, steps: [ { name: "ansible-doctor", image: "xoxys/ansible-doctor:latest", environment: { ANSIBLE_DOCTOR_LOG_LEVEL: "INFO", ANSIBLE_DOCTOR_FORCE_OVERWRITE: true, ANSIBLE_DOCTOR_EXCLUDE_FILES: "molecule/", ANSIBLE_DOCTOR_CUSTOM_HEADER: "HEADER.md", }, }, { name: "push-to-repo", image: "plugins/git-action:latest", settings: { actions: ["commit", "push"], author_email: "shipper@rknet.org", author_name: "DroneShipper", branch: "master", message: "[SKIP CI] update readme", remote: "https://gitea.rknet.org/ansible/xoxys.dnsmasq", netrc_machine: "gitea.rknet.org", netrc_username: {"from_secret": "gitea_username"}, netrc_password: {"from_secret": "gitea_token"}, }, when: { ref: ["refs/heads/master"], }, }, ], depends_on: [ "deployment", ], trigger: { ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"], }, }; local PipelineNotification= { kind: "pipeline", name: "notification", platform: { os: "linux", arch: "amd64", }, clone: { disable: true, }, steps: [ { name: "matrix", image: "plugins/matrix", settings: { homeserver: { "from_secret": "matrix_homeserver" }, roomid: { "from_secret": "matrix_roomid" }, template: "Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}", username: { "from_secret": "matrix_username" }, password: { "from_secret": "matrix_password" }, }, }, ], depends_on: [ "documentation", ], trigger: { status: [ "success", "failure" ], ref: ["refs/heads/master", "refs/tags/**"], }, }; [ PipelineLinting, PipelineDeployment, PipelineDocumentation, PipelineNotification, ]