empede/.drone.yml

129 lines
3.8 KiB
YAML

kind: pipeline
type: docker
name: default
platform:
os: linux
arch: amd64
steps:
- name: restore-cache-with-filesystem
image: meltwater/drone-cache
pull: true
settings:
backend: "filesystem"
restore: true
cache_key: "volume"
mount:
- target
- /usr/local/cargo/env
volumes:
- name: cache
path: /tmp/cache
- name: lint
image: rust:latest
commands:
- rustup component add rustfmt clippy
- cargo fmt --check
- cargo clippy
depends_on:
- restore-cache-with-filesystem
- name: build-x86_64-unknown-linux-gnu
image: rust:latest
commands:
- cargo build --release
- strip target/release/empede
depends_on:
- restore-cache-with-filesystem
- name: build-aarch64-unknown-linux-gnu
image: rust:latest
commands:
- apt-get update
- apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
- rustup target add aarch64-unknown-linux-gnu
- cargo build --target=aarch64-unknown-linux-gnu --release --config target.aarch64-unknown-linux-gnu.linker=\"aarch64-linux-gnu-gcc\"
- aarch64-linux-gnu-strip target/aarch64-unknown-linux-gnu/release/empede
when:
event: tag
depends_on:
- restore-cache-with-filesystem
- name: build-x86_64-pc-windows-gnu
image: rust:latest
commands:
- apt-get update && apt-get install -y mingw-w64
- rustup target add x86_64-pc-windows-gnu
- cargo build --target=x86_64-pc-windows-gnu --release --config target.x86_64-pc-windows-gnu.linker=\"x86_64-w64-mingw32-gcc\"
- x86_64-w64-mingw32-strip target/x86_64-pc-windows-gnu/release/empede.exe
when:
event: tag
depends_on:
- restore-cache-with-filesystem
- name: package
image: alpine
commands:
- apk add --no-cache tar gzip zip
# x86_64-unknown-linux-gnu
- mkdir empede-x86_64-unknown-linux-gnu-${DRONE_TAG}
- cp -r target/release/empede static/ README.md empede-x86_64-unknown-linux-gnu-${DRONE_TAG}/
- tar czf empede-x86_64-unknown-linux-gnu-${DRONE_TAG}.tar.gz empede-x86_64-unknown-linux-gnu-${DRONE_TAG}/
# aarch64-unknown-linux-gnu
- mkdir empede-aarch64-unknown-linux-gnu-${DRONE_TAG}
- cp -r target/aarch64-unknown-linux-gnu/release/empede static/ README.md empede-aarch64-unknown-linux-gnu-${DRONE_TAG}/
- tar czf empede-aarch64-unknown-linux-gnu-${DRONE_TAG}.tar.gz empede-aarch64-unknown-linux-gnu-${DRONE_TAG}/
# x86_64-pc-windows-gnu
- mkdir empede-x86_64-pc-windows-gnu-${DRONE_TAG}
- cp -r target/x86_64-pc-windows-gnu/release/empede.exe static/ README.md empede-x86_64-pc-windows-gnu-${DRONE_TAG}/
- zip -r empede-x86_64-pc-windows-gnu-${DRONE_TAG}.zip empede-x86_64-pc-windows-gnu-${DRONE_TAG}/
depends_on:
- build-aarch64-unknown-linux-gnu
- build-x86_64-unknown-linux-gnu
- build-x86_64-pc-windows-gnu
when:
event: tag
- name: gitea_release
image: plugins/gitea-release
settings:
api_key:
from_secret: GITEA_TOKEN
base_url: https://git.sijman.nl
files:
- empede-aarch64-unknown-linux-gnu-${DRONE_TAG}.tar.gz
- empede-x86_64-unknown-linux-gnu-${DRONE_TAG}.tar.gz
- empede-x86_64-pc-windows-gnu-${DRONE_TAG}.zip
depends_on:
- package
when:
event: tag
- name: rebuild-cache-with-filesystem
image: meltwater/drone-cache
pull: true
settings:
backend: "filesystem"
rebuild: true
cache_key: "volume"
mount:
- target
- /usr/local/cargo/env
volumes:
- name: cache
path: /tmp/cache
depends_on:
- build-aarch64-unknown-linux-gnu
- build-x86_64-unknown-linux-gnu
- build-x86_64-pc-windows-gnu
- lint
volumes:
- name: cache
host:
path: /var/lib/cache