Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

CI

CI #3337

Workflow file for this run

name: CI
permissions:
contents: read
on:
pull_request:
push:
branches:
- master
schedule:
- cron: '0 2 * * *'
env:
CARGO_INCREMENTAL: 0
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_NET_RETRY: 10
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
RUSTDOCFLAGS: -D warnings
RUSTFLAGS: -D warnings
RUSTUP_MAX_RETRIES: 10
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
# Test crates on their minimum Rust versions and nightly Rust.
test:
env:
RUST_VERSION: ${{ matrix.rust }}
RUST_TARGET: ${{ matrix.target }}
strategy:
fail-fast: false
matrix:
# macOS is tested on Cirrus CI due to GitHub-hosted macOS runners are slow.
include:
- rust: '1.63'
os: ubuntu-latest
- rust: '1.63'
os: ubuntu-22.04-arm # TODO: update to 24.04 when https://github.com/rust-lang/rust/issues/135867 solved
- rust: '1.63'
os: windows-latest
- rust: stable
os: ubuntu-latest
- rust: stable
os: ubuntu-22.04-arm # TODO: update to 24.04 when https://github.com/rust-lang/rust/issues/135867 solved
- rust: stable
os: windows-latest
- rust: nightly
os: ubuntu-latest
- rust: nightly
os: ubuntu-22.04-arm # TODO: update to 24.04 when https://github.com/rust-lang/rust/issues/135867 solved
- rust: nightly
os: windows-latest
- rust: nightly
os: ubuntu-latest
target: i686-unknown-linux-gnu
- rust: nightly
os: ubuntu-22.04-arm # TODO: update to 24.04 when https://github.com/rust-lang/rust/issues/135867 solved
target: armv7-unknown-linux-gnueabihf
# Test 32-bit target that does not have AtomicU64/AtomicI64.
- rust: nightly
os: ubuntu-latest
target: armv5te-unknown-linux-gnueabi
# Test target without stable inline asm support.
- rust: stable
os: ubuntu-latest
target: sparc64-unknown-linux-gnu
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@main
with:
toolchain: ${{ matrix.rust }}
- uses: taiki-e/setup-cross-toolchain-action@v1
with:
target: ${{ matrix.target }}
if: matrix.target != ''
- name: Test
run: ci/test.sh
# Check all feature combinations works properly.
features:
env:
RUST_VERSION: ${{ matrix.rust }}
strategy:
fail-fast: false
matrix:
rust:
- msrv
- nightly
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@main
with:
toolchain: ${{ matrix.rust }}
if: matrix.rust != 'msrv'
- name: Install cargo-hack
uses: taiki-e/install-action@cargo-hack
- name: Check features
run: ci/check-features.sh
# Check for duplicate dependencies.
dependencies:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@nightly
- name: Install cargo-hack
uses: taiki-e/install-action@cargo-hack
- name: Install cargo-minimal-versions
uses: taiki-e/install-action@cargo-minimal-versions
- name: dependency tree check
run: ci/dependencies.sh
# When this job failed, run ci/no_atomic.sh and commit result changes.
codegen:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@stable
- run: ci/no_atomic.sh
- run: git add -N . && git diff --exit-code
if: github.repository_owner != 'crossbeam-rs' || github.event_name != 'schedule'
- id: diff
run: |
git config user.name "Taiki Endo"
git config user.email "te316e89@gmail.com"
git add -N .
if ! git diff --exit-code; then
git add .
git commit -m "Update no_atomic.rs"
echo 'success=false' >>"${GITHUB_OUTPUT}"
fi
if: github.repository_owner == 'crossbeam-rs' && github.event_name == 'schedule'
- uses: peter-evans/create-pull-request@v7
with:
title: Update no_atomic.rs
body: |
Auto-generated by [create-pull-request][1]
[Please close and immediately reopen this pull request to run CI.][2]
[1]: https://github.com/peter-evans/create-pull-request
[2]: https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#workarounds-to-trigger-further-workflow-runs
branch: update-no-atomic-rs
if: github.repository_owner == 'crossbeam-rs' && github.event_name == 'schedule' && steps.diff.outputs.success == 'false'
# Check formatting.
rustfmt:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@stable
- name: rustfmt
run: cargo fmt --all --check
# Check clippy.
clippy:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@stable
- name: clippy
run: cargo clippy --all --all-features --tests --examples
# Run miri.
miri:
strategy:
fail-fast: false
matrix:
group:
- channel
- others
runs-on: ubuntu-latest
timeout-minutes: 120 # TODO
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@nightly
with:
component: miri
- name: miri
run: ci/miri.sh ${{ matrix.group }}
# Run cargo-careful.
careful:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@nightly
with:
component: rust-src
- uses: taiki-e/install-action@cargo-careful
- name: Run cargo-careful
run: ci/careful.sh
# Run sanitizers.
san:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@nightly
with:
component: rust-src
# https://github.com/google/sanitizers/issues/1716 / https://github.com/actions/runner-images/issues/9491
- run: sudo sysctl vm.mmap_rnd_bits=28
- name: Run sanitizers
run: ci/san.sh
# Run loom tests.
loom:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@stable
- name: loom
run: ci/crossbeam-epoch-loom.sh
# Check if the document can be generated without warning.
docs:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install Rust
uses: taiki-e/github-actions/install-rust@nightly
- name: docs
run: cargo doc --no-deps --all --all-features
shellcheck:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- name: Install shellcheck
uses: taiki-e/install-action@shellcheck
- run: shellcheck $(git ls-files '*.sh')
Morty Proxy This is a proxified and sanitized view of the page, visit original site.