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
    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" cargo miri test
