local PipelineLinting = { kind: 'pipeline', name: 'linting', platform: { os: 'linux', arch: 'amd64', }, steps: [ { name: 'ansible-later', image: 'xoxys/ansible-later', commands: [ 'ansible-later', ], }, ], trigger: { ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'], }, }; local PipelineDeployment(scenario='centos7') = { kind: 'pipeline', name: 'testing-' + scenario, platform: { os: 'linux', arch: 'amd64', }, concurrency: { limit: 1, }, workspace: { base: '/drone/src', path: 'xoxys.homeassistant', }, steps: [ { name: 'ansible-molecule', image: 'xoxys/molecule:3', pull: 'always', environment: { DO_API_KEY: { from_secret: 'do_api_key' }, 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' + scenario, ], }, ], depends_on: [ 'linting', ], trigger: { ref: ['refs/heads/master', 'refs/tags/**'], }, }; local PipelineDocumentation = { kind: 'pipeline', name: 'documentation', platform: { os: 'linux', arch: 'amd64', }, steps: [ { name: 'generate', image: 'xoxys/ansible-doctor', environment: { ANSIBLE_DOCTOR_LOG_LEVEL: 'INFO', ANSIBLE_DOCTOR_FORCE_OVERWRITE: true, ANSIBLE_DOCTOR_EXCLUDE_FILES: 'molecule/', ANSIBLE_DOCTOR_TEMPLATE: 'hugo-book', ANSIBLE_DOCTOR_ROLE_NAME: '${DRONE_REPO_NAME#*.}', ANSIBLE_DOCTOR_OUTPUT_DIR: '_docs/', }, }, { name: 'publish', image: 'plugins/gh-pages', settings: { remote_url: 'https://gitea.rknet.org/ansible/xoxys.homeassistant', netrc_machine: 'gitea.rknet.org', username: { from_secret: 'gitea_username' }, password: { from_secret: 'gitea_token' }, pages_directory: '_docs/', target_branch: 'docs', }, when: { ref: ['refs/heads/master'], }, }, { name: 'trigger', image: 'plugins/downstream', settings: { server: 'https://drone.rknet.org', token: { from_secret: 'drone_token' }, fork: true, repositories: [ 'ansible/ansible-galaxy', ], }, when: { ref: ['refs/heads/master'], }, }, ], trigger: { ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'], }, depends_on: [ 'testing-centos7', ], }; 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(scenario='centos7'), PipelineDocumentation, PipelineNotification, ]