ci: path fixes
Some checks failed
CI / Build in devcontainer (push) Failing after 4m27s
CI / Host tests in devcontainer (push) Has been skipped

This commit is contained in:
Dmitry Akimov 2026-07-27 11:55:29 +03:00
parent 27d9546bbe
commit 5d0920ca23
2 changed files with 33 additions and 88 deletions

View file

@ -35,18 +35,15 @@ jobs:
tags: tft-devcontainer-ci:latest tags: tft-devcontainer-ci:latest
load: true load: true
- name: Show tool versions in container - name: Show tool versions in container
run: | run: |
docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace tft-devcontainer-ci:latest bash -lc 'just --version && cmake --version && ninja --version && arm-none-eabi-gcc --version | head -n 1 && uv --version' docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace \
tft-devcontainer-ci:latest bash -lc 'just --version && cmake --version && ninja --version && arm-none-eabi-gcc --version | head -n 1 && uv --version'
- name: Sync host Python tools inside container - name: Sync tools and Run CI build
run: | run: |
docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace tft-devcontainer-ci:latest bash -lc 'cd tools/host && uv sync' docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace \
tft-devcontainer-ci:latest bash -lc 'cd tools/host && uv sync && cd ../.. && just ci::build'
- name: Run CI build inside container
run: |
docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace tft-devcontainer-ci:latest bash -lc 'just ci::build'
- name: Upload build directory - name: Upload build directory
if: always() if: always()
@ -80,20 +77,16 @@ jobs:
tags: tft-devcontainer-ci:latest tags: tft-devcontainer-ci:latest
load: true load: true
- name: Download build directory artifact - name: Download build directory artifact
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: build-tree name: build-tree
path: build/ path: build/
- name: Sync host Python tools inside container - name: Sync tools and Run host tests
run: | run: |
docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace tft-devcontainer-ci:latest bash -lc 'cd tools/host && uv sync' docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace \
tft-devcontainer-ci:latest bash -lc 'cd tools/host && uv sync && cd ../.. && just ci::test'
- name: Run host tests inside container
run: |
docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace tft-devcontainer-ci:latest bash -lc 'just ci::test'
- name: Upload test logs and build directory - name: Upload test logs and build directory
if: always() if: always()

View file

