跳转至

Actions / Flow Quick Start

This page documents the first ChatTea Actions/Flow surface. It focuses on the acceptance loop that matters for day-to-day automation: register a runner, trigger a workflow through a pull request, inspect the run/job, and read logs.

CLI Surface

chattea runner
├── token
├── list
├── view
├── edit
├── delete
└── setup
    ├── install
    ├── register
    ├── start
    ├── stop
    ├── status
    ├── logs
    └── doctor

chattea run
├── list
├── view
├── jobs
├── logs
├── rerun
├── rerun-failed
└── delete

chattea job
├── view
├── logs
└── rerun

chattea artifact
├── list
├── view
├── download
└── delete

REST API Mapping

chattea runner token       -> POST /repos/{owner}/{repo}/actions/runners/registration-token
chattea runner list        -> GET /repos/{owner}/{repo}/actions/runners
chattea runner view        -> GET /repos/{owner}/{repo}/actions/runners/{runner_id}
chattea runner edit        -> PATCH /repos/{owner}/{repo}/actions/runners/{runner_id}
chattea runner delete      -> DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}

chattea run list           -> GET /repos/{owner}/{repo}/actions/runs
chattea run view           -> GET /repos/{owner}/{repo}/actions/runs/{run}
chattea run jobs           -> GET /repos/{owner}/{repo}/actions/runs/{run}/jobs
chattea run logs           -> composed helper over run jobs + job logs
chattea run rerun          -> POST /repos/{owner}/{repo}/actions/runs/{run}/rerun
chattea run rerun-failed   -> POST /repos/{owner}/{repo}/actions/runs/{run}/rerun-failed-jobs
chattea run delete         -> DELETE /repos/{owner}/{repo}/actions/runs/{run}

chattea job view           -> GET /repos/{owner}/{repo}/actions/jobs/{job_id}
chattea job logs           -> GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs
chattea job rerun          -> POST /repos/{owner}/{repo}/actions/runs/{run}/jobs/{job_id}/rerun

chattea artifact list      -> GET /repos/{owner}/{repo}/actions/artifacts
chattea artifact download  -> GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip
chattea artifact delete    -> DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}

runner setup commands are local system helpers. They install or locate gitea-runner, write local runner config under the ChatTea runtime directory, register the runner with a Gitea registration token, and manage the user systemd service.

Runner Setup

Enable Actions on a ChatTea-managed development server before running workflows:

chattea server config set --section actions --key ENABLED --value true -I
chattea server restart
chattea server health

Install and register a repository-scoped runner:

chattea runner setup install --force
chattea runner setup register --scope repo --repo gitea_admin/demo --name chattea-runner-demo --labels ubuntu-latest:host
chattea runner setup start
chattea runner list --scope repo --repo gitea_admin/demo

The default runner runtime is derived from CHATTEA_HOME and stays under lowercase ChatTea runtime paths:

~/.chatarch/chattea/runner/bin/gitea-runner
~/.chatarch/chattea/runner/config/config.yaml
~/.chatarch/chattea/runner/work

The default label uses the host backend:

ubuntu-latest:host

This avoids requiring Docker for the first development smoke.

PR Trigger Smoke

A minimal workflow can live in .gitea/workflows/pr-smoke.yml:

name: ChatTea PR Smoke
on:
  pull_request:
  push:
jobs:
  smoke:
    runs-on: ubuntu-latest
    steps:
      - name: Print context
        run: |
          echo "chattea actions smoke"
          echo "event=$GITHUB_EVENT_NAME"
          echo "repo=$GITHUB_REPOSITORY"
      - name: Verify shell
        run: |
          pwd
          echo "ok" > smoke-result.txt
          cat smoke-result.txt

After pushing a feature branch and opening a PR, inspect the run:

chattea run list --repo gitea_admin/demo
chattea run view --repo gitea_admin/demo 6
chattea run jobs --repo gitea_admin/demo 6
chattea job logs --repo gitea_admin/demo 6

Verified Local Smoke

On the development server, a real smoke verified:

repo: gitea_admin/actions-pr-smoke-20260708025144
runner: chattea-runner-actions-pr-smoke-20260708025144
pull_request run: 6
job: 6
result: success
log marker: chattea actions smoke

One practical note: creating a PR immediately after pushing a new branch can race with branch visibility. A short retry before PR creation makes the same head=feature/pr-smoke payload succeed.