Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/workflows/build-boot-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ jobs:
if [[ "${{ inputs.arch }}" == "x86_64" ]]; then
EXPECTED_FILES=(
"pxe/static/blobs/internal/x86_64/ipxe.efi"
"target/debug/carbide-admin-cli"
"target/debug/nico-admin-cli"
# target/debs/* checked separately
)
else
Expand Down Expand Up @@ -494,7 +494,7 @@ jobs:
# so missing files (like BFB artifacts when disabled) won't fail the build
if [[ "${{ inputs.build_type }}" == "boot" ]]; then
if [[ "${{ inputs.arch }}" == "x86_64" ]]; then
ARTIFACTS='["pxe/static/blobs/internal/x86_64/ipxe.efi", "target/debug/carbide-admin-cli", "target/debs/*"]'
ARTIFACTS='["pxe/static/blobs/internal/x86_64/ipxe.efi", "target/debug/nico-admin-cli", "target/debs/*"]'
else
# Lists all expected BFB artifacts even though some may not be generated (BFB build is disabled)
# This matches GitLab CI behavior where artifact paths are listed but upload succeeds if files don't exist
Expand All @@ -518,7 +518,7 @@ jobs:
name: ${{ inputs.build_type }}-artifacts-${{ inputs.arch }}-${{ github.run_id }}
path: |
pxe/static/blobs/
target/debug/carbide-admin-cli
target/debug/nico-admin-cli
target/debs/
target/aarch64-unknown-linux-gnu/
pxe/mkosi.profiles/
Expand Down
98 changes: 49 additions & 49 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 26 additions & 25 deletions Makefile.toml
Original file line number Diff line number Diff line change
Expand Up @@ -83,52 +83,53 @@ args = [

[tasks.build-cli-ci]
category = "Build"
description = "Build carbide-admin-cli in CI"
description = "Build nico-admin-cli in CI"
workspace = false
script = '''
cargo build -p carbide-admin-cli
cargo build -p nico-admin-cli
# Emit man pages as a build artifact via the hidden `generate-man` subcommand.
cargo run -p carbide-admin-cli -- generate-man --out-dir target/man
cargo run -p nico-admin-cli -- generate-man --out-dir target/man
'''

[tasks.gen-man]
category = "Build"
description = "Generate carbide-admin-cli man pages into target/man"
description = "Generate nico-admin-cli man pages into target/man"
workspace = false
script = '''
cargo run -p carbide-admin-cli -- generate-man --out-dir target/man
cargo run -p nico-admin-cli -- generate-man --out-dir target/man
'''

[tasks.gen-cli-docs]
category = "Build"
description = "Generate the carbide-admin-cli markdown reference into docs/cli"
description = "Generate the nico-admin-cli markdown reference into docs/manuals/nico-admin-cli"
workspace = false
# `generate-cli-docs` renders each command's man page and converts it to
# markdown with pandoc, so the `pandoc` binary must be installed. It writes one
# directory per top-level command under docs/cli/commands plus the four domain
# index files (Hardware/Network/Tenant/Admin). The hand-authored pages
# (README.md, setup.md, workflows.md, rest-cli-parity.md) are left alone.
# directory per top-level command under docs/manuals/nico-admin-cli/commands
# plus the four domain index files (Hardware/Network/Tenant/Admin). The
# hand-authored pages (README.md, setup.md, workflows.md, rest-cli-parity.md)
# are left alone.
script = '''
cargo run -p carbide-admin-cli -- generate-cli-docs --out-dir docs/cli
cargo run -p nico-admin-cli -- generate-cli-docs --out-dir docs/manuals/nico-admin-cli
'''

[tasks.check-cli-docs]
category = "Test"
description = "Fail if docs/cli is stale or a command is missing a domain"
description = "Fail if docs/manuals/nico-admin-cli is stale or a command is missing a domain"
workspace = false
# Keeps the checked-in CLI reference honest as commands are added. First the
# domain-mapping test fails CI if a new command is not categorized in
# cli_domains.yaml; then we regenerate and fail if the result differs from
# what is committed (regenerate locally with `cargo make gen-cli-docs`).
script = '''
cargo test -p carbide-admin-cli cfg::cli_options::tests
cargo run -p carbide-admin-cli -- generate-cli-docs --out-dir docs/cli
git diff --exit-code -- docs/cli
cargo test -p nico-admin-cli cfg::cli_options::tests
cargo run -p nico-admin-cli -- generate-cli-docs --out-dir docs/manuals/nico-admin-cli
git diff --exit-code -- docs/manuals/nico-admin-cli
'''

[tasks.build-cli]
category = "Build"
description = "Build carbide-admin-cli locally using debian container. Ensures correct GCC version is used."
description = "Build nico-admin-cli locally using debian container. Ensures correct GCC version is used."
workspace = false
script = '''
docker run \
Expand All @@ -139,7 +140,7 @@ docker run \
--volume $CARGO_HOME:/cargo \
--env CARGO_HOME=/cargo \
"${BUILD_CONTAINER_X86_URL}" \
cargo build -p carbide-admin-cli --release
cargo build -p nico-admin-cli --release
'''
dependencies = ["check-cargo-home-set"]

Expand Down Expand Up @@ -197,7 +198,7 @@ script = '''
set -e
if [ -z "$CARGO_HOME" ]; then CARGO_HOME="$HOME/.cargo"; fi
docker build -f ${REPO_ROOT}/dev/docker/Dockerfile.build-container-x86_64 -t carbide-build-x86_64 ${REPO_ROOT}/dev/docker
echo "Image carbide-build-x86_64 built. Run: cargo make cargo-docker -- build -p carbide-admin-cli --release"
echo "Image carbide-build-x86_64 built. Run: cargo make cargo-docker -- build -p nico-admin-cli --release"
'''

[tasks.build-cargo-docker-image-minimal]
Expand All @@ -207,7 +208,7 @@ workspace = false
script = '''
set -e
docker build -f ${REPO_ROOT}/dev/docker/Dockerfile.cargo-docker-minimal -t carbide-build-minimal ${REPO_ROOT}/dev/docker
echo "Image carbide-build-minimal built. Run: cargo make cargo-docker-minimal -- build -p carbide-admin-cli --release"
echo "Image carbide-build-minimal built. Run: cargo make cargo-docker-minimal -- build -p nico-admin-cli --release"
'''

[tasks.build-pxe-build-container]
Expand Down Expand Up @@ -269,7 +270,7 @@ dependencies = ["check-cargo-home-set"]
script = '''
set -e
if [ -z "$CARGO_HOME" ]; then CARGO_HOME="$HOME/.cargo"; fi
CARGO_ARGS="${CARGO_MAKE_TASK_ARGS:-build -p carbide-admin-cli --release}"
CARGO_ARGS="${CARGO_MAKE_TASK_ARGS:-build -p nico-admin-cli --release}"
CARGO_ARGS="${CARGO_ARGS//;/ }"
CARGO_ARGS="${CARGO_ARGS#-- }"
docker run --rm \
Expand Down Expand Up @@ -307,7 +308,7 @@ script = '''
set -e
if [ -z "$CARGO_HOME" ]; then CARGO_HOME="$HOME/.cargo"; fi
# cargo-make may join task args with semicolons; normalize to spaces and strip leading --
CARGO_ARGS="${CARGO_MAKE_TASK_ARGS:-build -p carbide-admin-cli --release}"
CARGO_ARGS="${CARGO_MAKE_TASK_ARGS:-build -p nico-admin-cli --release}"
CARGO_ARGS="${CARGO_ARGS//;/ }"
CARGO_ARGS="${CARGO_ARGS#-- }"
# Pass DATABASE_URL into container so DB tests can connect (use host.docker.internal from Mac)
Expand Down Expand Up @@ -364,7 +365,7 @@ docker run --rm \

[tasks.build-cli-cross-aarch64]
category = "Build"
description = "Cross compile forge-scout and carbide-admin-cli for aarch64, intended only for local artifact builds."
description = "Cross compile forge-scout and nico-admin-cli for aarch64, intended only for local artifact builds."
workspace = false
script = '''
docker run --rm -v $REPO_ROOT:/carbide --user $(id -u):$(id -g) \
Expand All @@ -376,11 +377,11 @@ docker run --rm -v $REPO_ROOT:/carbide --user $(id -u):$(id -g) \
"--release" \
"--target=aarch64-unknown-linux-gnu" \
"-p" \
"carbide-admin-cli" \
"nico-admin-cli" \
"-p" \
"carbide-scout"
docker run --rm -v $REPO_ROOT:/carbide --user $(id -u):$(id -g) build-artifacts-container-cross-aarch64:latest "aarch64-linux-gnu-strip" \
"/carbide/target/aarch64-unknown-linux-gnu/release/carbide-admin-cli" \
"/carbide/target/aarch64-unknown-linux-gnu/release/nico-admin-cli" \
"/carbide/target/aarch64-unknown-linux-gnu/release/forge-scout"
'''
dependencies = ["check-cargo-home-set", "build-cross-docker-image"]
Expand Down Expand Up @@ -613,7 +614,7 @@ args = ["clippy", "--locked", "--all-targets", "--all-features", "--release"]

[tasks.build-debug-test-prerequisites]
script = '''
cargo build -p carbide-agent -p carbide-admin-cli -p carbide-api
cargo build -p carbide-agent -p nico-admin-cli -p carbide-api
'''
workspace = false

Expand Down Expand Up @@ -651,7 +652,7 @@ for artifact in \
carbide-api \
carbide \
carbide-dns \
carbide-admin-cli \
nico-admin-cli \
carbide-dsx-exchange-consumer \
forge-dpu-agent \
forge-dhcp-server \
Expand Down
Loading
Loading