ci / test (pull_request) Failing after 12s
ci / firmware (jc4827w543, sdkconfig.s3, esp32s3) (pull_request) Skipped
ci / firmware (wroom, sdkconfig.wroom, esp32) (pull_request) Skipped
ci / test (push) Failing after 11s
ci / firmware (jc4827w543, sdkconfig.s3, esp32s3) (push) Skipped
ci / firmware (wroom, sdkconfig.wroom, esp32) (push) Skipped
57 lines
2.1 KiB
Markdown
57 lines
2.1 KiB
Markdown
# 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.txt` exists
|
|
- firmware job runs idf.py only if root `CMakeLists.txt` exists (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:
|
|
|
|
```yaml
|
|
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
|
|
|
|
1. `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
|