summaryrefslogtreecommitdiff
path: root/.github/workflows/rust.yml
blob: 38d9c128f80ad6a940afd29ef1244cddd2b62b1f (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
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: stm32l072cz,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-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