name: CI on: [push, pull_request] jobs: build: runs-on: ubuntu-20.04 container: image: alpine:3.15 strategy: matrix: model: ["TS100", "TS80", "TS80P", "Pinecil", "MHP30"] fail-fast: true steps: - name: Install dependencies (apk) run: apk add --no-cache gcc-riscv-none-elf gcc-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash - name: Install dependencies (python) run: python3 -m pip install bdflib - uses: actions/checkout@v3 with: submodules: true - name: Git ownership exception run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE" - 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@v3 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 - name: Generate json index file run: cd source && python3 metadata.py ${{ matrix.model }}.json - name: Archive ${{ matrix.model }} index file uses: actions/upload-artifact@v3 with: name: metadata path: source/Hexfile/${{ matrix.model }}.json build_multi-lang: runs-on: ubuntu-20.04 container: image: alpine:3.15 strategy: matrix: model: ["Pinecil"] fail-fast: true steps: - name: Install dependencies (apk) run: apk add --no-cache gcc-riscv-none-elf gcc-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash musl-dev - name: Install dependencies (python) run: python3 -m pip install bdflib - uses: actions/checkout@v3 with: submodules: true - name: Git ownership exception run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE" - 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@v3 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 - name: Generate json index file run: cd source && python3 metadata.py Pinecil_multi-lang.json - name: Archive ${{ matrix.model }} index file uses: actions/upload-artifact@v3 with: name: metadata path: source/Hexfile/Pinecil_multi-lang.json tests: runs-on: ubuntu-20.04 container: image: alpine:3.15 steps: - name: deps run: apk add --no-cache python3 py3-pip make git bash findutils gcc musl-dev - uses: actions/checkout@v3 with: submodules: true - name: install black run: python3 -m pip 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 container: image: alpine:3.15 steps: - name: deps run: apk add --no-cache python3 py3-pip make git - uses: actions/checkout@v3 with: submodules: true - name: install black run: 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 shellcheck: name: runner / shellcheck runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: shellcheck uses: reviewdog/action-shellcheck@v1 with: github_token: ${{ secrets.github_token }} reporter: github-pr-review # Change reporter. exclude: "./.git/*" # Optional. check_all_files_with_shebangs: "false" # Optional.