[nexus] Support Bundle HTTP endpoint implementations #39703
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Configuration for GitHub-based CI, based on the stock GitHub Rust config. | |
# | |
name: Rust | |
on: | |
push: | |
branches: | |
- main | |
- 'rel/**' | |
pull_request: {} | |
jobs: | |
check-style: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} # see omicron#4461 | |
- name: Report cargo version | |
run: cargo --version | |
- name: Report rustfmt version | |
run: cargo fmt -- --version | |
- name: Check style | |
run: cargo fmt -- --check | |
check-omicron-deployment: | |
runs-on: ${{ matrix.os }} | |
env: | |
CARGO_INCREMENTAL: 0 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-22.04, macos-14 ] | |
steps: | |
# This repo is unstable and unnecessary: https://github.com/microsoft/linux-package-repositories/issues/34 | |
- name: Disable packages.microsoft.com repo | |
if: ${{ startsWith(matrix.os, 'ubuntu') }} | |
run: sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} # see omicron#4461 | |
- uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # v2.7.5 | |
if: ${{ github.ref != 'refs/heads/main' }} | |
- name: Report cargo version | |
run: cargo --version | |
- name: Update PATH | |
run: source "./env.sh"; echo "PATH=$PATH" >> "$GITHUB_ENV" | |
- name: Print PATH | |
run: echo $PATH | |
- name: Print GITHUB_ENV | |
run: cat "$GITHUB_ENV" | |
- name: Install Pre-Requisites | |
run: ./tools/install_builder_prerequisites.sh -y | |
- name: Set default target | |
run: cargo run --bin omicron-package -- -t default target create -r single-sled | |
- name: Check build of deployed Omicron packages | |
run: cargo run --bin omicron-package -- -t default check | |
# Note that `cargo clippy` includes `cargo check, so this ends up checking all | |
# of our (default) code. | |
clippy-lint: | |
runs-on: ubuntu-22.04 | |
env: | |
CARGO_INCREMENTAL: 0 | |
steps: | |
# This repo is unstable and unnecessary: https://github.com/microsoft/linux-package-repositories/issues/34 | |
- name: Disable packages.microsoft.com repo | |
run: sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} # see omicron#4461 | |
- uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # v2.7.5 | |
if: ${{ github.ref != 'refs/heads/main' }} | |
- name: Report cargo version | |
run: cargo --version | |
- name: Report Clippy version | |
run: cargo clippy -- --version | |
- name: Update PATH | |
run: source "./env.sh"; echo "PATH=$PATH" >> "$GITHUB_ENV" | |
- name: Print PATH | |
run: echo $PATH | |
- name: Print GITHUB_ENV | |
run: cat "$GITHUB_ENV" | |
- name: Install Pre-Requisites | |
run: ./tools/install_builder_prerequisites.sh -y | |
- name: Run Clippy Lints | |
run: cargo xtask clippy | |
check-features: | |
runs-on: ubuntu-22.04 | |
env: | |
CARGO_INCREMENTAL: 0 | |
steps: | |
# This repo is unstable and unnecessary: https://github.com/microsoft/linux-package-repositories/issues/34 | |
- name: Disable packages.microsoft.com repo | |
run: sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} # see omicron#4461 | |
- uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # v2.7.5 | |
if: ${{ github.ref != 'refs/heads/main' }} | |
- name: Report cargo version | |
run: cargo --version | |
- name: Update PATH | |
run: | | |
set -x | |
export PATH="./out/cargo-hack:$PATH" | |
source "./env.sh"; echo "PATH=$PATH" >> "$GITHUB_ENV" | |
- name: Print PATH | |
run: echo $PATH | |
- name: Print GITHUB_ENV | |
run: cat "$GITHUB_ENV" | |
- name: Install Pre-Requisites | |
run: ./tools/install_builder_prerequisites.sh -y | |
- name: Run Check on Feature Combinations (Feature-Powerset, No-Dev-Deps) | |
timeout-minutes: 120 # 2 hours | |
run: cargo xtask check-features --ci | |
# This is just a test build of docs. Publicly available docs are built via | |
# the separate "rustdocs" repo. | |
build-docs: | |
runs-on: ubuntu-22.04 | |
env: | |
CARGO_INCREMENTAL: 0 | |
steps: | |
# This repo is unstable and unnecessary: https://github.com/microsoft/linux-package-repositories/issues/34 | |
- name: Disable packages.microsoft.com repo | |
run: sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} # see omicron#4461 | |
- uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # v2.7.5 | |
if: ${{ github.ref != 'refs/heads/main' }} | |
- name: Report cargo version | |
run: cargo --version | |
- name: Update PATH | |
run: source "./env.sh"; echo "PATH=$PATH" >> "$GITHUB_ENV" | |
- name: Print PATH | |
run: echo $PATH | |
- name: Print GITHUB_ENV | |
run: cat "$GITHUB_ENV" | |
- name: Install Pre-Requisites | |
run: ./tools/install_builder_prerequisites.sh -y | |
- name: Test build documentation | |
run: RUSTDOCFLAGS="--document-private-items -D warnings" cargo doc --workspace --no-deps |