local AnsibleVersions(version="latest", package="ansible") = { name: "ansible-" + version, image: "python:3.7", pull: "always", environment: { PY_COLORS: 1 }, commands: [ "pip install " + package + " ansible-later~=0.2.0 -qq", "git clone https://gitea.rknet.org/ansible/ansible-later-policy.git ~/policy", "ansible-later -c ~/policy/config.yml" ], depends_on: [ "clone", ], }; local PipelineLinting = { kind: "pipeline", name: "linting", platform: { os: "linux", arch: "amd64", }, steps: [ AnsibleVersions(version="latest", package="ansible"), AnsibleVersions(version="master", package="git+https://github.com/ansible/ansible.git@devel"), ], trigger: { ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"], }, }; local PipelineDeployment = { kind: "pipeline", name: "deployment", platform: { os: "linux", arch: "amd64", }, workspace: { base: "/drone/src", path: "xoxys.homeassistant", }, concurrency: { limit: 1, }, steps: [ { name: "molecule", image: "xoxys/molecule:do-linux-amd64", pull: "always", 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", PY_COLORS: 1 }, commands: [ "/bin/bash /docker-entrypoint.sh", "molecule test -s default", ], }, ], depends_on: [ "linting", ], trigger: { ref: ["refs/heads/master", "refs/tags/**"], }, }; local PipelineNotifications = { kind: "pipeline", name: "notifications", platform: { os: "linux", arch: "amd64", }, clone: { disable: true, }, steps: [ { name: "matrix", image: "plugins/matrix", settings: { homeserver: "https://matrix.rknet.org", roomid: "MtidqQXWWAtQcByBhH:rknet.org", 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: [ "deployment", ], trigger: { status: [ "success", "failure" ], ref: ["refs/heads/master", "refs/tags/**"], }, }; [ PipelineLinting, PipelineDeployment, PipelineNotifications, ]