Compare commits
6 Commits
07ca0cae5a
...
renovate/d
| Author | SHA1 | Date | |
|---|---|---|---|
| 258bddf64b | |||
| 7371bd2ea9 | |||
| a4679d62cf | |||
| e6e658e014 | |||
| 8260f0db4c | |||
| 85256bf559 |
46
.github/workflows/main.yaml
vendored
46
.github/workflows/main.yaml
vendored
@@ -6,35 +6,33 @@ on:
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Lint code & run tests
|
||||
runs-on: ubuntu-22.04
|
||||
container: alpine:3.21
|
||||
name: Run lints & tests
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: apk add cargo coreutils docker git nodejs rust-clippy rustfmt tar zstd
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Get Cargo.lock hash
|
||||
id: hash
|
||||
run: |
|
||||
hash="$(sha256sum Cargo.lock | awk '{print $1}')"
|
||||
echo "hash=$hash" >>"$GITHUB_OUTPUT"
|
||||
- name: Setup rust
|
||||
uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
|
||||
id: toolchain
|
||||
with:
|
||||
toolchain: stable
|
||||
targets: x86_64-unknown-linux-musl
|
||||
components: clippy, rustfmt
|
||||
|
||||
- name: Setup cache
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin/
|
||||
~/.cargo/registry/index/
|
||||
~/.cargo/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: zpk-cargo-${{ steps.hash.outputs.hash }}
|
||||
key: cargo-${{ steps.toolchain.outputs.cachekey }}-${{ hashFiles('Cargo.lock') }}
|
||||
restore-keys: |
|
||||
zpk-cargo-
|
||||
cargo-${{ steps.toolchain.outputs.cachekey }}-
|
||||
cargo-
|
||||
|
||||
- name: Run fmt
|
||||
run: cargo fmt --all --check
|
||||
@@ -45,13 +43,19 @@ jobs:
|
||||
- name: Run clippy
|
||||
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
|
||||
run: cargo test
|
||||
|
||||
- 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
|
||||
run: |
|
||||
id="$(docker run --rm --privileged -d alpine:3.21 tail -f /dev/null)"
|
||||
@@ -60,17 +64,17 @@ jobs:
|
||||
- name: Copy scripts
|
||||
run: |
|
||||
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:
|
||||
ID: ${{ steps.container.outputs.id }}
|
||||
|
||||
- name: Run tests
|
||||
- name: Run integration tests
|
||||
run: docker exec -i -u 0 "$ID" /tmp/integration.sh
|
||||
env:
|
||||
ID: ${{ steps.container.outputs.id }}
|
||||
|
||||
- name: Stop test container
|
||||
- name: Stop integration test container
|
||||
if: always()
|
||||
run: docker stop "$ID"
|
||||
run: docker stop -t0 "$ID"
|
||||
env:
|
||||
ID: ${{ steps.container.outputs.id }}
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
"group:allNonMajor",
|
||||
"schedule:monthly",
|
||||
],
|
||||
"enabledManagers": ["cargo"],
|
||||
"enabledManagers": ["cargo", "github-actions"],
|
||||
"osvVulnerabilityAlerts": true
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ fn get_repo_dir_from(path: &Path) -> eyre::Result<String> {
|
||||
.lines()
|
||||
.filter(|line| line.starts_with("REPODEST="))
|
||||
.map(|line| line.trim_start_matches("REPODEST="))
|
||||
.last();
|
||||
.next_back();
|
||||
let home_dir = dirs_sys::home_dir().unwrap();
|
||||
let repo_dir = PathBuf::from(if let Some(repodest) = repodest {
|
||||
// This should probably be done with proper shell interpolation.
|
||||
|
||||
Reference in New Issue
Block a user