6 Commits

Author SHA1 Message Date
6842a09195 Update Rust crate confy to v1
All checks were successful
Main workflow / Run lints & tests (push) Successful in 2m40s
2025-06-01 00:02:26 +00:00
7371bd2ea9 Update dtolnay/rust-toolchain digest to b3b07ba
All checks were successful
Main workflow / Run lints & tests (push) Successful in 1m8s
2025-05-01 09:44:29 +00:00
a4679d62cf Update dependency ubuntu to v24
All checks were successful
Main workflow / Run lints & tests (push) Successful in 1m9s
2025-05-01 01:01:50 +00:00
e6e658e014 Add github-actions to renovate
All checks were successful
Main workflow / Run lints & tests (push) Successful in 1m34s
2025-04-12 12:09:52 +02:00
8260f0db4c Upgrade CI
All checks were successful
Main workflow / Run lints & tests (push) Successful in 1m34s
2025-04-12 12:07:46 +02:00
85256bf559 Fix clippy lint 2025-04-12 11:52:01 +02:00
5 changed files with 124 additions and 68 deletions

View File

@@ -6,35 +6,33 @@ on:
jobs: jobs:
check: check:
name: Lint code & run tests name: Run lints & tests
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
container: alpine:3.21
timeout-minutes: 5 timeout-minutes: 5
steps: steps:
- name: Install dependencies
run: apk add cargo coreutils docker git nodejs rust-clippy rustfmt tar zstd
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Get Cargo.lock hash - name: Setup rust
id: hash uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b
run: | id: toolchain
hash="$(sha256sum Cargo.lock | awk '{print $1}')" with:
echo "hash=$hash" >>"$GITHUB_OUTPUT" toolchain: stable
targets: x86_64-unknown-linux-musl
components: clippy, rustfmt
- name: Setup cache - name: Setup cache
uses: actions/cache@v3 uses: actions/cache@v4
with: with:
path: | path: |
~/.cargo/bin/
~/.cargo/registry/index/ ~/.cargo/registry/index/
~/.cargo/registry/cache/ ~/.cargo/registry/cache/
~/.cargo/git/db/ ~/.cargo/git/db/
target/ target/
key: zpk-cargo-${{ steps.hash.outputs.hash }} key: cargo-${{ steps.toolchain.outputs.cachekey }}-${{ hashFiles('Cargo.lock') }}
restore-keys: | restore-keys: |
zpk-cargo- cargo-${{ steps.toolchain.outputs.cachekey }}-
cargo-
- name: Run fmt - name: Run fmt
run: cargo fmt --all --check run: cargo fmt --all --check
@@ -45,13 +43,19 @@ jobs:
- name: Run clippy - name: Run clippy
run: cargo clippy -- -D warnings run: cargo clippy -- -D warnings
- name: Download apk
run: |
wget -O apk https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic//v2.14.10/x86_64/apk.static
chmod +x apk
echo "$(pwd)" >>"$GITHUB_PATH"
- name: Run unit tests - name: Run unit tests
run: cargo test run: cargo test
- name: Build binary - name: Build binary
run: cargo build run: cargo build --target x86_64-unknown-linux-musl
- name: Start test container - name: Start integration test container
id: container id: container
run: | run: |
id="$(docker run --rm --privileged -d alpine:3.21 tail -f /dev/null)" id="$(docker run --rm --privileged -d alpine:3.21 tail -f /dev/null)"
@@ -60,17 +64,17 @@ jobs:
- name: Copy scripts - name: Copy scripts
run: | run: |
docker cp ./scripts/integration.sh "$ID":/tmp/ docker cp ./scripts/integration.sh "$ID":/tmp/
docker cp ./target/debug/zpk "$ID":/usr/bin/ docker cp ./target/x86_64-unknown-linux-musl/debug/zpk "$ID":/usr/bin/
env: env:
ID: ${{ steps.container.outputs.id }} ID: ${{ steps.container.outputs.id }}
- name: Run tests - name: Run integration tests
run: docker exec -i -u 0 "$ID" /tmp/integration.sh run: docker exec -i -u 0 "$ID" /tmp/integration.sh
env: env:
ID: ${{ steps.container.outputs.id }} ID: ${{ steps.container.outputs.id }}
- name: Stop test container - name: Stop integration test container
if: always() if: always()
run: docker stop "$ID" run: docker stop -t0 "$ID"
env: env:
ID: ${{ steps.container.outputs.id }} ID: ${{ steps.container.outputs.id }}