@ -1,16 +1,5 @@
name: Release name: Release
# Раздельные теги (bootloader — Фаза 5, firmware/bootloader/PLAN.md):
# firmware_test, bootloader и service-tui версионируются и релизятся
# независимо друг от друга.
# firmware-vX.Y.Z → publish-firmware (только firmware_test_hab.bin, Debug)
# bootloader-vX.Y.Z → publish-bootloader (только bootloader_hab.bin, Release,
# подписан ТЕСТОВЫМ HAB-ключом — см.
# firmware/bootloader/SIGNING_CEREMONY.md)
# tui-vX.Y.Z → publish-tui (service-tui-vX.Y.Z-{macos,windows}.zip)
# HAB firmware_test/bootloader, вшиваемые в TUI-бандл, всегда собираются заново
# из текущего HEAD тега tui-v*, а не берутся из отдельных релизов — так проще
# и не тянет зависимость на чужой GitHub Release.
on: on:
push: push:
tags: tags:
@ -35,11 +24,6 @@ permissions:
contents: write contents: write
jobs: jobs:
# ─────────────────────────────────────────────────────────────────────────
# firmware — собирает HAB Debug firmware_test И HAB Release bootloader.
# Нужна как для standalone firmware-/bootloader-релизов, так и для вшивания
# обоих образов в TUI-бандл (package-tui, Фаза 5) — выполняется всегда.
# ─────────────────────────────────────────────────────────────────────────
firmware: firmware:
name: Build firmware_test HAB (Debug) + bootloader HAB (Release) name: Build firmware_test HAB (Debug) + bootloader HAB (Release)
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -62,12 +46,6 @@ jobs:
tags: tft-devcontainer-ci:latest tags: tft-devcontainer-ci:latest
load: true load: true
- name: Sync host Python tools inside container
run: |
docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace \
tft-devcontainer-ci:latest bash -lc 'cd tools/host && uv sync'
- name: Проверить, что тег совпадает с версией в CMakeLists.txt - name: Проверить, что тег совпадает с версией в CMakeLists.txt
if: startsWith(github.ref, 'refs/tags/firmware-v') if: startsWith(github.ref, 'refs/tags/firmware-v')
run: | run: |
@ -79,10 +57,10 @@ jobs:
fi fi
echo " ✅ Версия тега совпадает с CMakeLists.txt: ${file_version}" echo " ✅ Версия тега совпадает с CMakeLists.txt: ${file_version}"
- name: Собрать firmware_test HAB (Debug) - name: Sync tools and Собрать firmware_test HAB (Debug)
run: | run: |
docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace \ docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace \
tft-devcontainer-ci:latest bash -lc 'just build::hab-firmware-test-debug' tft-devcontainer-ci:latest bash -lc 'cd tools/host && uv sync && cd ../.. && just build::hab-firmware-test-debug'
- name: Upload firmware_test_hab.bin - name: Upload firmware_test_hab.bin
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@ -103,10 +81,10 @@ jobs:
fi fi
echo " ✅ Версия тега совпадает с CMakeLists.txt: ${file_version}" echo " ✅ Версия тега совпадает с CMakeLists.txt: ${file_version}"
- name: Собрать bootloader HAB (Release) - name: Sync tools and Собрать bootloader HAB (Release)
run: | run: |
docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace \ docker run --rm --user root -v "$GITHUB_WORKSPACE":/workspace -w /workspace \
tft-devcontainer-ci:latest bash -lc 'just build::hab-bootloader-release' tft-devcontainer-ci:latest bash -lc 'cd tools/host && uv sync && cd ../.. && just build::hab-bootloader-release'
- name: Upload bootloader_hab.bin - name: Upload bootloader_hab.bin
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@ -116,10 +94,6 @@ jobs:
if-no-files-found: error if-no-files-found: error
retention-days: 14 retention-days: 14
# ─────────────────────────────────────────────────────────────────────────
# publish-firmware — только на тег firmware-v*, отдельный standalone-релиз
# HAB-образа (для tools/host/flash_usb.py и ручной прошивки, не через TUI).
# ─────────────────────────────────────────────────────────────────────────
publish-firmware: publish-firmware:
name: Publish firmware release name: Publish firmware release
needs: firmware needs: firmware
@ -137,23 +111,13 @@ jobs:
name: firmware-hab-debug name: firmware-hab-debug
path: release-assets/ path: release-assets/
- name: Create GitHub Release - name: Create Forgejo Release
env: uses: softprops/action-gh-release@v2
GH_TOKEN: ${{ github.token }} with:
run: | files: release-assets/firmware_test_hab.bin
gh release create "${GITHUB_REF_NAME}" \ name: "firmware_test ${{ github.ref_name }}"
release-assets/firmware_test_hab.bin \ generate_release_notes: true
--title "firmware_test ${GITHUB_REF_NAME#firmware-v}" \
--generate-notes
# ─────────────────────────────────────────────────────────────────────────
# publish-bootloader — только на тег bootloader-v*, отдельный standalone-
# релиз HAB-образа (для tools/host/flash_usb.py / SWD, не через TUI).
# ⚠️ Подписан ТЕСТОВЫМ HAB-ключом (dev/pre-series, HAB Open чип всё равно
# загрузит и unsigned) — реальная SRK-церемония не проведена, см.
# firmware/bootloader/SIGNING_CEREMONY.md. Явно проговорено в release notes,
# чтобы этот asset не приняли за production-подписанный постфактум.
# ─────────────────────────────────────────────────────────────────────────
publish-bootloader: publish-bootloader:
name: Publish bootloader release name: Publish bootloader release
needs: firmware needs: firmware
@ -171,20 +135,13 @@ jobs:
name: bootloader-hab-release name: bootloader-hab-release
path: release-assets/ path: release-assets/
- name: Create GitHub Release - name: Create Forgejo Release
env: uses: softprops/action-gh-release@v2
GH_TOKEN: ${{ github.token }} with:
run: | files: release-assets/bootloader_hab.bin
gh release create "${GITHUB_REF_NAME}" \ name: "bootloader ${{ github.ref_name }}"
release-assets/bootloader_hab.bin \ body: "⚠️ HAB-подпись — ТЕСТОВЫЙ ключ (dev/pre-series, HAB Open). Не production. Реальная SRK-церемония — firmware/bootloader/SIGNING_CEREMONY.md."
--title "bootloader ${GITHUB_REF_NAME#bootloader-v}" \
--notes "⚠️ HAB-подпись — ТЕСТОВЫЙ ключ (dev/pre-series, HAB Open). Не production. Реальная SRK-церемония — firmware/bootloader/SIGNING_CEREMONY.md."
# ─────────────────────────────────────────────────────────────────────────
# service-tui-{macos,windows} — упаковка PyInstaller-бандла с вшитым HAB
# из job firmware. Запускается на тег tui-v* и на workflow_dispatch с
# release_type=tui (для тестового прогона без публикации).
# ─────────────────────────────────────────────────────────────────────────
service-tui-macos: service-tui-macos:
name: Package service-tui (macOS) name: Package service-tui (macOS)
needs: firmware needs: firmware
@ -197,7 +154,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v8.3.2 # без плавающего major-тега начиная с v8 (upstream security policy) — пин точной версии, обновлять периодически uses: astral-sh/setup-uv@v8.3.2
- name: Install just - name: Install just
uses: extractions/setup-just@v4 uses: extractions/setup-just@v4
@ -256,7 +213,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v8.3.2 # без плавающего major-тега начиная с v8 (upstream security policy) — пин точной версии, обновлять периодически uses: astral-sh/setup-uv@v8.3.2
- name: Install just - name: Install just
uses: extractions/setup-just@v4 uses: extractions/setup-just@v4
@ -306,9 +263,6 @@ jobs:
if-no-files-found: error if-no-files-found: error
retention-days: 14 retention-days: 14
# ─────────────────────────────────────────────────────────────────────────
# publish-tui — только на тег tui-v*, релиз с обоими zip-бандлами.
# ─────────────────────────────────────────────────────────────────────────
publish-tui: publish-tui:
name: Publish service-tui release name: Publish service-tui release
needs: [service-tui-macos, service-tui-windows] needs: [service-tui-macos, service-tui-windows]
@ -327,11 +281,9 @@ jobs:
path: release-assets/ path: release-assets/
merge-multiple: true merge-multiple: true
- name: Create GitHub Release - name: Create Forgejo Release
env: uses: softprops/action-gh-release@v2
GH_TOKEN: ${{ github.token }} with:
run: | files: release-assets/*.zip
gh release create "${GITHUB_REF_NAME}" \ name: "service-tui ${{ github.ref_name }}"
release-assets/*.zip \ generate_release_notes: true
--title "service-tui ${GITHUB_REF_NAME#tui-v}" \
--generate-notes