ibis/.woodpecker.yml

95 lines
2.8 KiB
YAML
Raw Normal View History

variables:
- &rust_image "rust:1.75"
steps:
2024-02-29 11:39:00 +00:00
2024-03-01 16:31:56 +00:00
build_release:
2024-02-29 11:39:00 +00:00
image: *rust_image
environment:
CARGO_HOME: .cargo_home
commands:
- wget https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
- tar -xvf cargo-binstall-x86_64-unknown-linux-musl.tgz
2024-02-29 12:21:26 +00:00
- rustup target add wasm32-unknown-unknown
2024-02-29 12:20:09 +00:00
- ./cargo-binstall -y trunk
- ./.cargo_home/bin/trunk build --release
2024-02-29 11:39:00 +00:00
- cargo build --release
- ls -la target/release/ibis
2024-02-29 12:16:59 +00:00
- cp target/release/ibis .
- gzip ibis
- ls -la ibis.gz
2024-02-29 11:39:00 +00:00
2024-03-01 16:31:56 +00:00
publish_release:
image: woodpeckerci/plugin-github-release
settings:
files:
- ibis.gz
title: ${CI_COMMIT_TAG##v}
api-key:
from_secret: github_token
cargo_fmt:
image: *rust_image
environment:
# store cargo data in repo folder so that it gets cached between steps
CARGO_HOME: .cargo_home
commands:
- rustup component add rustfmt
- cargo fmt -- --check
2024-02-07 15:54:43 +00:00
check_config_defaults_updated:
image: *rust_image
environment:
CARGO_HOME: .cargo_home
commands:
2024-02-07 15:54:43 +00:00
- cargo run -- --print-config > config/defaults_current.toml
- diff config/defaults.toml config/defaults_current.toml
check_diesel_schema:
image: willsquire/diesel-cli
environment:
CARGO_HOME: .cargo_home
DATABASE_URL: postgres://ibis:password@database:5432/ibis
commands:
- diesel migration run
- diesel print-schema --config-file=diesel.toml > tmp.schema
- diff tmp.schema src/backend/database/schema.rs
2024-02-07 15:54:43 +00:00
frontend_wasm_build:
image: *rust_image
environment:
CARGO_HOME: .cargo_home
commands:
- "rustup target add wasm32-unknown-unknown"
- "cargo check --target wasm32-unknown-unknown --features csr,hydrate --no-default-features"
cargo_clippy:
image: *rust_image
environment:
CARGO_HOME: .cargo_home
commands:
- rustup component add clippy
- cargo clippy --tests --all-targets --all-features
cargo_test:
image: *rust_image
environment:
LEMMY_DATABASE_URL: postgres://ibis:password@database:5432/ibis
CARGO_HOME: .cargo_home
commands:
- apt-get update
- apt-get install postgresql sudo -y --no-install-recommends --no-install-suggests
# dbinit (used by tests to create temp db) refuses to run as root so we need to setup another user
- adduser testuser
- cp /usr/local/rustup /home/testuser/.rustup -r
- chown testuser:testuser . -R
- chown testuser:testuser /home/testuser -R
- export PATH="/usr/lib/postgresql/15/bin:/usr/local/cargo/bin:$PATH"
- sudo -u testuser env "PATH=$PATH" cargo test --no-fail-fast
services:
database:
image: postgres:15.2-alpine
environment:
POSTGRES_USER: ibis
POSTGRES_PASSWORD: password