File: ci.yml

package info (click to toggle)
rust-region 3.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 236 kB
  • sloc: makefile: 2
file content (158 lines) | stat: -rw-r--r-- 4,031 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: CI

on: [push, pull_request]

env:
  CARGO_TERM_COLOR: always
  RUST_TEST_THREADS: 1

jobs:
  test:
    name: Test (${{ matrix.target }})
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
          # Linux
          - target: i686-unknown-linux-gnu
            os: ubuntu-20.04
          - target: i686-unknown-linux-musl
            os: ubuntu-20.04
          - target: x86_64-unknown-linux-gnu
            os: ubuntu-20.04
          - target: x86_64-unknown-linux-musl
            os: ubuntu-20.04

          # Cross
          - target: armv7-unknown-linux-gnueabihf
            os: ubuntu-20.04
            use-cross: true
          - target: aarch64-linux-android
            toolchain: '1.52.0' # See: https://github.com/rust-lang/rust/issues/110786
            os: ubuntu-20.04
            use-cross: true
          - target: mips-unknown-linux-gnu
            toolchain: '1.52.0' # See: https://github.com/rust-lang/compiler-team/issues/648
            os: ubuntu-20.04
            use-cross: true

          # Windows
          - target: i686-pc-windows-gnu
            os: windows-2019
          - target: i686-pc-windows-msvc
            os: windows-2019
          - target: x86_64-pc-windows-gnu
            os: windows-2019
          - target: x86_64-pc-windows-msvc
            os: windows-2019

          # macOS
          - target: x86_64-apple-darwin
            os: macos-13
      fail-fast: false

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

    - name: Install toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: ${{ matrix.toolchain || 'stable' }}
        profile: minimal
        target: ${{ matrix.target }}
        override: true

    - name: Run tests (cross)
      if: ${{ matrix.use-cross }}
      uses: actions-rs/cargo@v1
      with:
        use-cross: true
        command: test
        args: --target ${{ matrix.target }}

    - name: Run tests (cargo)
      if: ${{ !matrix.use-cross }}
      run: cargo test

  test-qemu:
    name: Test (${{ matrix.target }})
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - target: x86_64-unknown-freebsd
            os: freebsd
            os-version: '14.0'
          - target: x86_64-unknown-openbsd
            os: openbsd
            os-version: '7.4'
            install: sudo pkg_add rust
          - target: x86_64-unknown-netbsd
            os: netbsd
            os-version: '9.3'
            prepare:
              sudo pkgin -y install mozilla-rootcerts-openssl
      fail-fast: false

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

    - name: Run tests (cargo)
      uses: cross-platform-actions/action@v0.23.0
      with:
        operating_system: ${{ matrix.os }}
        architecture: ${{ matrix.architecture || 'x86-64' }}
        version: ${{ matrix.os-version }}
        run: |
          ${{ matrix.prepare }}
          ${{ matrix.install || format('
            curl https://sh.rustup.rs -sSf | sh -s -- -q -y --profile minimal --target {0}
            export PATH="$HOME/.cargo/bin:$PATH"
          ', matrix.target)}}
          cargo test

  check:
    name: Check (${{ matrix.target }})
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        target:
          - x86_64-unknown-illumos
      fail-fast: false

    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Install toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        profile: minimal
        target: ${{ matrix.target }}
        override: true

    - name: Run check
      run: cargo check --target ${{ matrix.target }}

  lint:
    name: Lint
    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Install toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        profile: minimal

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

    - name: Run clippy
      run: cargo clippy --all-targets