fix(actions): widen workflow_payload to MEDIUMBLOB — Actions creates no run (#815) #816

Merged
jmiller merged 1 commits from feature/815-workflow-payload into dev 2026-07-19 00:05:33 +00:00

1 Commits

Author SHA1 Message Date
jmiller c7507377c7 fix(actions): widen action_run_job.workflow_payload to MEDIUMBLOB (#815)
Universal: Auto Version Bump / Version Bump (push) Successful in 21s
Generic: Project CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Universal: PR Check / Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Gitea Actions accepted workflow_dispatch (HTTP 204) but created no run: the async
InsertRun failed with MySQL 1406 "Data too long for column 'workflow_payload'".
ActionRunJob.WorkflowPayload was an untyped []byte -> plain BLOB (64 KiB) on
MySQL/MariaDB. At run creation the whole SingleWorkflow is interpolated (every
${{ vars.* }} / git context) and marshaled into that column, so large single-job
workflows (deploy-*.yml with big inline scripts + many vars) overflowed it and
the run was silently dropped.

- run_job.go: tag WorkflowPayload `xorm:"MEDIUMBLOB"` (16 MiB) so NEW installs get
  a wide column.
- migration 371 (v372.go): ALTER existing action_run_job.workflow_payload
  BLOB -> MEDIUMBLOB on MySQL/MariaDB; no-op on Postgres/SQLite (unbounded).

Permanently unblocks all deploy tiers regardless of the concurrency-block
workaround. Fixes #815.

Authored-by: Moko Consulting
2026-07-18 17:03:15 -05:00