2.1 KiB
P04 — Gitea Actions CI
STATUS: DONE
Notes: used ${{ gitea.sha }} in merge_bin output name (CICD example); github.sha not substituted. Runner unverified (no Actions run). No required-check flip (P01 BLOCKED; images not confirmed compiling). Release-attach job skipped.
DEPENDS: P01 (required), P02/P03 (tests job becomes real when tests/host/CMakeLists.txt exists)
READ: this file, docs/CICD.md
OUT: changing firmware sources; enabling branch protection yourself if you lack repo admin — then note BLOCKED for humans
FORBIDDEN: GitHub-only espressif/esp-idf-ci-action as the compile driver; secrets in yaml; required-check flip if firmware still does not compile
IN
Add .gitea/workflows/ci.yml per docs/CICD.md example. Use hashFiles guards:
- test job runs cmake/ctest only if
tests/host/CMakeLists.txtexists - firmware job runs idf.py only if root
CMakeLists.txtexists (P01)
Container: docker.io/espressif/idf:v5.4. fail-fast: false. needs: test on firmware.
Artifact names: firmware-${{ matrix.board }} including merged bin, bootloader, partition-table, flasher_args, sdkconfig, size txt.
Gitea context: try ${{ gitea.sha }}; if runner only has github.sha, use that. Document which in Notes.
Triggers exactly:
on:
pull_request:
branches: [develop]
push:
branches: [develop, "refactor/**", "feature/**"]
tags: ["v*"]
workflow_dispatch:
runs-on: ubuntu-latest.
Firmware matrix: wroom/esp32/sdkconfig.wroom and jc4827w543/esp32s3/sdkconfig.s3.
git config --global --add safe.directory '*' inside container before idf.py.
Do not add a release-attach job unless tag attach API is already used on this Gitea; skip release job in v1.
VERIFY
- yaml parses (python
-c 'import yaml; yaml.safe_load(open(".gitea/workflows/ci.yml"))'if PyYAML present, else visual: valid YAML, two-space indent) - If Gitea runner visible: push and confirm jobs queued. If not: still land file; Notes=
runner not verified
COMMITS
Add Gitea Actions workflow for host tests and dual firmware
DoD
- Path
.gitea/workflows/ci.yml - Guards prevent red on missing tests/host before P02
- STATUS→DONE