Skip to content
This repository has been archived by the owner on Aug 27, 2024. It is now read-only.

Bump bytemuck from 1.16.1 to 1.16.3 in /counter #209

Bump bytemuck from 1.16.1 to 1.16.3 in /counter

Bump bytemuck from 1.16.1 to 1.16.3 in /counter #209

Workflow file for this run

# There are two kinds of continuous integration jobs in this project:
#
# - Every code submission or master push passes continuous integration on the
# minimal supported Rust version and the current stable Rust version.
# - Two times a month, a scheduled job makes sure that the code remains
# compatible and lint-free on upcoming Rust toolchains (beta and nightly).
name: Continuous Integration
on:
push:
pull_request:
schedule:
- cron: '0 0 3/15 * *'
# Cancel existing jobs on new pushes to the same branch
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
RUSTFLAGS: -D warnings
RUSTDOCFLAGS: -D warnings
MINIMAL_RUST: 1.70.0 # Minimal Supported Rust Version
MDBOOK_VERSION: 0.4.40
jobs:
# Workaround for github CI dropping env var expansion in matrix strategy
matrix_vars:
runs-on: ubuntu-latest
outputs:
MINIMAL_RUST: ${{ env.MINIMAL_RUST }}
steps:
- name: Forward env var to output
run: echo "MINIMAL_RUST=${{ env.MINIMAL_RUST }}" >> $GITHUB_OUTPUT
# Render the book
render-book:
# Don't run CI twice when a PR is created from a branch internal to the repo
# Don't run on a schedule, book doesn't change on its own.
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install mdbook
run: |
mkdir bin
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v${MDBOOK_VERSION}/mdbook-v${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin
echo "$(pwd)/bin" >> ${GITHUB_PATH}
- name: Render the book
run: mkdir public && mdbook build -d public
- name: Upload the book
uses: actions/upload-artifact@v3
with:
name: book
path: ./public
if-no-files-found: error
# Format doesn't depend on configuration. Lints don't depend target flags, and
# don't depend on the OS as there's no OS-specific code path in this crate.
#
# We don't care about warnings on the minimum supported Rust version, only
# about building and running correctly.
format-lints:
# Don't run CI twice when a PR is created from a branch internal to the repo
if: github.event_name == 'push' || github.event_name == 'schedule' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./counter
steps:
- name: Checkout sources
uses: actions/checkout@v4
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
version: 1.0
packages: libhwloc-dev
- name: Set up stable toolchain
if: github.event_name != 'schedule'
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt,clippy
- name: Set up nightly toolchain
if: github.event_name == 'schedule'
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
components: rustfmt,clippy
- name: Check code formatting
run: cargo fmt --all --check
- name: Check clippy lints
run: cargo clippy --workspace --all-targets -- -D warnings
# Run the tests on all supported OSes and Rust versions (main CI)
test-contrib:
# Don't run CI twice when a PR is created from a branch internal to the repo
# Don't run in scheduled jobs, that's what test-scheduled is for
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: ubuntu-latest
needs: matrix_vars
strategy:
matrix:
target-flags:
- ""
- "-C target-cpu=native"
rust:
- stable
- ${{ needs.matrix_vars.outputs.MINIMAL_RUST }}
env:
RUSTFLAGS: "-D warnings ${{ matrix.target-flags }}"
defaults:
run:
working-directory: ./counter
steps:
- name: Checkout sources
uses: actions/checkout@v4
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
version: 1.0
packages: libhwloc-dev
- name: Set up toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ matrix.rust }}
- name: Run tests
run: cargo test
- name: Check that benchmarks build
run: cargo build --benches
deploy-book:
# Don't run on a schedule, book doesn't change on its own.
# Don't run on pull request events, they don't have permission to deploy
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: ["render-book", "format-lints", "test-contrib"]
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
steps:
- name: Download the book
uses: actions/download-artifact@v3
with:
name: book
path: .
- name: Configure github pages
uses: actions/configure-pages@v1
- name: Upload book to github pages
uses: actions/upload-pages-artifact@v1
with:
path: .
- name: Deploy github pages
id: deployment
uses: actions/deploy-pages@v1
# Check compatibility with newer Rust/deps versions (scheduled CI)
#
# FIXME: There should be a way to use conditional build matrices without
# duplicating the whole job recipe...
#
test-scheduled:
if: github.event_name == 'schedule'
runs-on: ubuntu-latest
needs: matrix_vars
strategy:
matrix:
rustflags:
- "-D warnings"
- "-D warnings -C target-cpu=native"
rust:
- beta
- nightly
- ${{ needs.matrix_vars.outputs.MINIMAL_RUST }}
env:
RUSTFLAGS: ${{ matrix.rustflags }}
defaults:
run:
working-directory: ./counter
steps:
- name: Checkout sources
uses: actions/checkout@v4
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
version: 1.0
packages: libhwloc-dev
- name: Set up toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ matrix.rust }}
- name: Run tests
run: cargo test
- name: Check that benchmarks build
run: cargo build --benches