local PipelineBuild(os='linux', arch='amd64') = { local tag = os + '-' + arch, local version_tag = os + '-' + arch, local file_suffix = std.strReplace(version_tag, '-', '.'), kind: "pipeline", name: version_tag, platform: { os: os, arch: arch, }, steps: [ { name: 'dryrun', image: 'plugins/docker:' + tag, pull: 'always', settings: { dry_run: true, tags: version_tag, dockerfile: 'docker/Dockerfile.' + file_suffix, repo: ' xoxys/ttrss', username: { from_secret: "docker_username" }, password: { from_secret: "docker_password" }, }, }, { name: 'publish', image: 'plugins/docker:' + tag, pull: 'always', settings: { auto_tag: true, auto_tag_suffix: version_tag, dockerfile: 'docker/Dockerfile.' + file_suffix, repo: ' xoxys/ttrss', username: { from_secret: "docker_username" }, password: { from_secret: "docker_password" }, }, when: { ref: [ 'refs/heads/master', 'refs/tags/**', ], }, }, ], }; local PipelineNotifications(depends_on=[]) = { kind: "pipeline", name: "notifications", platform: { os: "linux", arch: "amd64", }, steps: [ { image: "plugins/manifest", name: "manifest", pull: "always", settings: { ignore_missing: true, username: { from_secret: "docker_username" }, password: { from_secret: "docker_password" }, spec: "docker/manifest.tmpl", }, when: { ref: [ 'refs/heads/master', 'refs/tags/**', ], }, }, { name: "microbadger", image: "plugins/webhook", pull: "always", settings: { urls: { from_secret: "microbadger_url" }, }, }, { image: "plugins/matrix", name: "matrix", pull: 'always', 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" }, }, when: { status: [ "success", "failure" ], }, }, ], trigger: { status: [ "success", "failure" ], }, depends_on: depends_on, }; [ PipelineBuild(os='linux', arch='amd64'), PipelineNotifications(depends_on=[ "linux-amd64", ]) ]