Skip to content

feat: implement InPlaceWrite<T> for &'static mut MaybeUninit<T> #365

feat: implement InPlaceWrite<T> for &'static mut MaybeUninit<T>

feat: implement InPlaceWrite<T> for &'static mut MaybeUninit<T> #365

Workflow file for this run

permissions:
contents: read
on:
push:
branches: [main, kernel, next]
pull_request:
workflow_dispatch:
schedule:
- cron: '7 7 * * *'
name: CI
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: git config user.name "github-runner" && git config user.email "<>"
- run: git rebase --exec 'cargo fmt --check --all' --root
readme:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
- run: cargo install cargo-rdme
- run: git config user.name "github-runner" && git config user.email "<>"
- run: git rebase --exec 'cargo rdme --check' --root
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- run: git config user.name "github-runner" && git config user.email "<>"
- run: git rebase --exec 'cargo doc --all-features --no-deps' --root
env:
RUSTFLAGS: "-Dwarnings"
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
with:
components: clippy
- run: cargo install cargo-hack
- run: git config user.name "github-runner" && git config user.email "<>"
# examples and tests require `alloc`, since they make extensive use of `Box` etc.
- run: |
echo '#!/bin/bash
set -e
cargo hack \
--clean-per-run \
--feature-powerset \
clippy \
--all-targets \
--locked \
--features alloc
cargo clean' > exec.sh
git rebase --exec 'bash exec.sh' --root
env:
RUSTFLAGS: "-Dwarnings"
# the core lib does not, so also check that without the alloc feature.
- run: |
echo '#!/bin/bash
set -e
cargo hack \
--clean-per-run \
--feature-powerset \
clippy \
--lib \
--locked
cargo clean' > exec.sh
git rebase --exec "bash exec.sh" --root
env:
RUSTFLAGS: "-Dwarnings"
ui-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- run: cargo install cargo-expand
- run: git config user.name "github-runner" && git config user.email "<>"
- run: git rebase --exec 'cargo test ui_ --locked --all-targets' --root
env:
RUSTFLAGS: >
-Dwarnings
--cfg UI_TESTS
nightly:
runs-on: ubuntu-latest
strategy:
matrix:
kind:
- "check --all-targets"
- "test --all-targets"
# doctests are strangely not included in --all-targets
- "--features default test --doc"
name: "nightly/${{matrix.kind}}"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- run: cargo install cargo-expand
- run: cargo install cargo-hack
- run: git config user.name "github-runner" && git config user.email "<>"
- run: |
echo '#!/bin/bash
set -e
cargo hack \
--clean-per-run \
--feature-powerset \
${{matrix.kind}} \
--locked
cargo clean' > exec.sh
git rebase --exec "bash exec.sh" --root
env:
RUSTFLAGS: "-Dwarnings"
beta:
runs-on: ubuntu-latest
strategy:
matrix:
kind:
- "check --all-targets"
- "test --all-targets"
# doctests are strangely not included in --all-targets
- "--features default test --doc"
name: "beta/${{matrix.kind}}"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@beta
with:
components: rust-src
- run: cargo install cargo-expand
- run: cargo install cargo-hack
- run: git config user.name "github-runner" && git config user.email "<>"
- run: |
echo '#!/bin/bash
set -e
cargo hack \
--clean-per-run \
--feature-powerset \
${{matrix.kind}} \
--locked
cargo clean' > exec.sh
git rebase --exec "bash exec.sh" --root
env:
RUSTFLAGS: "-Dwarnings"
RUSTC_BOOTSTRAP: 1
miri:
runs-on: ubuntu-latest
name: "miri (${{matrix.MIRIFLAGS}})"
strategy:
matrix:
MIRIFLAGS:
- ""
- "-Zmiri-tree-borrows"
- "-Zmiri-strict-provenance"
- "-Zmiri-tree-borrows -Zmiri-strict-provenance"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- run: |
echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV
- name: Install ${{env.NIGHTLY}}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{env.NIGHTLY}}
components: miri, rust-src
- run: cargo install cargo-expand
- run: git config user.name "github-runner" && git config user.email "<>"
- run: git rebase --exec 'cargo miri test --locked --all-targets' --root
env:
RUSTFLAGS: "-Dwarnings"
MIRIFLAGS: ${{matrix.MIRIFLAGS}}
# doctests are strangely not included in --all-targets
- run: git rebase --exec 'cargo miri test --locked --doc' --root
env:
RUSTFLAGS: "-Dwarnings"
MIRIFLAGS: ${{matrix.MIRIFLAGS}}
sanitizers:
runs-on: ubuntu-latest
strategy:
matrix:
targets: ["--doc", "--all-targets"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- name: enable debug symbols
run: |
sudo apt install llvm
- run: git config user.name "github-runner" && git config user.email "<>"
# sed because of https://github.com/japaric/rust-san#unrealiable-leaksanitizer
- run: |
echo "#!/bin/bash
set -e
sed -i '/\[features\]/i [profile.dev]' Cargo.toml \
&& sed -i '/profile.dev/a opt-level = 1' Cargo.toml \
&& cargo test --lib --tests --target x86_64-unknown-linux-gnu \
&& git restore Cargo.toml" > exec.sh
git rebase --exec "bash exec.sh" --root
env:
ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0"
RUSTFLAGS: >
--cfg NO_ALLOC_FAIL_TESTS
-Z sanitizer=address
-Dwarnings
# sed because of https://github.com/japaric/rust-san#unrealiable-leaksanitizer
# doctests are strangely not included in --all-targets
- run: |
echo "#!/bin/bash
set -e
sed -i '/\[features\]/i [profile.dev]' Cargo.toml \
&& sed -i '/profile.dev/a opt-level = 1' Cargo.toml \
&& cargo test --doc --target x86_64-unknown-linux-gnu \
&& git restore Cargo.toml" > exec.sh
git rebase --exec "bash exec.sh" --root
env:
ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0"
RUSTFLAGS: >
--cfg NO_ALLOC_FAIL_TESTS
-Z sanitizer=address
-Dwarnings
- run: |
git rebase --exec \
'cargo test --all-targets --target x86_64-unknown-linux-gnu' \
--root
env:
RUSTFLAGS: >
--cfg NO_ALLOC_FAIL_TESTS
-Z sanitizer=leak
-Dwarnings
# doctests are strangely not included in --all-targets
- run: |
git rebase --exec \
'cargo test --doc --target x86_64-unknown-linux-gnu' \
--root
env:
RUSTFLAGS: >
--cfg NO_ALLOC_FAIL_TESTS
-Z sanitizer=leak
-Dwarnings
msrv:
runs-on: ubuntu-latest
strategy:
matrix:
kind: ["check", "test"]
name: "msrv/${{matrix.kind}}"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@stable
- run: cargo install cargo-hack
- run: git config user.name "github-runner" && git config user.email "<>"
- run: |
echo '#!/bin/bash
set -e
cargo hack \
--clean-per-run \
--feature-powerset \
--exclude-features alloc \
--exclude-features unsafe-pinned \
--exclude-features default \
--version-range 1.82.. \
--clean-per-version \
${{matrix.kind}} \
--locked \
--all-targets
cargo clean' > exec.sh
git rebase --exec "bash exec.sh" --root
env:
RUSTFLAGS: "-Dwarnings"
nightly-msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@stable
with:
components: rust-src
- run: cargo install cargo-hack
- run: cargo install cargo-expand
- run: git config user.name "github-runner" && git config user.email "<>"
- run: |
echo '#!/bin/bash
set -e
cargo hack \
--clean-per-run \
--feature-powerset \
--version-range 1.78.. \
--clean-per-version \
check \
--locked \
--all-targets
cargo clean' > exec.sh
git rebase --exec "bash exec.sh" --root
env:
RUSTC_BOOTSTRAP: 1
RUSTFLAGS: "-Dwarnings"
os-check:
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest]
runs-on: ${{matrix.os}}
name: "os-check (${{matrix.os}})"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- run: cargo install cargo-expand
- run: git config user.name "github-runner" && git config user.email "<>"
- run: git rebase --exec 'cargo test --all-targets --locked' --root
env:
RUSTFLAGS: "-Dwarnings"
# doctests are strangely not included in --all-targets
- run: git rebase --exec 'cargo test --doc --locked' --root
env:
RUSTFLAGS: "-Dwarnings"
signed-off-by:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- run: git config user.name "github-runner" && git config user.email "<>"
- run: |
git rebase --exec \
'git log --no-merges -1 --pretty=format:%B | grep -q "^Signed-off-by:"' \
--root
apply:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
repository: Rust-for-Linux/linux
path: "kernel"
ref: pin-init-next
- uses: actions/checkout@v4
with:
path: "pin-init"
fetch-depth: 0
ref: ${{github.event.pull_request.head.sha}}
- run: |
pushd kernel
git config user.name "github-runner" && git config user.email "<>"
popd # kernel
pushd pin-init
git config user.name "github-runner" && git config user.email "<>"
git fetch
if [ "$(git rev-parse HEAD)" = "$(git rev-parse origin/next)" ]; then
# when there are no new commits, we can succeed directly
exit 0
fi
if ! yes | bash ./to-kernel.sh ../kernel origin/next; then
if ! git am --3way; then
git am --show-current-patch=diff
false
fi
false
fi
link-heartbeat:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: ${{github.event.pull_request.commits}}
ref: ${{github.event.pull_request.head.sha}}
- uses: dtolnay/rust-toolchain@nightly
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- run: sudo apt-get install -y linkchecker
- run: git config user.name "github-runner" && git config user.email "<>"
- run: |
git rebase --exec \
'cargo doc --all-features --no-deps && linkchecker target/doc/*/*.html' \
--root
env:
RUSTFLAGS: "-Dwarnings"
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- run: cargo install cargo-expand
- run: cargo update
- run: cargo test --locked
env:
RUSTFLAGS: "-Ddeprecated -Dwarnings"