chore: checkpoint before Python removal

This commit is contained in:
2026-03-26 22:33:59 +00:00
parent 683cec9307
commit e568ddf82a
29972 changed files with 11269302 additions and 2 deletions

View File

@@ -0,0 +1,128 @@
name: CI
on:
pull_request:
push:
branches:
- master
env:
RUST_BACKTRACE: 1
jobs:
ci-pass:
name: CI is green
runs-on: ubuntu-latest
needs:
- style
- test
- msrv
- miri
- features
- semver
- doc
steps:
- run: exit 0
style:
name: Check Style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --all --check
test:
name: Test ${{ matrix.rust }} on ${{ matrix.os }}
needs: [style]
strategy:
matrix:
rust:
- stable
- beta
- nightly
os:
- ubuntu-latest
- windows-latest
- macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- name: Install Rust (${{ matrix.rust }})
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- run: cargo test --all-features
msrv:
name: Check MSRV (${{ matrix.rust }}) on ${{ matrix.os }}
needs: [style]
strategy:
matrix:
rust: [ 1.64 ] # keep in sync with 'rust-version' in Cargo.toml
os:
- ubuntu-latest
- windows-latest
- macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Resolve MSRV aware dependencies
run: |
cargo update
env:
CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: fallback
- name: Install Rust (${{ matrix.rust }})
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- run: cargo check --features full
miri:
name: Test with Miri
needs: [style]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
with:
components: miri
- name: Test
env:
# Can't enable tcp feature since Miri does not support the tokio runtime
MIRIFLAGS: "-Zmiri-disable-isolation"
run: cargo miri test --all-features
features:
name: features
needs: [style]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-hack
- run: cargo hack --no-dev-deps check --feature-powerset --depth 2
semver:
name: semver
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
feature-group: only-explicit-features
features: full
release-type: minor
doc:
name: Build docs
needs: [style, test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- run: cargo rustdoc --features full -- --cfg docsrs -D rustdoc::broken_intra_doc_links

View File

@@ -0,0 +1,99 @@
name: Rustdoc PR Preview
on:
issue_comment:
types: [created]
pull_request:
types: [closed]
jobs:
rustdoc-preview:
# Only run on issue_comment, not on PR close
if: github.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '/rustdoc-preview')
runs-on: ubuntu-latest
steps:
- name: Check if commenter is a collaborator
id: collaborator-check
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const commenter = context.payload.comment.user.login;
const owner = context.repo.owner;
const repo = context.repo.repo;
try {
await github.rest.repos.checkCollaborator({
owner,
repo,
username: commenter
});
return true;
} catch (e) {
return false;
}
# Only continue if the check passes
- name: Fail if not collaborator
if: steps.collaborator-check.outputs.result != 'true'
run: |
echo "Commenter is not a collaborator. Skipping preview build."
exit 1
- name: Checkout PR branch
uses: actions/checkout@v6
with:
# Check out the PR's branch
ref: refs/pull/${{ github.event.issue.number }}/head
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Build rustdoc
run: cargo rustdoc --features full -- --cfg docsrs
- name: Deploy rustdoc to gh-pages/pr-<PR_NUMBER>
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./target/doc
# Publish to pr-<PR_NUMBER> subdir
destination_dir: pr-${{ github.event.issue.number }}
keep_files: true
- name: Comment preview link on PR
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const pr_number = context.issue.number;
const repo = context.repo.repo;
const owner = context.repo.owner;
const url = `https://${owner}.github.io/${repo}/pr-${pr_number}/hyper_util/`;
github.rest.issues.createComment({
issue_number: pr_number,
owner,
repo,
body: `📝 Rustdoc preview for this PR: [View docs](${url})`
});
rustdoc-preview-cleanup:
# Only run on PR close/merge
if: github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
steps:
- name: Checkout gh-pages branch
uses: actions/checkout@v6
with:
ref: gh-pages
persist-credentials: true
- name: Remove PR preview directory
run: |
rm -rf pr-${{ github.event.pull_request.number }}
- name: Commit and push removal
run: |
git config user.name "github-actions"
git config user.email "github-actions@github.com"
git add .
git commit -m "Remove rustdoc preview for PR #${{ github.event.pull_request.number }}" || echo "Nothing to commit"
git push