docker: Add mdbook to pipeline.
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
26
.github/workflows/package.yml
vendored
26
.github/workflows/package.yml
vendored
@@ -37,6 +37,32 @@ on:
|
|||||||
description: Matrix inclusions
|
description: Matrix inclusions
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
book:
|
||||||
|
if: >
|
||||||
|
!failure() && !cancelled()
|
||||||
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0])
|
||||||
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["default"]')[0])
|
||||||
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0])
|
||||||
|
|
||||||
|
name: Book
|
||||||
|
uses: ./.github/workflows/bake.yml
|
||||||
|
with:
|
||||||
|
bake_targets: '["book"]'
|
||||||
|
cargo_profiles: '["release"]'
|
||||||
|
feat_sets: '["default"]'
|
||||||
|
rust_toolchains: '["stable"]'
|
||||||
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
|
sys_names: ${{inputs.sys_names}}
|
||||||
|
sys_targets: ${{inputs.sys_targets}}
|
||||||
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
|
machines: ${{inputs.machines}}
|
||||||
|
excludes: ${{inputs.excludes}}
|
||||||
|
includes: ${{inputs.includes}}
|
||||||
|
artifact: >
|
||||||
|
{
|
||||||
|
"book": {"dst": "book", "src": "/book"},
|
||||||
|
}
|
||||||
|
|
||||||
build_standalone:
|
build_standalone:
|
||||||
if: >
|
if: >
|
||||||
!failure() && !cancelled()
|
!failure() && !cancelled()
|
||||||
|
|||||||
@@ -601,6 +601,7 @@ target "install" {
|
|||||||
input = elem("target:diner", [feat_set, sys_name, sys_version, sys_target])
|
input = elem("target:diner", [feat_set, sys_name, sys_version, sys_target])
|
||||||
output = elem("target:installer", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
output = elem("target:installer", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
#docs = elem("target:docs", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
#docs = elem("target:docs", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
|
#book = elem("target:book", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -771,6 +772,53 @@ target "tests-unit" {
|
|||||||
# Workspace builds
|
# Workspace builds
|
||||||
#
|
#
|
||||||
|
|
||||||
|
target "book" {
|
||||||
|
name = elem("book", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
|
tags = [
|
||||||
|
elem_tag("book", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
|
]
|
||||||
|
target = "book"
|
||||||
|
dockerfile = "${docker_dir}/Dockerfile.cargo.book"
|
||||||
|
output = ["type=docker,compression=zstd,mode=min,compression-level=${image_compress_level}"]
|
||||||
|
matrix = cargo_rust_feat_sys
|
||||||
|
inherits = [
|
||||||
|
elem("deps-base", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
|
elem("cargo", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
|
]
|
||||||
|
contexts = {
|
||||||
|
input = elem("target:ingredients", [rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
|
}
|
||||||
|
dockerfile-inline =<<EOF
|
||||||
|
FROM input AS book
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
RUN ["mdbook", "build", "-d", "/book", "/usr/src/tuwunel"]
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
target "docs" {
|
||||||
|
name = elem("docs", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
|
tags = [
|
||||||
|
elem_tag("docs", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
|
]
|
||||||
|
matrix = cargo_rust_feat_sys
|
||||||
|
inherits = [
|
||||||
|
elem("deps-build", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
|
elem("build", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
|
]
|
||||||
|
contexts = {
|
||||||
|
input = (use_chef == "true"?
|
||||||
|
elem("target:deps-build", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]):
|
||||||
|
elem("target:ingredients", [rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
|
)
|
||||||
|
}
|
||||||
|
args = {
|
||||||
|
cargo_cmd = "doc"
|
||||||
|
cargo_args = "--no-deps --document-private-items"
|
||||||
|
RUSTDOCFLAGS = "-D warnings"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
target "build-bins" {
|
target "build-bins" {
|
||||||
name = elem("build-bins", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
name = elem("build-bins", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
tags = [
|
tags = [
|
||||||
@@ -837,29 +885,6 @@ target "build" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
target "docs" {
|
|
||||||
name = elem("docs", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
|
||||||
tags = [
|
|
||||||
elem_tag("docs", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
|
||||||
]
|
|
||||||
matrix = cargo_rust_feat_sys
|
|
||||||
inherits = [
|
|
||||||
elem("deps-clippy", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
|
||||||
elem("cargo", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
|
||||||
]
|
|
||||||
contexts = {
|
|
||||||
input = (use_chef == "true"?
|
|
||||||
elem("target:deps-clippy", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]):
|
|
||||||
elem("target:ingredients", [rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
|
||||||
)
|
|
||||||
}
|
|
||||||
args = {
|
|
||||||
cargo_cmd = "doc"
|
|
||||||
cargo_args = "--no-deps --document-private-items"
|
|
||||||
RUSTDOCFLAGS = "-D warnings"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
target "clippy" {
|
target "clippy" {
|
||||||
name = elem("clippy", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
name = elem("clippy", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
tags = [
|
tags = [
|
||||||
@@ -1362,6 +1387,7 @@ cargo_installs = [
|
|||||||
"cargo-arch",
|
"cargo-arch",
|
||||||
"cargo-generate-rpm",
|
"cargo-generate-rpm",
|
||||||
"lychee",
|
"lychee",
|
||||||
|
"mdbook",
|
||||||
"typos-cli",
|
"typos-cli",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user