aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/push.yml
blob: 65cfce2d1a7c200c7fe6996301189b089b807e58 (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
name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        model: ["TS100", "TS80", "TS80P", "Pinecil", "MHP30"]
      fail-fast: true

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true

      - name: chmod
        run: chmod +x setup.sh && chmod +x source/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build

      - name: Cached compiler source files
        uses: actions/cache@v2.1.6
        env:
          cache-name: cache-compilers
        with:
          path: /build/cache
          key: ${{ runner.os }}-build-${{ env.cache-name }}
          restore-keys: |
            ${{ runner.os }}-

      - name: setup
        run: ./setup.sh

      - name: build ${{ matrix.model }}
        run: cd source && ./build.sh -m ${{ matrix.model }}

      - name: copy license text
        run: |
          cp LICENSE source/Hexfile/LICENSE
          cp LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md

      - name: Archive ${{ matrix.model }} artifacts
        uses: actions/upload-artifact@v2
        with:
          name: ${{ matrix.model }}
          path: |
            source/Hexfile/${{ matrix.model }}_*.hex
            source/Hexfile/${{ matrix.model }}_*.dfu
            source/Hexfile/LICENSE
            source/Hexfile/LICENSE_RELEASE.md
          if-no-files-found: error

  build_multi-lang:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        model: ["Pinecil"]
      fail-fast: true

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true

      - name: chmod
        run: chmod +x setup.sh && chmod +x source/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build

      - name: Cached compiler source files
        uses: actions/cache@v2.1.6
        env:
          cache-name: cache-compilers
        with:
          path: /build/cache
          key: ${{ runner.os }}-build-${{ env.cache-name }}
          restore-keys: |
            ${{ runner.os }}-

      - name: setup
        run: ./setup.sh

      - name: build ${{ matrix.model }}
        run: cd source && make -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese

      - name: copy license text
        run: |
          cp LICENSE source/Hexfile/LICENSE
          cp LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md

      - name: Archive ${{ matrix.model }} artifacts
        uses: actions/upload-artifact@v2
        with:
          name: ${{ matrix.model }}_multi-lang
          path: |
            source/Hexfile/${{ matrix.model }}_*.hex
            source/Hexfile/${{ matrix.model }}_*.dfu
            source/Hexfile/LICENSE
            source/Hexfile/LICENSE_RELEASE.md
          if-no-files-found: error

  tests:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true

      - name: Setup
        run: sudo apt-get update && sudo apt-get install -y python3 && pip3 install bdflib

      - name: Run python tests
        run: cd Translations && chmod +x make_translation_test.py && ./make_translation_test.py

      - name: Run BriefLZ tests
        run: |
          cd source
          make Objects/host/brieflz/libbrieflz.so
          cd ../Translations
          chmod +x brieflz_test.py
          ./brieflz_test.py

  check_formatting:
    runs-on: ubuntu-20.04

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true

      - name: chmod
        run: chmod +x setup.sh && chmod +x source/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build

      - name: Cached compiler source files
        uses: actions/cache@v2.1.6
        env:
          cache-name: cache-compilers
        with:
          # we deliberately persist a cache folder forwards
          path: /build/cache
          key: ${{ runner.os }}-build-${{ env.cache-name }}
          restore-keys: |
            ${{ runner.os }}-

      - name: setup
        run: sudo apt-get update && sudo apt-get install -y make clang git python3 python3-pip && python3 -m pip install bdflib black flake8
      - name: Check formatting with clang-format
        run: cd source && make clean && make check-style

      - name: Check python formatting with black
        run: black --check Translations

      - name: Check python with flake8
        run: flake8 Translations