Talon/.woodpecker.yml

92 lines
2.2 KiB
YAML

pipeline:
build-frontend:
image: node:latest
environment:
- VERSION=${CI_COMMIT_TAG}
commands:
- npm install --prefix ui/talon-client
- npm install --prefix ui/menu
- npm run ci --prefix ui/menu
- npm run build --prefix ui/menu
test-server:
image: rust:latest
environment:
- CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
commands:
- rustup component add rustfmt clippy
- cargo fmt --all --check
- cargo clippy --all --all-features -- -D warnings
- cargo test --workspace
build-amd64:
group: build
image: messense/rust-musl-cross:x86_64-musl
environment:
- CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
commands:
- cargo build --release
when:
event: tag
tag: v*
build-aarch64:
group: build
image: messense/rust-musl-cross:aarch64-musl
environment:
- CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
commands:
- cargo build --release
when:
event: tag
tag: v*
generate-changelog:
group: build
image: rust:latest
commands:
- git show -s --format=%N "${CI_COMMIT_TAG}" | tail -n +4 > target/CHANGES.md
- cat target/CHANGES.md
when:
event: tag
tag: v*
compress-release:
image: debian:latest
commands:
- mkdir target/upload
- gzip -c target/x86_64-unknown-linux-musl/release/talon > target/upload/talon-amd64.gz
- gzip -c target/aarch64-unknown-linux-musl/release/talon > target/upload/talon-aarch64.gz
when:
event: tag
tag: v*
publish-release:
group: publish
image: woodpeckerci/plugin-gitea-release:latest
settings:
base_url: https://code.thetadev.de
api_key:
from_secret: GITEA_KEY
title: "Talon ${CI_COMMIT_TAG}"
note: "./target/CHANGES.md"
files:
- "target/upload/talon-amd64.gz"
- "target/upload/talon-aarch64.gz"
when:
event: tag
tag: v*
publish-docker:
group: publish
image: noenv/buildah:latest
environment:
- IMAGE=thetadev256/talon
- TAG=${CI_COMMIT_TAG}
- LATEST=1
secrets:
- docker_username
- docker_password
commands:
- ./scripts/build_container.sh
when:
event: tag
tag: v*