fix: Use our rust earthly lib now; make tests and lints more efficient
This commit is contained in:
parent
f8950b3477
commit
5fb8081935
1 changed files with 26 additions and 21 deletions
47
Earthfile
47
Earthfile
|
|
@ -1,7 +1,8 @@
|
||||||
VERSION 0.8
|
VERSION 0.8
|
||||||
PROJECT blue-build/cli
|
PROJECT blue-build/cli
|
||||||
|
|
||||||
IMPORT github.com/earthly/lib/rust AS rust
|
IMPORT github.com/blue-build/earthly-lib/rust AS rust
|
||||||
|
# IMPORT ../earthly-lib/rust AS rust
|
||||||
|
|
||||||
ARG --global IMAGE=ghcr.io/blue-build/cli
|
ARG --global IMAGE=ghcr.io/blue-build/cli
|
||||||
ARG --global TAGGED="false"
|
ARG --global TAGGED="false"
|
||||||
|
|
@ -36,45 +37,49 @@ prebuild:
|
||||||
lint:
|
lint:
|
||||||
FROM +common
|
FROM +common
|
||||||
RUN cargo fmt --all --check
|
RUN cargo fmt --all --check
|
||||||
DO rust+CARGO --args="clippy --workspace"
|
BUILD +cargo-op --args="clippy --workspace"
|
||||||
DO rust+CARGO --args="clippy --workspace --all-features"
|
BUILD +cargo-op --args="clippy --workspace --all-features"
|
||||||
DO rust+CARGO --args="clippy --workspace --no-default-features"
|
BUILD +cargo-op --args="clippy --workspace --no-default-features"
|
||||||
DO +EACH_PACKAGE --args="clippy --workspace --no-default-features"
|
DO +EACH_PACKAGE --args="clippy --workspace --no-default-features"
|
||||||
|
|
||||||
test:
|
test:
|
||||||
FROM +common
|
FROM +common
|
||||||
COPY --dir test-files/ integration-tests/ /app
|
|
||||||
COPY +cosign/cosign /usr/bin/cosign
|
|
||||||
|
|
||||||
DO rust+CARGO --args="test --workspace"
|
BUILD +cargo-op --args="test --workspace"
|
||||||
DO rust+CARGO --args="test --workspace --all-features"
|
BUILD +cargo-op --args="test --workspace --all-features"
|
||||||
DO rust+CARGO --args="test --workspace --no-default-features"
|
BUILD +cargo-op --args="test --workspace --no-default-features"
|
||||||
DO +EACH_PACKAGE --args="test --no-default-features"
|
DO +EACH_PACKAGE --args="test --no-default-features"
|
||||||
|
|
||||||
EACH_PACKAGE:
|
EACH_PACKAGE:
|
||||||
FUNCTION
|
FUNCTION
|
||||||
|
ARG packages="$(cargo metadata --format-version 1 | jq -cr '.workspace_members | .[]' | sed 's|.*#||' | sed 's|@.*||')"
|
||||||
|
|
||||||
ARG --required args
|
ARG --required args
|
||||||
|
|
||||||
FOR package IN $( \
|
FOR package IN $packages
|
||||||
cargo metadata --format-version 1 \
|
DO +EACH_FEAT --package="$package" --args="$args"
|
||||||
| jq -cr '.workspace_members | .[]' \
|
|
||||||
| sed 's|.*#||' | sed 's|@.*||' \
|
|
||||||
)
|
|
||||||
DO --pass-args +EACH_FEAT --package="$package"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
EACH_FEAT:
|
EACH_FEAT:
|
||||||
FUNCTION
|
FUNCTION
|
||||||
ARG --required args
|
|
||||||
ARG --required package
|
ARG --required package
|
||||||
|
ARG features="$(cargo metadata --format-version 1 | jq -cr ".packages[] | select(.name == \"$package\") | .features | keys | .[] | select(. != \"default\")")"
|
||||||
|
|
||||||
FOR feat IN $( \
|
ARG --required args
|
||||||
cargo metadata --format-version 1 \
|
|
||||||
| jq -cr ".packages[] | select(.name == \"$package\") | .features | keys | .[] | select(. != \"default\")" \
|
FOR feat IN $features
|
||||||
)
|
BUILD +cargo-op --args="$args --package $package --features $feat"
|
||||||
DO rust+CARGO --args="$args --package $package --features $feat"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
|
cargo-op:
|
||||||
|
FROM +common
|
||||||
|
COPY --dir test-files/ integration-tests/ /app
|
||||||
|
COPY +cosign/cosign /usr/bin/cosign
|
||||||
|
|
||||||
|
ARG --required args
|
||||||
|
|
||||||
|
DO rust+CARGO --args="$args"
|
||||||
|
|
||||||
install:
|
install:
|
||||||
FROM +common
|
FROM +common
|
||||||
ARG --required BUILD_TARGET
|
ARG --required BUILD_TARGET
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue