92 lines
2.2 KiB
YAML
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*
|