centralise the larger text vertically #4870
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| branches: | |
| - master | |
| - dev | |
| - main | |
| jobs: | |
| build: | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: alpine:3.21 | |
| strategy: | |
| matrix: | |
| model: | |
| [ | |
| "TS100", | |
| "TS80", | |
| "TS80P", | |
| "Pinecil", | |
| "MHP30", | |
| "Pinecilv2", | |
| "S60", | |
| "S60P", | |
| "T55", | |
| "TS101", | |
| ] | |
| fail-fast: true | |
| steps: | |
| - name: Install dependencies (apk) | |
| run: apk add --no-cache gcc-riscv-none-elf g++-riscv-none-elf gcc-arm-none-eabi g++-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 --break-system-packages bdflib pyyaml | |
| - uses: actions/checkout@v7 | |
| 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: Git meta info | |
| run: echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}" | |
| - name: Build ${{ matrix.model }} | |
| run: cd source && ./build.sh -m ${{ matrix.model }} | |
| - name: Copy license files | |
| run: cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/ | |
| - name: Generate json index file | |
| run: ./source/metadata.py ${{ matrix.model }}.json | |
| - name: Archive ${{ matrix.model }} artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ matrix.model }} | |
| path: | | |
| source/Hexfile/${{ matrix.model }}_*.hex | |
| source/Hexfile/${{ matrix.model }}_*.dfu | |
| source/Hexfile/${{ matrix.model }}_*.bin | |
| source/Hexfile/${{ matrix.model }}_*.elf | |
| source/Hexfile/${{ matrix.model }}.json | |
| source/Hexfile/LICENSE | |
| source/Hexfile/LICENSE_RELEASE.md | |
| if-no-files-found: error | |
| build_multi-lang: | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: alpine:3.21 | |
| strategy: | |
| matrix: | |
| model: ["Pinecil", "Pinecilv2"] | |
| fail-fast: true | |
| steps: | |
| - name: Install dependencies (apk) | |
| run: apk add --no-cache gcc-riscv-none-elf g++-riscv-none-elf gcc-arm-none-eabi g++-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 --break-system-packages bdflib pyyaml | |
| - uses: actions/checkout@v7 | |
| 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: Git meta info | |
| run: echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}" | |
| - name: Build ${{ matrix.model }} | |
| run: make -C source/ -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Belarusian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese | |
| - name: Copy license files | |
| run: cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/ | |
| - name: Generate json index file | |
| run: ./source/metadata.py ${{ matrix.model }}_multi-lang.json | |
| - name: Archive ${{ matrix.model }} artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ matrix.model }}_multi-lang | |
| path: | | |
| source/Hexfile/${{ matrix.model }}_*.hex | |
| source/Hexfile/${{ matrix.model }}_*.dfu | |
| source/Hexfile/${{ matrix.model }}_*.bin | |
| source/Hexfile/${{ matrix.model }}_*.elf | |
| source/Hexfile/${{ matrix.model }}_multi-lang.json | |
| source/Hexfile/LICENSE | |
| source/Hexfile/LICENSE_RELEASE.md | |
| if-no-files-found: error | |
| upload_metadata: | |
| needs: [build, build_multi-lang] | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Download all prebuilts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: source/Hexfile/ | |
| merge-multiple: true | |
| - run: ls -R source/Hexfile | |
| - name: Upload JSONs in bulk as metadata | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: metadata | |
| path: source/Hexfile/*.json | |
| if-no-files-found: error | |
| memory_usage_report: | |
| needs: [build, build_multi-lang] | |
| if: ${{ github.event_name == 'pull_request' }} | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Download all build artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: source/Hexfile/ | |
| merge-multiple: true | |
| - name: Generate memory report from ELF files | |
| run: python3 scripts/ci/generate_memory_usage_report.py --elf-dir source/Hexfile --output memory-usage-comment.md | |
| - name: Comment report on PR | |
| uses: actions/github-script@v8 | |
| with: | |
| script: | | |
| const fs = require('fs'); | |
| const marker = '<!-- ironos-memory-usage-report -->'; | |
| const body = fs.readFileSync('memory-usage-comment.md', 'utf8'); | |
| const fullBody = `${marker}\n${body}`; | |
| const issue_number = context.issue.number; | |
| const comments = await github.paginate( | |
| github.rest.issues.listComments, | |
| { | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number, | |
| per_page: 100, | |
| } | |
| ); | |
| const existing = comments.find( | |
| (comment) => comment.user && comment.user.type === 'Bot' && comment.body && comment.body.includes(marker) | |
| ); | |
| if (existing) { | |
| await github.rest.issues.updateComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| comment_id: existing.id, | |
| body: fullBody, | |
| }); | |
| core.info(`Updated existing memory usage comment: ${existing.id}`); | |
| } else { | |
| const created = await github.rest.issues.createComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number, | |
| body: fullBody, | |
| }); | |
| core.info(`Created memory usage comment: ${created.data.id}`); | |
| } | |
| tests: | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: alpine:3.21 | |
| steps: | |
| - name: Install dependencies (apk) | |
| run: apk add --no-cache python3 py3-pip make git bash findutils gcc musl-dev | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: true | |
| - name: Install dependencies (python) | |
| run: python3 -m pip install --break-system-packages bdflib pyyaml | |
| - name: Run python tests | |
| run: ./Translations/make_translation_test.py | |
| - name: Run BriefLZ tests | |
| run: make -C source/ Objects/host/brieflz/libbrieflz.so && ./Translations/brieflz_test.py | |
| check_c-cpp: | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: alpine:3.21 | |
| steps: | |
| - name: Install dependencies (apk) | |
| run: apk add --no-cache make git diffutils findutils clang-extra-tools bash | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: true | |
| - name: Check format style with clang-format | |
| run: make clean check-style | |
| check-settings-docs: | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: alpine:3.21 | |
| steps: | |
| - name: Install dependencies (apk) | |
| run: apk add --no-cache python3 git | |
| - uses: actions/checkout@v7 | |
| - name: Git ownership exception | |
| run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE" | |
| - name: Run the menu docs generator | |
| run: python3 "$GITHUB_WORKSPACE/Translations/gen_menu_docs.py" | |
| - name: Check that Documentation/Settings.md didn't change | |
| run: git -C "$GITHUB_WORKSPACE" diff --exit-code | |
| check_python: | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: alpine:3.21 | |
| steps: | |
| - name: Install dependencies (apk) | |
| run: apk add --no-cache python3 py3-pip make git black | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: true | |
| - name: Install dependencies (python) | |
| run: python3 -m pip install --break-system-packages bdflib pyyaml flake8 | |
| - name: Check python formatting with black | |
| run: black --diff --check Translations | |
| - name: Check python with flake8 | |
| run: flake8 Translations | |
| check_shell: | |
| name: check_shell | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - 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. | |
| check_docs: | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: alpine:3.21 | |
| steps: | |
| - name: Install dependencies (apk) | |
| run: apk add --no-cache git bash grep | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: true | |
| fetch-tags: true | |
| fetch-depth: 0 | |
| - name: Git ownership exception | |
| run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE" | |
| - name: Check and verify documentation | |
| run: ./scripts/deploy.sh docs |