View File

@@ -5,6 +5,6 @@
"group:allNonMajor", "group:allNonMajor",
"schedule:monthly", "schedule:monthly",
], ],
"enabledManagers": ["cargo"], "enabledManagers": ["cargo", "github-actions"],
"osvVulnerabilityAlerts": true "osvVulnerabilityAlerts": true
} }

74
Cargo.lock generated
View File

@@ -174,13 +174,13 @@ dependencies = [
[[package]] [[package]]
name = "confy" name = "confy"
version = "0.6.1" version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45b1f4c00870f07dc34adcac82bb6a72cc5aabca8536ba1797e01df51d2ce9a0" checksum = "f29222b549d4e3ded127989d523da9e928918d0d0d7f7c1690b439d0d538bae9"
dependencies = [ dependencies = [
"directories", "directories 6.0.0",
"serde", "serde",
"thiserror", "thiserror 2.0.12",
"toml", "toml",
] ]
@@ -200,7 +200,16 @@ version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"
dependencies = [ dependencies = [
"dirs-sys", "dirs-sys 0.4.1",
]
[[package]]
name = "directories"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d"
dependencies = [
"dirs-sys 0.5.0",
] ]
[[package]] [[package]]
@@ -211,10 +220,22 @@ checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
dependencies = [ dependencies = [
"libc", "libc",
"option-ext", "option-ext",
"redox_users", "redox_users 0.4.6",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
[[package]]
name = "dirs-sys"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
dependencies = [
"libc",
"option-ext",
"redox_users 0.5.0",
"windows-sys 0.59.0",
]
[[package]] [[package]]
name = "env_logger" name = "env_logger"
version = "0.10.2" version = "0.10.2"
@@ -512,7 +533,18 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
dependencies = [ dependencies = [
"getrandom", "getrandom",
"libredox", "libredox",
"thiserror", "thiserror 1.0.64",
]
[[package]]
name = "redox_users"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"
dependencies = [
"getrandom",
"libredox",
"thiserror 2.0.12",
] ]
[[package]] [[package]]
@@ -660,7 +692,16 @@ version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl 1.0.64",
]
[[package]]
name = "thiserror"
version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
dependencies = [
"thiserror-impl 2.0.12",
] ]
[[package]] [[package]]
@@ -674,6 +715,17 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "thiserror-impl"
version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.8.19" version = "0.8.19"
@@ -748,7 +800,7 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [ dependencies = [
"windows-sys 0.48.0", "windows-sys 0.59.0",
] ]
[[package]] [[package]]
@@ -943,8 +995,8 @@ dependencies = [
"cmd_lib", "cmd_lib",
"confy", "confy",
"ctrlc", "ctrlc",
"directories", "directories 5.0.1",
"dirs-sys", "dirs-sys 0.4.1",
"eyre", "eyre",
"nix", "nix",
"rand", "rand",

View File

@@ -8,7 +8,7 @@ edition = "2021"
[dependencies] [dependencies]
clap = { version = "4.5.4", features = ["derive", "string"] } clap = { version = "4.5.4", features = ["derive", "string"] }
cmd_lib = "1.9.3" cmd_lib = "1.9.3"
confy = "0.6.1" confy = "1.0.0"
ctrlc = "3.4.4" ctrlc = "3.4.4"
directories = "5.0.1" directories = "5.0.1"
dirs-sys = "0.4.1" dirs-sys = "0.4.1"

View File

@@ -18,7 +18,7 @@ fn get_repo_dir_from(path: &Path) -> eyre::Result<String> {
.lines() .lines()
.filter(|line| line.starts_with("REPODEST=")) .filter(|line| line.starts_with("REPODEST="))
.map(|line| line.trim_start_matches("REPODEST=")) .map(|line| line.trim_start_matches("REPODEST="))
.last(); .next_back();
let home_dir = dirs_sys::home_dir().unwrap(); let home_dir = dirs_sys::home_dir().unwrap();
let repo_dir = PathBuf::from(if let Some(repodest) = repodest { let repo_dir = PathBuf::from(if let Some(repodest) = repodest {
// This should probably be done with proper shell interpolation. // This should probably be done with proper shell interpolation.