Bug 1689358 - Generate minidumps for child process crashes using the minidump-writer...
[gecko.git] / third_party / rust / minidump-writer / .github / workflows / ci.yml
blob3fd572cd7de725ef1f153ef3abb35608bca53e6a
1 name: Continuous Integration
3 on:
4   push:
5     branches:
6       - main
7       - github-actions
8   pull_request:
10 concurrency:
11   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
12   cancel-in-progress: true
14 jobs:
15   lint:
16     name: Lint
17     runs-on: ubuntu-latest
18     steps:
19       - uses: actions/checkout@v3
20       - name: Install Rust
21         uses: dtolnay/rust-toolchain@stable
22         with:
23           components: rustfmt,clippy
24       - name: rustfmt
25         run: cargo fmt --all -- --check
26       - name: clippy
27         run: cargo clippy --all-features --all-targets -- -D warnings
29   test:
30     name: Test
31     runs-on: ${{ matrix.job.os }}
32     strategy:
33       matrix:
34         job:
35           - { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu }
36           - { os: ubuntu-22.04,  target: x86_64-unknown-linux-musl }
37           - { os: windows-2022,  target: x86_64-pc-windows-msvc }
38           - { os: macos-12,      target: x86_64-apple-darwin }
39           # TODO: Add macos aarch64 here once it becomes available as a runner
40     steps:
41       - uses: actions/checkout@v3
42       - name: Install Rust
43         uses: dtolnay/rust-toolchain@stable
44         with:
45           target: ${{ matrix.job.target }}
46       - name: Fetch
47         run: cargo fetch --target ${{ matrix.job.target }}
48       - name: Build
49         run: cargo test --target ${{ matrix.job.target }} --no-run
50       - name: Test
51         run: cargo test --target ${{ matrix.job.target }}
53   # This job builds non-tier1 targets that aren't already tested
54   build_lower_tier:
55     name: Build sources
56     runs-on: ${{ matrix.job.os }}
57     strategy:
58       matrix:
59         job:
60           - { os: ubuntu-22.04,  target: i686-unknown-linux-gnu,      use-cross: true }
61          #- { os: ubuntu-latest,  target: i686-unknown-linux-musl,     use-cross: true }
62           - { os: ubuntu-22.04,  target: aarch64-unknown-linux-gnu,   use-cross: true }
63           - { os: ubuntu-22.04,  target: aarch64-unknown-linux-musl,  use-cross: true }
64           #- { os: ubuntu-22.04,  target: aarch64-linux-android,       use-cross: true }
65           - { os: ubuntu-22.04,  target: arm-unknown-linux-gnueabi,   use-cross: true }
66           - { os: ubuntu-22.04,  target: arm-unknown-linux-musleabi,  use-cross: true }
67           - { os: ubuntu-22.04,  target: arm-linux-androideabi,       use-cross: true }
68           - { os: ubuntu-22.04,  target: arm-unknown-linux-gnueabihf, use-cross: true }
69           # TODO: Remove this when aarch64 macs can be used as runners
70           - { os: macos-12,      target: aarch64-apple-darwin,        use-cross: false }
71     steps:
72       - uses: actions/checkout@v3
73       - name: Install Rust
74         uses: dtolnay/rust-toolchain@stable
75         with:
76           target: ${{ matrix.job.target }}
77       #- name: Unit tests
78       - name: Build
79         uses: actions-rs/cargo@v1
80         with:
81           #command: test
82           command: build
83           use-cross: ${{ matrix.job.use-cross }}
84           args: --target ${{ matrix.job.target }} --verbose --all-targets
85           #args: --target ${{ matrix.job.target }} --verbose -- --nocapture
86