Files
gronod 415c13a605
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
Add Gitea Actions workflow for host tests and dual firmware
2026-09-16 11:36:52 +00:00

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.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:

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