aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/rust.yml
blob: 69cd9ff144c7246a6d7cb360a8567269b8fb32a2 (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
name: Rust

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

env:
  CARGO_TERM_COLOR: always

jobs:
  ci:
    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: 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: stm32l053r8,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/stm32wb55
            target: thumbv7em-none-eabihf
          - package: examples/stm32f0
            target: thumbv6m-none-eabi

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - uses: actions/cache@v2
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.toml') }}
          restore-keys: |
            ${{ runner.os }}-cargo-${{ 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: |
          export CARGO_TARGET_DIR=$PWD/target
          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
      - name: Check fmt
        run: for i in embassy-*; do (cd $i; cargo fmt -- --check); done

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/cache@v2
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
          restore-keys: |
            ${{ runner.os }}-cargo-
      - name: Test
        run: |
          export CARGO_TARGET_DIR=$PWD/target
          cd embassy
          cargo test

  metapac_gen:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - uses: actions/cache@v2
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
          restore-keys: |
            ${{ runner.os }}-cargo-
      - name: Generate pregenerated metapac
        run: |
          export CARGO_TARGET_DIR=$PWD/target
          cd stm32-metapac-gen
          cargo run --release