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" }, steps: [ { name: "molecule", image: "xoxys/molecule:ec2-linux-amd64", pull: "always", environment: { ANSIBLE_ROLES_PATH: "/drone/src", AWS_ACCESS_KEY_ID: { "from_secret": "aws_access_key_id" }, AWS_SECRET_ACCESS_KEY: { "from_secret": "aws_secret_access_key" }, AWS_REGION: "eu-central-1", 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", "ansible-galaxy install --force -r requirements.yml -p /drone/src", "molecule create --scenario-name ec2-centos-7", "molecule converge --scenario-name ec2-centos-7", "molecule verify --scenario-name ec2-centos-7", "molecule destroy --scenario-name ec2-centos-7", ], }, ], 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, ]