fdo-rs / fido-device-onboard-rs

An implementation of the FIDO Device Onboard (FDO) spec written in Rust.
BSD 3-Clause "New" or "Revised" License
58 stars 33 forks source link

CI: Add FDO container integration test CI #526

Closed henrywang closed 1 year ago

henrywang commented 1 year ago

Add FDO container integration test CI.

  1. Integration test will be triggered by PR comment /test-container or /test-all
  2. A fix for make rpm included
  3. This PR doesn't have production code change.
7flying commented 1 year ago

@nullr0ute these changes on the Makefile and make-ventored-tarfile.sh files allow us to build the RPM, but the process fails due to missed dependencies since it looks like we are not vendoring them (see below), shouldn't we allow to vendor them at least in CI?

Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.vALAX6
+ umask 022
+ cd /home/idiez/code/repos/fedora-iot/tests/fido-device-onboard-rs/rpmbuild/BUILD
+ cd fido-device-onboard-rs-93fb699b280e00d6c2c6c5a830cb357bd7314ad3
+ /usr/bin/cargo2rpm --path Cargo.toml buildrequires --all-features --with-check
+ RPM_EC=0
++ jobs -p
+ exit 0
error: Failed build dependencies:
    (crate(anyhow/default) >= 1.0.0 with crate(anyhow/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(assert-str/default) >= 0.1.0 with crate(assert-str/default) < 0.2.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(async-trait/default) >= 0.1.0 with crate(async-trait/default) < 0.2.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(aws-nitro-enclaves-cose/default) >= 0.4.0 with crate(aws-nitro-enclaves-cose/default) < 0.5.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(byteorder/default) >= 1.0.0 with crate(byteorder/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(cbindgen/default) >= 0.24.3 with crate(cbindgen/default) < 0.25.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(ciborium/default) >= 0.2.0 with crate(ciborium/default) < 0.3.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(clap/default) >= 4.2.0 with crate(clap/default) < 5.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(clap/derive) >= 4.2.0 with crate(clap/derive) < 5.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(config/default) >= 0.13.3 with crate(config/default) < 0.14.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(devicemapper/default) >= 0.33.0 with crate(devicemapper/default) < 0.34.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(futures/default) >= 0.3.0 with crate(futures/default) < 0.4.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(glob/default) >= 0.3.1 with crate(glob/default) < 0.4.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(hex/default) >= 0.4.0 with crate(hex/default) < 0.5.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(http/default) >= 0.2.0 with crate(http/default) < 0.3.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(lazy_static/default) >= 1.4.0 with crate(lazy_static/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(libc/default) >= 0.2.0 with crate(libc/default) < 0.3.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(libcryptsetup-rs/default) >= 0.8.0 with crate(libcryptsetup-rs/default) < 0.9.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(libcryptsetup-rs/mutex) >= 0.8.0 with crate(libcryptsetup-rs/mutex) < 0.9.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(log/default) >= 0.4.0 with crate(log/default) < 0.5.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(maplit/default) >= 1.0.0 with crate(maplit/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(nix/default) >= 0.26.0 with crate(nix/default) < 0.27.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(num-derive/default) >= 0.3.0 with crate(num-derive/default) < 0.4.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(num-traits/default) >= 0.2.0 with crate(num-traits/default) < 0.3.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(openssl-kdf/allow_custom) >= 0.4.1 with crate(openssl-kdf/allow_custom) < 0.5.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(openssl-kdf/default) >= 0.4.1 with crate(openssl-kdf/default) < 0.5.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(openssl/default) >= 0.10.55 with crate(openssl/default) < 0.11.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(paste/default) >= 1.0.0 with crate(paste/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(pem/default) >= 2.0.0 with crate(pem/default) < 3.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(pretty_assertions/default) >= 1.0.0 with crate(pretty_assertions/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(pretty_env_logger/default) >= 0.4.0 with crate(pretty_env_logger/default) < 0.5.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(rand/default) >= 0.8.0 with crate(rand/default) < 0.9.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(rand/default) >= 0.8.4 with crate(rand/default) < 0.9.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(regex/default) >= 1.3.7 with crate(regex/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(reqwest/default) >= 0.11.0 with crate(reqwest/default) < 0.12.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(reqwest/json) >= 0.11.0 with crate(reqwest/json) < 0.12.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(reqwest/native-tls) >= 0.11.0 with crate(reqwest/native-tls) < 0.12.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(secrecy/default) >= 0.8.0 with crate(secrecy/default) < 0.9.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serde/default) >= 1.0.0 with crate(serde/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serde/derive) >= 1.0.0 with crate(serde/derive) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serde_bytes/default) >= 0.11.0 with crate(serde_bytes/default) < 0.12.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serde_cbor/default) >= 0.11.0 with crate(serde_cbor/default) < 0.12.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serde_json/default) >= 1.0.0 with crate(serde_json/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serde_repr/default) >= 0.1.6 with crate(serde_repr/default) < 0.2.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serde_tuple/default) >= 0.5.0 with crate(serde_tuple/default) < 0.6.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serde_yaml/default) >= 0.9.0 with crate(serde_yaml/default) < 0.10.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(serial_test/default) >= 2.0.0 with crate(serial_test/default) < 3.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(sha-crypt/default) >= 0.5.0 with crate(sha-crypt/default) < 0.6.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(sys-info/default) >= 0.9.0 with crate(sys-info/default) < 0.10.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tempfile/default) >= 3.0.0 with crate(tempfile/default) < 4.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tempfile/default) >= 3.5.0 with crate(tempfile/default) < 4.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tera/default) >= 1.0.0 with crate(tera/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(thiserror/default) >= 1.0.0 with crate(thiserror/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(time/default) >= 0.3.0 with crate(time/default) < 0.4.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tokio/default) >= 1.0.0 with crate(tokio/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tokio/default) >= 1.25.0 with crate(tokio/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tokio/full) >= 1.0.0 with crate(tokio/full) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tss-esapi/default) >= 7.0.0 with crate(tss-esapi/default) < 8.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tss-esapi/default) >= 7.2.0 with crate(tss-esapi/default) < 8.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tss-esapi/generate-bindings) >= 7.0.0 with crate(tss-esapi/generate-bindings) < 8.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(tss-esapi/generate-bindings) >= 7.2.0 with crate(tss-esapi/generate-bindings) < 8.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(url/default) >= 2.0.0 with crate(url/default) < 3.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(users/default) >= 0.11.0 with crate(users/default) < 0.12.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(uuid/default) >= 1.3.0 with crate(uuid/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(uuid/v4) >= 1.3.0 with crate(uuid/v4) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(warp-sessions/default) >= 1.0.0 with crate(warp-sessions/default) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(warp/default) >= 0.3.0 with crate(warp/default) < 0.4.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    (crate(xattr) >= 1.0.0 with crate(xattr) < 2.0.0~) is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    crate(passwd/default) = 0.0.1 is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
    crate(shadow/default) = 0.0.1 is needed by fido-device-onboard-0.4.11-1.fc38.x86_64
henrywang commented 1 year ago

@7flying make rpm passed in https://github.com/virt-s1/kite-demo/actions/runs/5456360193/jobs/9929075613.

7flying commented 1 year ago

@7flying make rpm passed in https://github.com/virt-s1/kite-demo/actions/runs/5456360193/jobs/9929075613.

yes, the %buildrequires is only triggered in Fedora

puiterwijk commented 1 year ago

Would it be possible to change the CI scripts to generate keys/passwords on hte fly, so we don't commit keys/passwords to the repo? This is going to cause warnings from secret scanners.

puiterwijk commented 1 year ago

@7flying @henrywang ^