Skip to content

Commit 80716d9

Browse files
committed
Fixes building documentation for Docs.rs
- Adds a CI test for that is supposed to mimic how the documentation is being built when a new release of the crate is released. - Fixes problem with building the documentation when releasing the crate. Signed-off-by: Jesper Brynolf <[email protected]>
1 parent 2df045f commit 80716d9

File tree

2 files changed

+33
-16
lines changed

2 files changed

+33
-16
lines changed

.github/workflows/ci.yml

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
name: Check spelling
1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: actions/checkout@v4
12+
- uses: actions/checkout@v5
1313
- name: Check spelling
1414
uses: codespell-project/actions-codespell@v1
1515
with:
@@ -19,15 +19,15 @@ jobs:
1919
name: Check formatting
2020
runs-on: ubuntu-latest
2121
steps:
22-
- uses: actions/checkout@v4
22+
- uses: actions/checkout@v5
2323
- name: Check formatting
2424
run: cargo fmt --all -- --check
2525
# Check that it builds with the Minimum Supported Rust Version
2626
msrv:
2727
name: Check minimum supported rust version (MSRV)
2828
runs-on: ubuntu-latest
2929
steps:
30-
- uses: actions/checkout@v4
30+
- uses: actions/checkout@v5
3131
- name: Build the container
3232
run: docker build -t ubuntucontainer tss-esapi/tests/ --file tss-esapi/tests/Dockerfile-ubuntu --target tpm2-tools
3333
- name: Run the container
@@ -38,7 +38,7 @@ jobs:
3838
name: Ubuntu tests
3939
runs-on: ubuntu-latest
4040
steps:
41-
- uses: actions/checkout@v4
41+
- uses: actions/checkout@v5
4242
- name: Build the container
4343
run: docker build -t ubuntucontainer tss-esapi/tests/ --file tss-esapi/tests/Dockerfile-ubuntu --target tpm2-tools
4444
- name: Run the container
@@ -50,7 +50,7 @@ jobs:
5050
name: Ubuntu tests on v4.x.y of tpm2-tss libraries found using pkg-config --target tpm2-tools
5151
runs-on: ubuntu-latest
5252
steps:
53-
- uses: actions/checkout@v4
53+
- uses: actions/checkout@v5
5454
- name: Build the container
5555
run: docker build -t ubuntucontainer tss-esapi/tests/ --build-arg TPM2_TSS_VERSION=4.1.3 --file tss-esapi/tests/Dockerfile-ubuntu --target tpm2-tools
5656
- name: Run the container
@@ -60,7 +60,7 @@ jobs:
6060
name: Ubuntu tests on v4.x.y of tpm2-tss libraries found using a path
6161
runs-on: ubuntu-latest
6262
steps:
63-
- uses: actions/checkout@v4
63+
- uses: actions/checkout@v5
6464
- name: Build the container
6565
run: docker build -t ubuntucontainer tss-esapi/tests/ --build-arg TPM2_TSS_VERSION=4.1.3 --file tss-esapi/tests/Dockerfile-ubuntu --target tpm2-tss-install-dir
6666
- name: Run the container
@@ -71,7 +71,7 @@ jobs:
7171
# We just build a container... GitHub doesn't like Fedora :(
7272
runs-on: ubuntu-latest
7373
steps:
74-
- uses: actions/checkout@v4
74+
- uses: actions/checkout@v5
7575
- name: Build the container
7676
run: docker build -t fedoracontainer tss-esapi/tests/ --file tss-esapi/tests/Dockerfile-fedora
7777
- name: Run the tests
@@ -82,7 +82,7 @@ jobs:
8282
# We just build a container... GitHub doesn't like Fedora :(
8383
runs-on: ubuntu-latest
8484
steps:
85-
- uses: actions/checkout@v4
85+
- uses: actions/checkout@v5
8686
- name: Build the container
8787
run: docker build -t fedoracontainer tss-esapi/tests/ --file tss-esapi/tests/Dockerfile-fedora-rawhide
8888
- name: Run the tests
@@ -92,7 +92,7 @@ jobs:
9292
name: Valgrind test run
9393
runs-on: ubuntu-latest
9494
steps:
95-
- uses: actions/checkout@v4
95+
- uses: actions/checkout@v5
9696
- name: Build the container
9797
run: docker build -t ubuntucontainer tss-esapi/tests/ --file tss-esapi/tests/Dockerfile-ubuntu --target tpm2-tools
9898
- name: Run the tests
@@ -103,7 +103,7 @@ jobs:
103103
name: Check documentation
104104
runs-on: ubuntu-latest
105105
steps:
106-
- uses: actions/checkout@v4
106+
- uses: actions/checkout@v5
107107
- name: Build the container
108108
run: docker build -t ubuntucontainer tss-esapi/tests/ --file tss-esapi/tests/Dockerfile-ubuntu --target tpm2-tools
109109
- name: Check documentation
@@ -114,10 +114,19 @@ jobs:
114114
name: Check Clippy lints
115115
runs-on: ubuntu-latest
116116
steps:
117-
- uses: actions/checkout@v4
117+
- uses: actions/checkout@v5
118118
- name: Build the container
119119
run: docker build -t ubuntucontainer tss-esapi/tests/ --file tss-esapi/tests/Dockerfile-ubuntu --target tpm2-tss
120120
- name: Check Clippy lints MSRV
121121
run: docker run -v $(pwd):/tmp/rust-tss-esapi -w /tmp/rust-tss-esapi/tss-esapi --env RUST_TOOLCHAIN_VERSION=1.74.0 ubuntucontainer /tmp/rust-tss-esapi/tss-esapi/tests/lint-checks.sh
122122
- name: Check Clippy lints latest
123123
run: docker run -v $(pwd):/tmp/rust-tss-esapi -w /tmp/rust-tss-esapi/tss-esapi ubuntucontainer /tmp/rust-tss-esapi/tss-esapi/tests/lint-checks.sh
124+
doc-rs:
125+
name: Check Docs.rs compatibility
126+
runs-on: ubuntu-latest
127+
env:
128+
RUSTDOCFLAGS: -Dwarnings
129+
steps:
130+
- uses: actions/checkout@v5
131+
- uses: dtolnay/rust-toolchain@nightly
132+
- uses: dtolnay/install@cargo-docs-rs

