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(scenario='centos7') = { kind: 'pipeline', name: 'testing-' + scenario, platform: { os: 'linux', arch: 'amd64', }, concurrency: { limit: 1, }, workspace: { base: '/drone/src', path: 'xoxys.matrix', }, 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' + scenario, ], }, ], 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', netrc_machine: 'gitea.rknet.org', netrc_username: { from_secret: 'gitea_username' }, netrc_password: { from_secret: 'gitea_token' }, }, when: { ref: ['refs/heads/master'], }, }, ], 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, PipelineDocumentation, PipelineNotification, ]