Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Check compile errors

on:
workflow_call:

env:
RUSTFLAGS: -Dwarnings

jobs:
check:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable, 1.88.0]

name: Check compile errors using Rust ${{ matrix.rust }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install rust ${{ matrix.rust }} toolchain
run: |
rustup toolchain install ${{ matrix.rust }} --profile minimal --no-self-update
rustup default ${{ matrix.rust }}

- uses: Swatinem/rust-cache@v2

- name: Check all features
run: cargo check --all-features --locked

- name: Check sentry-core without default features
run: cargo check --no-default-features --locked
working-directory: sentry-core

- name: Check default features
run: cargo check --locked

- name: Check sentry panic feature without defaults
run: cargo check --no-default-features --features panic --locked
working-directory: sentry

- name: Check sentry curl feature
run: cargo check --features curl --locked
working-directory: sentry

- name: Check sentry curl+panic without defaults
run: cargo check --no-default-features --features curl,panic --locked
working-directory: sentry

- name: Check sentry-actix
run: cargo check --locked
working-directory: sentry-actix
113 changes: 8 additions & 105 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,100 +16,16 @@ env:

jobs:
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4

- run: rustup component add rustfmt clippy

- uses: Swatinem/rust-cache@v2

- name: Run cargo fmt
run: cargo fmt --all -- --check

- name: Run cargo clippy
run: cargo clippy --all-features --workspace --tests --examples --locked -- -D clippy::all
name: Run lint checks
uses: ./.github/workflows/lint.yml

check:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable, 1.88.0]

name: Check feature permutations using Rust ${{ matrix.rust }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install rust ${{ matrix.rust }} toolchain
run: |
rustup toolchain install ${{ matrix.rust }} --profile minimal --no-self-update
rustup default ${{ matrix.rust }}

- uses: Swatinem/rust-cache@v2

- name: Check all features
run: cargo check --all-features --locked

- name: Check sentry-core without default features
run: cargo check --no-default-features --locked
working-directory: sentry-core

- name: Check default features
run: cargo check --locked

- name: Check sentry panic feature without defaults
run: cargo check --no-default-features --features panic --locked
working-directory: sentry

- name: Check sentry curl feature
run: cargo check --features curl --locked
working-directory: sentry

- name: Check sentry curl+panic without defaults
run: cargo check --no-default-features --features curl,panic --locked
working-directory: sentry

- name: Check sentry-actix
run: cargo check --locked
working-directory: sentry-actix
name: Check compile errors
uses: ./.github/workflows/check.yml

test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable, 1.88.0]

name: Test using Rust ${{ matrix.rust }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install rust ${{ matrix.rust }} toolchain
run: |
rustup toolchain install ${{ matrix.rust }} --profile minimal --no-self-update
rustup default ${{ matrix.rust }}

- uses: Swatinem/rust-cache@v2

- name: Run cargo test
run: cargo test --workspace --all-features --all-targets --locked

- name: Run cargo doc tests
run: cargo test --workspace --all-features --doc --locked

# Keep this separate so we continue asserting the default+test feature
# combination for sentry explicitly, even with broader all-features coverage.
- name: Test sentry default+test feature combination
run: cargo test -p sentry --features test --locked
name: Run tests
uses: ./.github/workflows/test.yml

codecov:
name: Code Coverage
Expand All @@ -132,21 +48,8 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}

doc:
name: Build-test documentation
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings

steps:
- name: Checkout sources
uses: actions/checkout@v4

- run: rustup component add rust-docs

- uses: Swatinem/rust-cache@v2

- name: Run cargo doc
run: cargo doc --workspace --all-features --document-private-items --no-deps --locked
name: Build documentation
uses: ./.github/workflows/doc.yml

required:
name: Check required jobs
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/doc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build documentation

on:
workflow_call:

env:
RUSTFLAGS: -Dwarnings

jobs:
doc:
name: Build documentation
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings

steps:
- name: Checkout sources
uses: actions/checkout@v4

- run: rustup component add rust-docs

- uses: Swatinem/rust-cache@v2

- name: Run cargo doc
run: cargo doc --workspace --all-features --document-private-items --no-deps --locked
25 changes: 25 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Run lint checks

on:
workflow_call:

env:
RUSTFLAGS: -Dwarnings

jobs:
lint:
name: Run lint checks
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4

- run: rustup component add rustfmt clippy

- uses: Swatinem/rust-cache@v2

- name: Run cargo fmt
run: cargo fmt --all -- --check

- name: Run cargo clippy
run: cargo clippy --all-features --workspace --tests --examples --locked -- -D clippy::all
40 changes: 40 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Run tests

on:
workflow_call:

env:
RUSTFLAGS: -Dwarnings

jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable, 1.88.0]

name: Run tests using Rust ${{ matrix.rust }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install rust ${{ matrix.rust }} toolchain
run: |
rustup toolchain install ${{ matrix.rust }} --profile minimal --no-self-update
rustup default ${{ matrix.rust }}

- uses: Swatinem/rust-cache@v2

- name: Run cargo test
run: cargo test --workspace --all-features --all-targets --locked

- name: Run cargo doc tests
run: cargo test --workspace --all-features --doc --locked

# Keep this separate so we continue asserting the default+test feature
# combination for sentry explicitly, even with broader all-features coverage.
- name: Test sentry default+test feature combination
run: cargo test -p sentry --features test --locked