Skip to content

Commit 570ca57

Browse files
authored
Merge pull request #1 from koditoriet/github-ci
Add CI workflows.
2 parents a13773a + da0d440 commit 570ca57

File tree

6 files changed

+55
-11
lines changed

6 files changed

+55
-11
lines changed

.github/workflows/unit-tests.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Run unit tests
2+
on: [push]
3+
jobs:
4+
unit-tests:
5+
runs-on: self-hosted
6+
steps:
7+
- run: curl https://sh.rustup.rs -sSf | sh -s -- -y
8+
- name: Check out repo
9+
uses: actions/checkout@v4
10+
- run: |
11+
. "$HOME/.cargo/env"
12+
cargo test
13+
dbus-run-session cargo test --features=install,dbus-tests
14+
clippy:
15+
runs-on: self-hosted
16+
steps:
17+
- run: curl https://sh.rustup.rs -sSf | sh -s -- -y
18+
- name: Check out repo
19+
uses: actions/checkout@v4
20+
- run: |
21+
. "$HOME/.cargo/env"
22+
cargo clippy
23+
cargo clippy --features=install,dbus-tests

Makefile

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,18 @@ totpm-$(VERSION).tar.gz: $(SOURCES)
1717
totpm-$(VERSION)-1.fc$(FEDORA_RELEASE).src.rpm: totpm-$(VERSION).tar.gz
1818
fedpkg --release f$(FEDORA_RELEASE) srpm
1919

20-
totpm-$(VERSION)-1.fc$(FEDORA_RELEASE).$(ARCH).rpm: totpm-$(VERSION)-1.fc$(FEDORA_RELEASE).src.rpm
21-
fedpkg --release f$(FEDORA_RELEASE) mockbuild
20+
totpm-$(VERSION)-1.fc$(FEDORA_RELEASE).$(ARCH).rpm: totpm-$(VERSION)-1.fc$(FEDORA_RELEASE).src.rpm fedora-builder/Dockerfile fedora-builder/storage.conf
21+
podman build \
22+
-t totpm-builder:$(FEDORA_RELEASE) \
23+
--build-arg FEDORA_RELEASE=$(FEDORA_RELEASE) \
24+
fedora-builder
25+
26+
podman run \
27+
--privileged \
28+
-v .:/build:rw,z \
29+
totpm-builder:$(FEDORA_RELEASE) \
30+
fedpkg --release f$(FEDORA_RELEASE) mockbuild
31+
2232
cp -a results_totpm/$(VERSION)/1.fc$(FEDORA_RELEASE)/totpm-$(VERSION)-1.fc$(FEDORA_RELEASE).$(ARCH).rpm ./
2333

2434
.PHONY: fedora-package

fedora-builder/Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
ARG FEDORA_RELEASE=40
2+
FROM fedora:${FEDORA_RELEASE}
3+
VOLUME /build
4+
RUN dnf -y install jq cargo fedpkg
5+
RUN mkdir -p /run/containers/storage /var/lib/containers/storage
6+
COPY ./storage.conf /etc/containers/storage.conf
7+
WORKDIR /build

fedora-builder/storage.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[storage]
2+
driver = "vfs"
3+
runroot = "/run/containers/storage"
4+
graphroot = "/var/lib/containers/storage"

src/commands/init.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ mod tests {
177177
use super::*;
178178

179179
#[test]
180-
fn init_creates_all_necessary_and_files_with_correct_permissions() {
180+
fn init_creates_all_necessary_secrets_and_files_with_correct_permissions() {
181181
let swtpm = SwTpm::new();
182182
let dir = tempdir().unwrap();
183183
let cfg_path = dir.path().join("totpm.conf");
@@ -298,6 +298,6 @@ mod tests {
298298
}
299299

300300
fn get_user_name() -> String {
301-
std::env::var("USER").unwrap_or("root".to_string())
301+
String::from_utf8(Command::new("whoami").output().unwrap().stdout).unwrap().trim().to_string()
302302
}
303303
}

src/presence_verification/fprintd.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ impl <'a> FprintDevice<'a> {
114114
true
115115
}).or(fail("fprintd: unable to listen for signal"))?;
116116

117-
self.proxy.method_call(FPRINTD_DEVICE_IFACE, "VerifyStart", ("any",))
117+
self.proxy.method_call::<(), _, _, _>(FPRINTD_DEVICE_IFACE, "VerifyStart", ("any",))
118118
.or(fail("fprintd: unable to start fingerprint verification"))?;
119119

120120
eprintln!("place your finger on the fingerprint reader");
@@ -129,15 +129,15 @@ impl <'a> FprintDevice<'a> {
129129
if let Some(status) = *scan_status_clone.lock().unwrap() {
130130
match status {
131131
Status::Match => {
132-
self.proxy.method_call(FPRINTD_DEVICE_IFACE, "VerifyStop", ())
132+
self.proxy.method_call::<(), _, _, _>(FPRINTD_DEVICE_IFACE, "VerifyStop", ())
133133
.or(fail("fprintd: unable to stop fingerprint verification"))?;
134134
return Ok(true)
135135
},
136136
Status::NoMatch => {
137137
eprintln!("fingerprint not recognized, try again");
138-
self.proxy.method_call(FPRINTD_DEVICE_IFACE, "VerifyStop", ())
138+
self.proxy.method_call::<(), _, _, _>(FPRINTD_DEVICE_IFACE, "VerifyStop", ())
139139
.or(fail("fprintd: unable to stop fingerprint verification"))?;
140-
self.proxy.method_call(FPRINTD_DEVICE_IFACE, "VerifyStart", ("any",))
140+
self.proxy.method_call::<(), _, _, _>(FPRINTD_DEVICE_IFACE, "VerifyStart", ("any",))
141141
.or(fail("fprintd: unable to restart fingerprint verification"))?;
142142
},
143143
Status::RetryScan | Status::SwipeTooShort | Status::FingerNotCentered | Status::RemoveAndRetry => {
@@ -148,15 +148,15 @@ impl <'a> FprintDevice<'a> {
148148
return fail("fprintd: fingerprint reader disconnected")
149149
},
150150
Status::UnknownError => {
151-
self.proxy.method_call(FPRINTD_DEVICE_IFACE, "VerifyStop", ())
151+
self.proxy.method_call::<(), _, _, _>(FPRINTD_DEVICE_IFACE, "VerifyStop", ())
152152
.or(fail("fprintd: unable to stop fingerprint verification"))?;
153153
return fail("fprintd: fingerprint scan failed with unknown error")
154154
},
155155
}
156156

157157
}
158158
}
159-
self.proxy.method_call(FPRINTD_DEVICE_IFACE, "VerifyStop", ())
159+
self.proxy.method_call::<(), _, _, _>(FPRINTD_DEVICE_IFACE, "VerifyStop", ())
160160
.or(fail("fprintd: unable to stop fingerprint verification"))?;
161161
Ok(false)
162162
}
@@ -175,7 +175,7 @@ impl <'a> FprintDevice<'a> {
175175
device_path,
176176
Duration::from_secs(10),
177177
);
178-
proxy.method_call(FPRINTD_DEVICE_IFACE, "Claim", ("",))
178+
proxy.method_call::<(), _, _, _>(FPRINTD_DEVICE_IFACE, "Claim", ("",))
179179
.or(Err(super::Error::ImplementationSpecificError("fprintd: unable to claim device".to_owned())))?;
180180
Ok(FprintDevice { proxy, connection: conn })
181181
}

0 commit comments

Comments
 (0)