kind: pipeline type: docker name: clippy platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: clippy image: asonix/rust-builder:latest-linux-amd64 pull: always commands: - rustup component add clippy - cargo clippy --no-default-features -- -D warnings - cargo clippy --no-default-features --features io-uring -- -D warnings trigger: event: - push - pull_request - tag --- kind: pipeline type: docker name: tests platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: tests image: asonix/rust-builder:latest-linux-amd64 pull: always commands: - cargo test trigger: event: - push - pull_request - tag --- kind: pipeline type: docker name: check-amd64 platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: check image: asonix/rust-builder:latest-linux-amd64 pull: always commands: - cargo check --target=$TARGET trigger: event: - push - pull_request --- kind: pipeline type: docker name: build-amd64 platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: build image: asonix/rust-builder:latest-linux-amd64 pull: always commands: - cargo build --target=$TARGET --release - $TOOL-strip target/$TARGET/release/pict-rs - cp target/$TARGET/release/pict-rs . - cp pict-rs pict-rs-linux-amd64 - name: push image: plugins/docker:20 settings: username: asonix password: from_secret: dockerhub_token repo: asonix/pictrs dockerfile: docker/drone/Dockerfile auto_tag: true auto_tag_suffix: linux-amd64 build_args: - REPO_ARCH=amd64 - name: publish image: plugins/gitea-release:1 settings: api_key: from_secret: gitea_token base_url: https://git.asonix.dog files: - pict-rs-linux-amd64 depends_on: - clippy - tests trigger: event: - tag --- kind: pipeline type: docker name: check-arm64v8 platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: check image: asonix/rust-builder:latest-linux-arm64v8 pull: always commands: - cargo check --target=$TARGET trigger: event: - push - pull_request --- kind: pipeline type: docker name: build-arm64v8 platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: build image: asonix/rust-builder:latest-linux-arm64v8 pull: always commands: - cargo build --target=$TARGET --release - $TOOL-strip target/$TARGET/release/pict-rs - cp target/$TARGET/release/pict-rs . - cp pict-rs pict-rs-linux-arm64v8 - name: push image: plugins/docker:20 settings: username: asonix password: from_secret: dockerhub_token repo: asonix/pictrs dockerfile: docker/drone/Dockerfile auto_tag: true auto_tag_suffix: linux-arm64v8 build_args: - REPO_ARCH=arm64v8 - name: publish image: plugins/gitea-release:1 settings: api_key: from_secret: gitea_token base_url: https://git.asonix.dog files: - pict-rs-linux-arm64v8 depends_on: - clippy - tests trigger: event: - tag --- kind: pipeline type: docker name: check-arm32v7 platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: check image: asonix/rust-builder:latest-linux-arm32v7 pull: always commands: - cargo check --target=$TARGET trigger: event: - push - pull_request --- kind: pipeline type: docker name: build-arm32v7 platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: build image: asonix/rust-builder:latest-linux-arm32v7 pull: always commands: - cargo build --target=$TARGET --release - $TOOL-strip target/$TARGET/release/pict-rs - cp target/$TARGET/release/pict-rs . - cp pict-rs pict-rs-linux-arm32v7 - name: push image: plugins/docker:20 settings: username: asonix password: from_secret: dockerhub_token repo: asonix/pictrs dockerfile: docker/drone/Dockerfile auto_tag: true auto_tag_suffix: linux-arm32v7 build_args: - REPO_ARCH=arm32v7 - name: publish image: plugins/gitea-release:1 settings: api_key: from_secret: gitea_token base_url: https://git.asonix.dog files: - pict-rs-linux-arm32v7 depends_on: - clippy - tests trigger: event: - tag --- kind: pipeline type: docker name: manifest platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: manifest image: plugins/manifest:1 settings: username: asonix password: from_secret: dockerhub_token dump: true auto_tag: true ignore_missing: true spec: docker/drone/manifest.tmpl depends_on: - build-amd64 - build-arm64v8 - build-arm32v7 trigger: event: - tag --- kind: pipeline type: docker name: publish-crate platform: arch: amd64 clone: disable: true steps: - name: clone image: alpine/git:latest user: root commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - chown -R 991:991 . - name: publish image: asonix/rust-builder:latest-linux-amd64 pull: always environment: CRATES_IO_TOKEN: from_secret: crates_io_token commands: - cargo publish --token $CRATES_IO_TOKEN depends_on: - build-amd64 - build-arm64v8 - build-arm32v7 trigger: event: - tag