# See https://github.com/woodpecker-ci/woodpecker/issues/1677
variables:
- - &muslrust_image "clux/muslrust:1.67.0"
+ - &muslrust_image "clux/muslrust:1.70.0"
# Broken for cron jobs currently, see
# https://github.com/woodpecker-ci/woodpecker/issues/1716
- apk add git
#- git fetch --tags
- git submodule init
- - git submodule update --recursive --remote
+ - git submodule update
prettier_check:
image: tmknom/prettier
# when:
# platform: linux/amd64
- # check each package to make sure they compile with default features.
- # this is required for crates.io
- cargo_check:
- image: *muslrust_image
- environment:
- CARGO_HOME: .cargo
- commands:
- - cargo check --package lemmy_utils
- - cargo check --package lemmy_db_schema
- - cargo check --package lemmy_db_views
- - cargo check --package lemmy_db_views_actor
- - cargo check --package lemmy_db_views_moderator
- - cargo check --package lemmy_api_common
- - cargo check --package lemmy_api
- - cargo check --package lemmy_api_crud
- - cargo check --package lemmy_apub
- - cargo check --package lemmy_routes
- - cargo check --workspace
- - cargo check --workspace --features console
- # disabled because it takes too long with pict-rs
- #- cargo check --workspace --all-features
- # when:
- # platform: linux/amd64
-
cargo_clippy:
image: *muslrust_image
environment:
-D clippy::style -D clippy::correctness -D clippy::suspicious
-D clippy::dbg_macro -D clippy::inefficient_to_string
-D clippy::items-after-statements -D clippy::implicit_clone
- -D clippy::wildcard_imports -D clippy::cast_lossless
- -D clippy::manual_string_new -D clippy::redundant_closure_for_method_calls
+ -D clippy::cast_lossless -D clippy::manual_string_new
+ -D clippy::redundant_closure_for_method_calls
-D clippy::unused_self
-A clippy::uninlined_format_args
-D clippy::get_first
+ -D clippy::explicit_into_iter_loop
+ -D clippy::explicit_iter_loop
+ -D clippy::needless_collect
- cargo clippy --workspace --features console --
-D clippy::unwrap_used
-D clippy::indexing_slicing
# when:
# platform: linux/amd64
+ # make sure api builds with default features (used by other crates relying on lemmy api)
+ cargo_check:
+ image: *muslrust_image
+ environment:
+ CARGO_HOME: .cargo
+ commands:
+ - cargo check --package lemmy_api_common
+ # when:
+ # platform: linux/amd64
+
lemmy_api_common_doesnt_depend_on_diesel:
image: *muslrust_image
environment:
# platform: linux/amd64
check_diesel_schema:
- image: jameshiew/diesel-cli
+ image: willsquire/diesel-cli
environment:
CARGO_HOME: .cargo
DATABASE_URL: postgres://lemmy:password@database:5432/lemmy
# when:
# platform: linux/amd64
- nightly_build:
+ publish_release_docker:
image: woodpeckerci/plugin-docker-buildx
+ secrets: [docker_username, docker_password]
settings:
repo: dessalines/lemmy
dockerfile: docker/Dockerfile
platforms: linux/amd64
- build_args: RUST_RELEASE_MODE=release
- username:
- from_secret: docker_username
- password:
- from_secret: docker_password
- # add_host: github.com:140.82.112.3,static.crates.io:18.154.227.73,crates.io:108.138.64.68,dl-cdn.alpinelinux.org:146.75.30.133
- tag: dev
- when:
- event:
- - cron
- #platform: linux/amd64
-
- publish_release_docker_image_amd:
- image: woodpeckerci/plugin-docker-buildx
- settings:
- repo: dessalines/lemmy
- dockerfile: docker/Dockerfile
- platforms: linux/amd64
- build_args: RUST_RELEASE_MODE=release
- username:
- from_secret: docker_username
- password:
- from_secret: docker_password
- # add_host: github.com:140.82.112.3,static.crates.io:18.154.227.73,crates.io:108.138.64.68,dl-cdn.alpinelinux.org:146.75.30.133
+ build_args:
+ - RUST_RELEASE_MODE=release
auto_tag: true
- # auto_tag_suffix: linux-amd64
when:
- event:
- tag
- #platform: linux/amd64
+ event: tag
- publish_release_docker_image_arm:
+ nightly_build:
image: woodpeckerci/plugin-docker-buildx
+ secrets: [docker_username, docker_password]
settings:
repo: dessalines/lemmy
dockerfile: docker/Dockerfile
- platforms: linux/arm64
- build_args: RUST_RELEASE_MODE=release
- username:
- from_secret: docker_username
- password:
- from_secret: docker_password
- # add_host: github.com:140.82.112.3,static.crates.io:18.154.227.73,crates.io:108.138.64.68,dl-cdn.alpinelinux.org:146.75.30.133
- auto_tag: true
- # auto_tag_suffix: linux-arm64
+ platforms: linux/amd64
+ build_args:
+ - RUST_RELEASE_MODE=release
+ tag: dev
when:
- event:
- tag
- #platform: linux/arm64
-
- #publish_release_docker_manifest:
- # image: plugins/manifest
- # settings:
- # username:
- # from_secret: docker_username
- # password:
- # from_secret: docker_password
- # target: "dessalines/lemmy:${CI_COMMIT_TAG}"
- # template: "dessalines/lemmy:${CI_COMMIT_TAG}-OS-ARCH"
- # platforms:
- # - linux/amd64
- # - linux/arm64
- # ignore_missing: true
- # when:
- # event: tag
-
- #publish_latest_release_docker_manifest:
- # image: plugins/manifest
- # settings:
- # username:
- # from_secret: docker_username
- # password:
- # from_secret: docker_password
- # target: "dessalines/lemmy:latest"
- # template: "dessalines/lemmy:${CI_COMMIT_TAG}-OS-ARCH"
- # platforms:
- # - linux/amd64
- # - linux/arm64
- # ignore_missing: true
- # when:
- # event: tag
- # #platform: linux/amd64
+ event: cron
# using https://github.com/pksunkara/cargo-workspaces
publish_to_crates_io:
image: *muslrust_image
commands:
+ - 'echo "pub const VERSION: &str = \"$(git describe --tag)\";" > "crates/utils/src/version.rs"'
- cargo install cargo-workspaces
- cp -r migrations crates/db_schema/
- cargo login "$CARGO_API_TOKEN"