summaryrefslogtreecommitdiffstats
path: root/library/backtrace/.github/workflows/main.yml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /library/backtrace/.github/workflows/main.yml
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'library/backtrace/.github/workflows/main.yml')
-rw-r--r--library/backtrace/.github/workflows/main.yml247
1 files changed, 247 insertions, 0 deletions
diff --git a/library/backtrace/.github/workflows/main.yml b/library/backtrace/.github/workflows/main.yml
new file mode 100644
index 000000000..5f4bd505b
--- /dev/null
+++ b/library/backtrace/.github/workflows/main.yml
@@ -0,0 +1,247 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ test:
+ name: Test
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ include:
+ - os: ubuntu-latest
+ rust: stable
+ - os: ubuntu-latest
+ rust: beta
+ - os: ubuntu-latest
+ rust: nightly
+ - os: macos-latest
+ rust: stable
+ - os: macos-latest
+ rust: nightly
+ # Note that these are on nightly due to rust-lang/rust#63700 not being
+ # on stable yet
+ - os: windows-latest
+ rust: stable-x86_64-msvc
+ - os: windows-latest
+ rust: stable-i686-msvc
+ - os: windows-latest
+ rust: stable-x86_64-gnu
+ - os: windows-latest
+ rust: stable-i686-gnu
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - name: Install Rust (rustup)
+ run: rustup update ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }}
+ shell: bash
+ - run: echo RUSTFLAGS=-Dwarnings >> $GITHUB_ENV
+ shell: bash
+
+ # full fidelity of backtraces on 32-bit msvc requires frame pointers, so
+ # enable that for our tests
+ - name: Force frame pointers
+ run: echo RUSTFLAGS="-Cforce-frame-pointers $RUSTFLAGS" >> $GITHUB_ENV
+ shell: bash
+ if: matrix.rust == 'stable-i686-msvc'
+
+ - run: cargo build
+ - run: cargo test
+ - run: cargo test --features "serialize-rustc"
+ - run: cargo test --features "serialize-serde"
+ - run: cargo test --features "verify-winapi"
+ - run: cargo test --features "cpp_demangle"
+ - run: cargo test --no-default-features
+ - run: cargo test --no-default-features --features "std"
+ - run: cargo test --manifest-path crates/cpp_smoke_test/Cargo.toml
+ # This test is specifically about packed debuginfo with `*.dSYM` files
+ - run: cargo test --manifest-path crates/macos_frames_test/Cargo.toml
+ env:
+ CARGO_PROFILE_DEV_SPLIT_DEBUGINFO: packed
+ CARGO_PROFILE_TEST_SPLIT_DEBUGINFO: packed
+ - run: cargo test --features gimli-symbolize --manifest-path crates/without_debuginfo/Cargo.toml
+ - run: cargo test --manifest-path crates/line-tables-only/Cargo.toml --features gimli-symbolize
+
+ # Test debuginfo compression still works
+ - run: cargo test
+ if: contains(matrix.os, 'ubuntu')
+ env:
+ RUSTFLAGS: "-C link-arg=-Wl,--compress-debug-sections=zlib-gabi"
+ - run: cargo test
+ if: contains(matrix.os, 'ubuntu')
+ env:
+ RUSTFLAGS: "-C link-arg=-Wl,--compress-debug-sections=zlib-gnu"
+
+ # Test that, on macOS, packed/unpacked debuginfo both work
+ - run: cargo clean && cargo test
+ # Test that, on macOS, packed/unpacked debuginfo both work
+ if: matrix.os == 'macos-latest'
+ env:
+ CARGO_PROFILE_DEV_SPLIT_DEBUGINFO: unpacked
+ CARGO_PROFILE_TEST_SPLIT_DEBUGINFO: unpacked
+ - run: cargo clean && cargo test
+ if: matrix.os == 'macos-latest'
+ env:
+ CARGO_PROFILE_DEV_SPLIT_DEBUGINFO: packed
+ CARGO_PROFILE_TEST_SPLIT_DEBUGINFO: packed
+ # Test that, on macOS, binaries with no UUID work
+ - run: cargo clean && cargo test
+ if: matrix.os == 'macos-latest'
+ env:
+ RUSTFLAGS: "-C link-arg=-Wl,-no_uuid"
+
+ # Test that, on Linux, packed/unpacked debuginfo both work
+ - run: cargo clean && cargo test
+ if: matrix.rust == 'nightly'
+ env:
+ RUSTFLAGS: "-C split-debuginfo=unpacked -Zunstable-options"
+ - run: cargo clean && cargo test
+ if: matrix.rust == 'nightly'
+ env:
+ RUSTFLAGS: "-C split-debuginfo=packed -Zunstable-options"
+
+ # Test that separate debug info works
+ - run: ./ci/debuglink-docker.sh
+ if: contains(matrix.os, 'ubuntu')
+
+ # Test that including as a submodule will still work, both with and without
+ # the `backtrace` feature enabled.
+ - run: cargo build --manifest-path crates/as-if-std/Cargo.toml
+ - run: cargo build --manifest-path crates/as-if-std/Cargo.toml --no-default-features
+
+ windows_arm64:
+ name: Windows AArch64
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - name: Install Rust
+ run: rustup update stable --no-self-update && rustup default stable
+ shell: bash
+ - run: echo RUSTFLAGS=-Dwarnings >> $GITHUB_ENV
+ shell: bash
+ - run: rustup target add aarch64-pc-windows-msvc
+ - run: cargo test --no-run --target aarch64-pc-windows-msvc
+ - run: cargo test --no-run --target aarch64-pc-windows-msvc --features verify-winapi
+
+ ios:
+ name: iOS
+ runs-on: macos-latest
+ strategy:
+ matrix:
+ include:
+ - target: aarch64-apple-ios
+ sdk: iphoneos
+ - target: x86_64-apple-ios
+ sdk: iphonesimulator
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - run: rustup target add ${{ matrix.target }}
+ - run: |
+ export RUSTFLAGS=-Dwarnings
+ export SDK_PATH=`xcrun --show-sdk-path --sdk ${{ matrix.sdk }}`
+ export RUSTFLAGS="-C link-arg=-isysroot -C link-arg=$SDK_PATH"
+ cargo test --no-run --target ${{ matrix.target }}
+ name: Build tests
+
+ docker:
+ name: Docker
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ target:
+ - aarch64-unknown-linux-gnu
+ - arm-unknown-linux-gnueabihf
+ - armv7-unknown-linux-gnueabihf
+ - i586-unknown-linux-gnu
+ - i686-unknown-linux-gnu
+ - powerpc64-unknown-linux-gnu
+ - s390x-unknown-linux-gnu
+ - x86_64-pc-windows-gnu
+ - x86_64-unknown-linux-gnu
+ - x86_64-unknown-linux-musl
+ - arm-linux-androideabi
+ - armv7-linux-androideabi
+ - aarch64-linux-android
+ - i686-linux-android
+ - x86_64-linux-android
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - name: Install Rust
+ run: rustup update stable && rustup default stable
+ - run: rustup target add ${{ matrix.target }}
+ - run: cargo generate-lockfile
+ - run: echo RUSTFLAGS=-Dwarnings >> $GITHUB_ENV
+ shell: bash
+ - run: ./ci/run-docker.sh ${{ matrix.target }}
+
+ rustfmt:
+ name: Rustfmt
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - name: Install Rust
+ run: rustup update stable && rustup default stable && rustup component add rustfmt
+ - run: cargo fmt --all -- --check
+
+ build:
+ name: Build Targets
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ target:
+ - wasm32-unknown-unknown
+ - wasm32-wasi
+ - x86_64-fuchsia
+ - x86_64-fortanix-unknown-sgx
+ - x86_64-unknown-illumos
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - name: Install Rust
+ run: rustup update nightly && rustup default nightly
+ - run: rustup target add ${{ matrix.target }}
+ - run: echo RUSTFLAGS=-Dwarnings >> $GITHUB_ENV
+ shell: bash
+ - run: cargo build --target ${{ matrix.target }}
+ - run: cargo build --manifest-path crates/as-if-std/Cargo.toml --target ${{ matrix.target }}
+
+ msrv:
+ name: MSRV
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - name: Install Rust
+ run: rustup update 1.42.0 && rustup default 1.42.0
+ - run: cargo build
+
+ miri:
+ name: Miri
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - name: Install Miri
+ run: |
+ rustup toolchain install nightly --component miri
+ rustup override set nightly
+ cargo miri setup
+ - run: MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-strict-provenance" cargo miri test