diff --git a/.forgejo/workflows/push-next.yml b/.forgejo/workflows/push-next.yml index 4a57795..c9a3d9e 100644 --- a/.forgejo/workflows/push-next.yml +++ b/.forgejo/workflows/push-next.yml @@ -7,7 +7,7 @@ jobs: runs-on: docker container: image: - git.kemitix.net/kemitix/rust:v3.1.0 + git.kemitix.net/kemitix/rust:v4.0.0 strategy: matrix: toolchain: diff --git a/Dockerfile b/Dockerfile index fa25064..126dadf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,15 +2,7 @@ FROM docker.io/rust:1.84.0-alpine3.21 LABEL org.opencontainers.image.source=https://git.kemitix.net/kemitix/rust -# nodejs - runtime used by forgejo/github actions -# curl - to download cargo-binstall -# clang & mold - faster linkers for rust -# pkgconfig - required to compile some rust `-sys` packages -# openssl-dev - build dependency for git-next -# dbus-dev - linux os interop (e.g. desktop notifications) -# git - git -RUN apk add --no-cache nodejs curl clang pkgconfig mold libssl3 openssl-dev build-base dbus-dev git bash - +RUN apk add --no-cache curl=8.11.1-r0 RUN curl -L https://github.com/cargo-bins/cargo-binstall/releases/download/v1.10.19/cargo-binstall-x86_64-unknown-linux-musl.tgz -o cargo-binstall.tgz && \ tar -xzf cargo-binstall.tgz && \ rm cargo-binstall.tgz && \ @@ -24,11 +16,37 @@ RUN cargo binstall -y \ release-plz@0.3 # should be a no-op if the FROM line is up-to-date -RUN rustup update stable && rustup component add --toolchain stable rustfmt clippy +RUN rustup update stable + +RUN rustup component add rustfmt clippy # install nightly RUN rustup install nightly && rustup component add --toolchain nightly rustfmt clippy +# nodejs - runtime used by forgejo/github actions +# curl - to download cargo-binstall +# clang & mold - faster linkers for rust +# pkgconfig - required to compile some rust `-sys` packages +# openssl-dev - build dependency for git-next +# dbus-dev - linux os interop (e.g. desktop notifications) +# perl - native-tls(vendored) +# git - git +RUN apk add --no-cache \ + bash \ + nodejs \ + build-base \ + pkgconfig \ + libssl3 \ + openssl-dev \ + perl \ + git + + # clang \ + + # mold \ + + # dbus-dev \ + RUN git config --global user.email "action@git.kemitix.net" && \ git config --global user.name "ForgeJo Action. See: https://git.kemitix.net/kemitix/rust" diff --git a/README.md b/README.md index 9e42799..6a73835 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ The available toolchain in the image are: - cargo-chef - cargo-hack - release-plz +- perl ### Scripts @@ -57,3 +58,13 @@ steps: - name: Check for Ignored Files run: check-for-ignored ``` + +## Caveats + +### native-tls + +This crate *must* use the `vendored` feature in order to compile in the Alpine Linux image. + +```toml +native-tls = { version = "0.2", features = ["vendored"] } +``` diff --git a/justfile b/justfile index c1a8fa3..30f08b2 100644 --- a/justfile +++ b/justfile @@ -6,5 +6,8 @@ build: test: build docker run --rm -v $PWD:/app/ {{ image }} cargo test +clippy: build + docker run --rm -v $PWD:/app/ {{ image }} cargo clippy + shell: build docker run --rm -it -v $PWD:/app/ {{ image }} bash diff --git a/mise.linux.toml b/mise.linux.toml new file mode 100644 index 0000000..d974ab8 --- /dev/null +++ b/mise.linux.toml @@ -0,0 +1,2 @@ +[tools] +"cargo:drft" = "latest"