tss-esapi/build.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,26 @@
22
// SPDX-License-Identifier: Apache-2.0
33
use semver::{Version, VersionReq};
44

5+
const TPM2_TSS_MINIMUM_VERSION: Version = Version::new(4, 1, 3);
6+
57
fn main() {
68
println!("cargo:rustc-check-cfg=cfg(hierarchy_is_esys_tr)");
79
println!("cargo:rustc-check-cfg=cfg(has_tss_base_rc_values_28_to_51)");
810
println!("cargo:rustc-check-cfg=cfg(has_tss_base_rc_values_52_to_53)");
911
println!("cargo:rustc-check-cfg=cfg(has_tpmu_sensitive_create)");
1012
println!("cargo:rustc-check-cfg=cfg(has_esys_tr_get_tpm_handle)");
1113

12-
let tss_version_string = std::env::var("DEP_TSS2_ESYS_VERSION")
13-
.expect("Failed to parse ENV variable DEP_TSS2_ESYS_VERSION as string");
14-
15-
let tss_version = Version::parse(&tss_version_string)
16-
.expect("Failed to parse the DEP_TSS2_ESYS_VERSION variable as a semver version");
14+
// If documentation for Docs.rs is being built then the version is set
15+
// to the minimum supported tpm2-tss version.
16+
let tss_version = if std::env::var("DOCS_RS").is_ok() {
17+
TPM2_TSS_MINIMUM_VERSION
18+
} else {
19+
let tss_version_string = std::env::var("DEP_TSS2_ESYS_VERSION")
20+
.expect("Failed to parse ENV variable DEP_TSS2_ESYS_VERSION as string");
21+
22+
Version::parse(&tss_version_string)
23+
.expect("Failed to parse the DEP_TSS2_ESYS_VERSION variable as a semver version")
24+
};
1725

1826
let supported_tss_version =
1927
VersionReq::parse("<5.0.0, >=2.3.3").expect("Failed to parse supported TSS version");

0 commit comments

Comments
 (0)