backtrace 0.3.35

A library to acquire a stack trace (backtrace) at runtime in a Rust program.
Documentation
trigger:
  - master

jobs:
  - job: MSRV
    pool:
      vmImage: ubuntu-16.04
    steps:
      - checkout: self
        submodules: true
      - template: ci/azure-install-rust.yml
      - script: cargo build
        displayName: "Build crate"
    variables:
      TOOLCHAIN: 1.32.0

  - job: Docker
    pool:
      vmImage: ubuntu-16.04
    steps:
      - checkout: self
        submodules: true
      - template: ci/azure-install-rust.yml
      - bash: rustup target add $TARGET
        displayName: "Install rust cross target"
      - bash: |
          set -e
          cargo generate-lockfile
          ./ci/run-docker.sh $TARGET
        displayName: "Run tests in docker"
    strategy:
      matrix:
        aarch64:
          TARGET: aarch64-unknown-linux-gnu
        armhf:
          TARGET: arm-unknown-linux-gnueabihf
        armv7:
          TARGET: armv7-unknown-linux-gnueabihf
        i586:
          TARGET: i586-unknown-linux-gnu
        i686:
          TARGET: i686-unknown-linux-gnu
        powerpc64:
          TARGET: powerpc64-unknown-linux-gnu
        mingw:
          TARGET: x86_64-pc-windows-gnu
        x86_64:
          TARGET: x86_64-unknown-linux-gnu
        gnu:
          TARGET: x86_64-unknown-linux-musl

        android-arm:
          TARGET: arm-linux-androideabi
        android-armv7:
          TARGET: armv7-linux-androideabi
        android-aarch64:
          TARGET: aarch64-linux-android
        android-i686:
          TARGET: i686-linux-android
        android-x86_64:
          TARGET: x86_64-linux-android

  - job: Linux
    pool:
      vmImage: ubuntu-16.04
    steps:
      - template: ci/azure-test-all.yml
    strategy:
      matrix:
        stable:
          TOOLCHAIN: stable
        beta:
          TOOLCHAIN: beta
        nightly:
          TOOLCHAIN: nightly

  - job: macOS
    pool:
      vmImage: macos-10.13
    steps:
      - template: ci/azure-test-all.yml
    strategy:
      matrix:
        x86_64:
          TARGET: x86_64-apple-darwin

  - job: iOS
    pool:
      vmImage: macos-10.13
    steps:
      - checkout: self
        submodules: true
      - template: ci/azure-install-rust.yml
      - script: rustup target add $TARGET
        displayName: "Install rust cross target"
      - bash: |
          set -e
          export SDK_PATH=`xcrun --show-sdk-path --sdk $SDK`
          export RUSTFLAGS="-C link-arg=-isysroot -C link-arg=$SDK_PATH"
          cargo test --no-run --target $TARGET
        displayName: "Build for iOS"
    strategy:
      matrix:
        aarch64:
          TARGET: aarch64-apple-ios
          SDK: iphoneos
        armv7:
          TARGET: armv7-apple-ios
          SDK: iphoneos
        armv7s:
          TARGET: armv7s-apple-ios
          SDK: iphoneos
        i386:
          TARGET: i386-apple-ios
          SDK: iphonesimulator
        x86_64:
          TARGET: x86_64-apple-ios
          SDK: iphonesimulator

  - job: wasm
    pool:
      vmImage: ubuntu-16.04
    steps:
      - checkout: self
        submodules: true
      - template: ci/azure-install-rust.yml
      - script: rustup target add wasm32-unknown-unknown
        displayName: "Install rust cross target"
      - script: cargo build --target wasm32-unknown-unknown
        displayName: "Build for wasm"

  - job: Windows
    pool:
      vmImage: vs2017-win2016
    steps:
      - template: ci/azure-test-all.yml
    strategy:
      matrix:
        x86_64-msvc:
          TARGET: x86_64-pc-windows-msvc
        i686-msvc:
          TARGET: i686-pc-windows-msvc
          # this looks to be required to get full fidelity of backtrace
          # information on 32-bit MSVC
          RUSTFLAGS: -Cforce-frame-pointers
        x86_64-gnu:
          TARGET: x86_64-pc-windows-gnu
        i686-gnu:
          TARGET: i686-pc-windows-gnu

  - job: Windows_arm64
    pool:
      vmImage: windows-2019
    steps:
      - template: ci/azure-install-rust.yml
      - script: rustup target add aarch64-pc-windows-msvc
        displayName: "Install rust cross target"
      - script: cargo test --no-run --target aarch64-pc-windows-msvc
        displayName: "Build for arm64"
      - script: cargo test --no-run --target aarch64-pc-windows-msvc --features verify-winapi
        displayName: "Build for arm64"