/
githubmirror
/
coreos-installer
Обзор
Документация
Войти
/
githubmirror
/
coreos-installer
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/rust.yml
259 строк
8 KB
Steven Presti
cargo: bump MSRV to 1.85.0
03 мар 2026, 21:57
03 мар 2026, 21:57
1ec754d
Код
Авторство
О чём код?
name: Rust on: push: branches: [main] pull_request: branches: [main] permissions: contents: read # s390x tests are expensive; don't waste job slots on superseded code concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: CONTAINER: registry.fedoraproject.org/fedora:latest CARGO_TERM_COLOR: always RUST_BACKTRACE: 1 # Pinned toolchain for linting ACTIONS_LINTS_TOOLCHAIN: 1.85 defaults: run: # Created by env-setup early in the job shell: 'wrap-container {0}' jobs: tests-stable: name: "Tests, stable toolchain" runs-on: ubuntu-latest strategy: # Keep x86_64 jobs alive if s390x jobs fail fail-fast: false matrix: arch: - x86_64 - s390x steps: - name: Check out repository uses: actions/checkout@v6 - name: Set up environment run: .github/workflows/env-setup shell: bash env: ARCH: ${{ matrix.arch }} TOOLCHAIN: stable - name: Cache build artifacts uses: Swatinem/rust-cache@v2 with: # rust-cache creates a separate cache key for each job definition, # but bases it on the Rust version in the host, not the container. # Specify additional fields not implied by the job name. key: ${{ matrix.arch }} - name: Install dependencies run: dnf install -y gcc git-core libzstd-devel openssl-devel cpio diffutils jq xz gpg awk - name: Configure cargo run: | # Avoid OOM on emulated s390x # https://github.com/rust-lang/cargo/issues/10583 mkdir -p .cargo cat >> .cargo/config.toml <<EOF [net] git-fetch-with-cli = true EOF - name: cargo build run: cargo build --all-targets - name: cargo test run: cargo test --all-targets - name: cargo build (rdcore) run: cargo build --all-targets --features rdcore - name: cargo test (rdcore) run: cargo test --all-targets --features rdcore - name: Image tests if: ${{ matrix.arch == 'x86_64' }} run: tests/images.sh tests-msrv: name: "Tests, minimum supported toolchain" runs-on: ubuntu-latest strategy: # Keep x86_64 jobs alive if s390x jobs fail fail-fast: false matrix: arch: - x86_64 - s390x steps: - name: Check out repository uses: actions/checkout@v6 - name: Detect crate MSRV shell: bash run: | msrv=$(cargo metadata --format-version 1 --no-deps | \ jq -r '.packages | .[].rust_version') echo "Crate MSRV: $msrv" echo "MSRV=$msrv" >> $GITHUB_ENV - name: Set up environment run: .github/workflows/env-setup shell: bash env: ARCH: ${{ matrix.arch }} TOOLCHAIN: ${{ env.MSRV }} - name: Cache build artifacts uses: Swatinem/rust-cache@v2 with: # rust-cache creates a separate cache key for each job definition, # but bases it on the Rust version in the host, not the container. # Specify additional fields not implied by the job name, plus the # numeric MSRV as an optimization to ignore the old cache after the # MSRV changes. key: ${{ matrix.arch }}-${{ env.MSRV }} - name: Install dependencies run: dnf install -y gcc git-core libzstd-devel openssl-devel cpio diffutils jq xz gpg awk - name: Configure cargo run: | # Avoid OOM on emulated s390x # https://github.com/rust-lang/cargo/issues/10583 mkdir -p .cargo cat >> .cargo/config.toml <<EOF [net] git-fetch-with-cli = true EOF - name: cargo build run: cargo build --all-targets - name: cargo test run: cargo test --all-targets - name: cargo build (rdcore) run: cargo build --all-targets --features rdcore - name: cargo test (rdcore) run: cargo test --all-targets --features rdcore - name: Image tests if: ${{ matrix.arch == 'x86_64' }} run: tests/images.sh lints: name: "Lints, pinned toolchain" runs-on: ubuntu-latest strategy: # Keep x86_64 jobs alive if s390x jobs fail fail-fast: false matrix: arch: - x86_64 - s390x steps: - name: Check out repository uses: actions/checkout@v6 - name: Set up environment run: .github/workflows/env-setup shell: bash env: ARCH: ${{ matrix.arch }} TOOLCHAIN: ${{ env.ACTIONS_LINTS_TOOLCHAIN }} COMPONENTS: rustfmt,clippy - name: Cache build artifacts uses: Swatinem/rust-cache@v2 with: # rust-cache creates a separate cache key for each job definition, # but bases it on the Rust version in the host, not the container. # Specify additional fields not implied by the job name, plus the # numeric version as an optimization to ignore the old cache after # the lint toolchain changes. key: ${{ matrix.arch }}-${{ env.ACTIONS_LINTS_TOOLCHAIN }} - name: Install dependencies run: dnf install -y gcc git-core libzstd-devel openssl-devel awk - name: Configure cargo run: | # Avoid OOM on emulated s390x # https://github.com/rust-lang/cargo/issues/10583 mkdir -p .cargo cat >> .cargo/config.toml <<EOF [net] git-fetch-with-cli = true EOF - name: cargo fmt (check) run: cargo fmt -- --check -l - name: cargo clippy (warnings) run: cargo clippy --all-targets -- -D warnings - name: cargo clippy (rdcore, warnings) run: cargo clippy --all-targets --features rdcore -- -D warnings tests-other-channels: name: "Tests, unstable toolchain" runs-on: ubuntu-latest continue-on-error: true strategy: matrix: channel: - "beta" - "nightly" arch: - x86_64 steps: - name: Check out repository uses: actions/checkout@v6 - name: Set up environment run: .github/workflows/env-setup shell: bash env: ARCH: ${{ matrix.arch }} TOOLCHAIN: ${{ matrix.channel }} - name: Cache build artifacts uses: Swatinem/rust-cache@v2 with: # rust-cache creates a separate cache key for each job definition, # but bases it on the Rust version in the host, not the container. # Specify additional fields not implied by the job name. key: ${{ matrix.arch }}-${{ matrix.channel }} - name: Install dependencies run: dnf install -y gcc git-core libzstd-devel openssl-devel cpio diffutils jq xz gpg awk - name: Configure cargo run: | # Avoid OOM on emulated s390x # https://github.com/rust-lang/cargo/issues/10583 mkdir -p .cargo cat >> .cargo/config.toml <<EOF [net] git-fetch-with-cli = true EOF - name: cargo build run: cargo build --all-targets - name: cargo test run: cargo test --all-targets - name: cargo build (rdcore) run: cargo build --all-targets --features rdcore - name: cargo test (rdcore) run: cargo test --all-targets --features rdcore - name: Image tests if: ${{ matrix.arch == 'x86_64' }} run: tests/images.sh docs: name: "Docs" runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v6 - name: Set up environment run: .github/workflows/env-setup shell: bash env: ARCH: x86_64 TOOLCHAIN: stable - name: Cache build artifacts uses: Swatinem/rust-cache@v2 - name: Install dependencies run: dnf install -y gcc git-core libzstd-devel openssl-devel util-linux util-linux-script awk - name: cargo build run: cargo build - name: Help text line length run: tests/help.sh - name: Config file docs run: tests/docs-config-file.sh - name: Command-line docs run: | rm man/*.8 make docs if [ -n "$(git status --porcelain data docs man)" ]; then echo "Found local changes after regenerating docs:" git --no-pager diff --color=always docs man echo "Rerun 'make docs'." exit 1 fi