diff --git a/.forgejo/workflows/verify.yaml b/.forgejo/workflows/verify.yaml index a8ebe71..4440769 100644 --- a/.forgejo/workflows/verify.yaml +++ b/.forgejo/workflows/verify.yaml @@ -34,17 +34,22 @@ jobs: - name: Setup additional tooling run: .forgejo/workflows/setup-tools.sh + - name: Setup permissions for ci user + run: | + useradd -m ci && chown -R ci:ci . + git config --global --add safe.directory "$PWD" + - name: Build - run: just build + run: just ci build - name: Format - run: just format-assess + run: just ci format-assess - name: Lint - run: just lint-assess + run: just ci lint-assess - name: Cargo check - run: just check + run: just ci check - name: Test - run: just test + run: just ci test - name: Assess test coverage - run: just cover-assess + run: just ci cover-assess diff --git a/.justfile b/.justfile index 14705dd..0236f9f 100644 --- a/.justfile +++ b/.justfile @@ -435,6 +435,12 @@ choose: alias ch := choose +[script, private] +ci recipe: + su ci -c "just {{ recipe }}" + +## VARIABLES + export CARGO_TERM_COLOR := 'always' musl_target := "x86_64-unknown-linux-musl" @@ -454,4 +460,6 @@ lockfile_version := ``` | grep version | cut -d '"' -f 2 ``` +## OPTIONS + set unstable diff --git a/Cargo.lock b/Cargo.lock index 87d028d..d5037d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -854,9 +854,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ "ring", "rustls-pki-types", diff --git a/src/router/handlers/fixed.rs b/src/router/handlers/fixed.rs index 770d139..390e794 100644 --- a/src/router/handlers/fixed.rs +++ b/src/router/handlers/fixed.rs @@ -724,7 +724,7 @@ mod tests { } #[test] - fn not_found_fallback_error() { + fn not_found_asset_error() { let error = fallback("not_found.png", &Graph::default()).unwrap_err(); assert!(matches!(&error.kind, AssetErrorKind::NotFound)); @@ -736,6 +736,7 @@ mod tests { } #[cfg(test)] +#[cfg(unix)] #[expect(clippy::panic_in_result_fn)] mod serial_tests { use std::{fs, os::unix::fs::PermissionsExt as _}; @@ -755,6 +756,9 @@ mod serial_tests { permissions.set_mode(0o200); fs::set_permissions(&file, permissions)?; + let new_permissions = fs::metadata(&file)?.permissions(); + assert_eq!(new_permissions.mode() & 0o777, 0o200); + let error = fallback("unreadable.png", &Graph::default()).unwrap_err(); assert!(matches!(&error.kind, AssetErrorKind::IO));