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: 'binary', image: 'clux/muslrust:nightly-2019-12-19', environment: { 'DB': 'postgresql', 'DEBIAN_FRONTEND': 'noninteractive', 'LANG': 'C.UTF-8', 'TZ': 'UTC', }, commands: [ '[ -z "${DRONE_TAG}" ] && BITWARDEN_VERSION=master || BITWARDEN_VERSION=${DRONE_TAG%-*}', 'mkdir -p source/', 'apt-get update && apt-get install -y --no-install-recommends libpq-dev', 'rustup set profile minimal', 'curl -L https://github.com/dani-garcia/bitwarden_rs/archive/$BITWARDEN_VERSION.tar.gz | tar xz -C source/ --strip-components=1', 'ls -lah source && id', 'cargo new --bin app/ && cd app/', 'cp ../source/Cargo.* .', 'cp ../source/rust-toolchain .', 'cp ../source/build.rs .', 'rustup target add x86_64-unknown-linux-musl', 'cargo build --features $DB --release', 'find . -not -path "./target*" -delete', 'ls -lah', 'cp -rT ../source .', 'ls -lah' ], }, // { // name: 'dryrun', // image: 'plugins/docker:' + tag, // settings: { // dry_run: true, // tags: version_tag, // dockerfile: './Dockerfile.' + file_suffix, // repo: 'xoxys/freshrss', // username: { from_secret: 'docker_username' }, // password: { from_secret: 'docker_password' }, // build_args: { // BITWARDEN_VERSION: '${DRONE_TAG%-*}', // }, // }, // }, // { // name: 'publish', // image: 'plugins/docker:' + tag, // settings: { // auto_tag: true, // auto_tag_suffix: version_tag, // dockerfile: './Dockerfile.' + file_suffix, // repo: 'xoxys/freshrss', // username: { from_secret: 'docker_username' }, // password: { from_secret: 'docker_password' }, // build_args: { // BITWARDEN_VERSION: '${DRONE_TAG%-*}', // }, // }, // when: { // ref: [ // 'refs/heads/master', // 'refs/tags/**', // ], // }, // }, // { // name: 'publish-gitea', // image: 'plugins/gitea-release', // settings: { // api_key: { from_secret: 'gitea_token' }, // base_url: 'https://gitea.rknet.org', // overwrite: true, // title: '${DRONE_TAG}', // note: 'CHANGELOG.md', // }, // when: { // ref: ['refs/tags/**'], // }, // }, ], }; local PipelineNotifications(depends_on=[]) = { kind: 'pipeline', name: 'notifications', platform: { os: 'linux', arch: 'amd64', }, steps: [ { image: 'plugins/manifest', name: 'manifest', settings: { ignore_missing: true, tags: ['${DRONE_TAG}', '${DRONE_TAG%-*}', '${DRONE_TAG%.*}', '${DRONE_TAG%%.*}'], username: { from_secret: 'docker_username' }, password: { from_secret: 'docker_password' }, spec: './manifest.tmpl', }, when: { ref: [ 'refs/heads/master', 'refs/tags/**', ], }, }, { name: 'readme', image: 'sheogorath/readme-to-dockerhub', environment: { DOCKERHUB_USERNAME: { from_secret: 'docker_username' }, DOCKERHUB_PASSWORD: { from_secret: 'docker_password' }, DOCKERHUB_REPO_PREFIX: 'xoxys', DOCKERHUB_REPO_NAME: 'freshrss', README_PATH: 'README.md', SHORT_DESCRIPTION: 'Rootless FreshRSS - Self-hosted RSS feed aggregator', }, when: { ref: [ 'refs/heads/master', 'refs/tags/**', ], }, }, { name: 'microbadger', image: 'plugins/webhook', settings: { urls: { from_secret: 'microbadger_url' }, }, }, { image: 'plugins/matrix', name: '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' }, }, when: { status: ['success', 'failure'], }, }, ], trigger: { status: ['success', 'failure'], }, depends_on: depends_on, }; [ PipelineBuild(os='linux', arch='amd64'), // PipelineNotifications(depends_on=[ // 'linux-amd64', // ]), ]