aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/rust.yml
blob: de500c3a7e4a523cf8a5537798ce89aab93d574d (plain)
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
name: Rust

on:
  push:
    branches: [ staging, trying, master ]
  pull_request:
    branches: [ master ]

env:
  CARGO_TERM_COLOR: always

jobs:
  all:
    runs-on: ubuntu-20.04
    needs: [build, fmt, test, metapac_gen]
    steps:
      - name: Done
        run: exit 0
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - package: embassy
            target: thumbv7em-none-eabi
          - package: embassy
            target: thumbv7em-none-eabi
            features: log,executor-agnostic
          - package: embassy
            target: thumbv7em-none-eabi
            features: defmt
          - package: embassy
            target: thumbv6m-none-eabi
            features: defmt

          - package: examples/std
            target: x86_64-unknown-linux-gnu

          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52805
          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52810
          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52811
          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52820
          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52832
          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52833
          - package: embassy-nrf
            target: thumbv8m.main-none-eabihf
            features: nrf9160-s
          - package: embassy-nrf
            target: thumbv8m.main-none-eabihf
            features: nrf9160-ns
          - package: embassy-nrf
            target: thumbv8m.main-none-eabihf
            features: nrf5340-app-s
          - package: embassy-nrf
            target: thumbv8m.main-none-eabihf
            features: nrf5340-app-ns
          - package: embassy-nrf
            target: thumbv8m.main-none-eabihf
            features: nrf5340-net
          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52840
          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52840,log
          - package: embassy-nrf
            target: thumbv7em-none-eabi
            features: nrf52840,defmt
          - package: examples/nrf
            target: thumbv7em-none-eabi

          - package: examples/rp
            target: thumbv6m-none-eabi

          - package: embassy-stm32
            target: thumbv7em-none-eabi
            features: stm32f411ce,defmt
          - package: embassy-stm32
            target: thumbv7em-none-eabi
            features: stm32f429zi,log
          - package: embassy-stm32
            target: thumbv7em-none-eabi
            features: stm32h755zi_cm7,defmt
          - package: embassy-stm32
            target: thumbv7em-none-eabi
            features: stm32l476vg,defmt
          - package: embassy-stm32
            target: thumbv6m-none-eabi
            features: stm32l072cz,defmt
          - package: embassy-stm32
            target: thumbv7m-none-eabi
            features: stm32l151cb-a,defmt
          - package: examples/stm32f4
            target: thumbv7em-none-eabi
          - package: examples/stm32l4
            target: thumbv7em-none-eabi
          - package: examples/stm32h7
            target: thumbv7em-none-eabi
          - package: examples/stm32l0
            target: thumbv6m-none-eabi
          - package: examples/stm32l1
            target: thumbv7m-none-eabi
          - package: examples/stm32wb55
            target: thumbv7em-none-eabihf
          - package: examples/stm32wl55
            target: thumbv7em-none-eabihf
          - package: examples/stm32f0
            target: thumbv6m-none-eabi
          - package: examples/stm32g0
            target: thumbv6m-none-eabi
          - package: examples/wasm
            target: wasm32-unknown-unknown
          - package: examples/stm32f1
            target: thumbv7m-none-eabi
          - package: examples/stm32f7
            target: thumbv7em-none-eabihf
          - package: examples/stm32u5
            target: thumbv7em-none-eabihf
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: cache
        id: cache-target
        uses: actions/cache@v2
        with:
          path: target
          key: ${{ runner.os }}-${{ matrix.target }}

      # We have to append the "-D warnings" flag to .cargo/config rather than
      # using the RUSTFLAGS environment variable because if we set RUSTFLAGS
      # cargo will ignore the rustflags config in .cargo/config.
      - name: Check
        run: |
          mkdir -p .cargo
          echo -e '[target."cfg(all())"]\nrustflags = ["-D", "warnings"]' >> .cargo/config
          cd ${{ matrix.package }} && RUSTFLAGS=-Dwarnings cargo check --features=${{ matrix.features }} --target=${{ matrix.target }}

  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Check fmt
        run: find -name '*.rs' | xargs rustfmt --check  --skip-children --unstable-features --edition 2018

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Test
        run: cd embassy && cargo test

  metapac_gen:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Generate pregenerated metapac
        run: cd stm32-metapac-gen; cargo run --release