Skip to content

ci: generate wfctl-centered build jobs#590

Merged
intel352 merged 6 commits into
mainfrom
codex/wfctl-compute-ci-generate
May 9, 2026
Merged

ci: generate wfctl-centered build jobs#590
intel352 merged 6 commits into
mainfrom
codex/wfctl-compute-ci-generate

Conversation

@intel352

@intel352 intel352 commented May 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • update generated GitHub Actions and GitLab CI build jobs to dogfood wfctl for test and build phases
  • keep generated CI provider-neutral: no registry push, cloud provider, or secret-name assumptions

Verification

  • GOWORK=off go test ./cmd/wfctl
  • focused generator tests for GitHub Actions and GitLab CI

Boundary notes

  • project-specific publish/deploy secret wiring remains in project YAML or provider plugins
  • wfctl generation stays limited to portable lifecycle commands

Use wfctl ci run and wfctl build in generated CI instead of raw go test/go build commands. Antagonistic review removed default publish behavior to keep generated jobs validation-only.
Copilot AI review requested due to automatic review settings May 9, 2026 21:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates wfctl ci generate’s produced GitHub Actions / GitLab CI build jobs to “dogfood” wfctl for running tests and builds, instead of invoking raw go test / go build directly. This aligns CI generation with the project’s portable lifecycle commands and keeps the generated pipelines focused on build/test (no pushes).

Changes:

  • GitHub Actions build workflow now installs wfctl, runs wfctl ci run --phase test, then wfctl build --no-push.
  • GitLab CI build job similarly installs wfctl and uses wfctl for test/build steps.
  • Generator tests updated to assert the new wfctl-based commands are present and old go build ./... is absent.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
cmd/wfctl/ci.go Adjusts generated CI templates to install and use wfctl for test/build phases.
cmd/wfctl/ci_test.go Updates tests to validate the new wfctl-based CI template output.

Comment thread cmd/wfctl/ci.go Outdated
Comment thread cmd/wfctl/ci.go Outdated
Comment thread cmd/wfctl/ci.go Outdated
@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:262: parsing iteration count: invalid syntax
baseline-bench.txt:335171: parsing iteration count: invalid syntax
baseline-bench.txt:632778: parsing iteration count: invalid syntax
baseline-bench.txt:945484: parsing iteration count: invalid syntax
baseline-bench.txt:1271771: parsing iteration count: invalid syntax
baseline-bench.txt:1630971: parsing iteration count: invalid syntax
benchmark-results.txt:262: parsing iteration count: invalid syntax
benchmark-results.txt:343514: parsing iteration count: invalid syntax
benchmark-results.txt:649296: parsing iteration count: invalid syntax
benchmark-results.txt:960589: parsing iteration count: invalid syntax
benchmark-results.txt:1252757: parsing iteration count: invalid syntax
benchmark-results.txt:1793991: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ benchmark-results.txt │
                            │        sec/op         │
InterpreterCreation-4                 4.046m ± 182%
ComponentLoad-4                       3.553m ±   0%
ComponentExecute-4                    1.929µ ±   2%
PoolContention/workers-1-4            1.081µ ±   1%
PoolContention/workers-2-4            1.076µ ±   3%
PoolContention/workers-4-4            1.080µ ±   1%
PoolContention/workers-8-4            1.095µ ±   5%
PoolContention/workers-16-4           1.081µ ±   1%
ComponentLifecycle-4                  3.576m ±   1%
SourceValidation-4                    2.305µ ±   1%
RegistryConcurrent-4                  807.1n ±   3%
LoaderLoadFromString-4                3.586m ±   0%
geomean                               17.76µ

                            │ benchmark-results.txt │
                            │         B/op          │
InterpreterCreation-4                  2.027Mi ± 0%
ComponentLoad-4                        2.180Mi ± 0%
ComponentExecute-4                     1.203Ki ± 0%
PoolContention/workers-1-4             1.203Ki ± 0%
PoolContention/workers-2-4             1.203Ki ± 0%
PoolContention/workers-4-4             1.203Ki ± 0%
PoolContention/workers-8-4             1.203Ki ± 0%
PoolContention/workers-16-4            1.203Ki ± 0%
ComponentLifecycle-4                   2.183Mi ± 0%
SourceValidation-4                     1.984Ki ± 0%
RegistryConcurrent-4                   1.133Ki ± 0%
LoaderLoadFromString-4                 2.182Mi ± 0%
geomean                                15.25Ki

                            │ benchmark-results.txt │
                            │       allocs/op       │
InterpreterCreation-4                   15.68k ± 0%
ComponentLoad-4                         18.02k ± 0%
ComponentExecute-4                       25.00 ± 0%
PoolContention/workers-1-4               25.00 ± 0%
PoolContention/workers-2-4               25.00 ± 0%
PoolContention/workers-4-4               25.00 ± 0%
PoolContention/workers-8-4               25.00 ± 0%
PoolContention/workers-16-4              25.00 ± 0%
ComponentLifecycle-4                    18.07k ± 0%
SourceValidation-4                       32.00 ± 0%
RegistryConcurrent-4                     2.000 ± 0%
LoaderLoadFromString-4                  18.06k ± 0%
geomean                                  183.3

cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                            │ baseline-bench.txt │
                            │       sec/op       │
InterpreterCreation-4              4.285m ± 139%
ComponentLoad-4                    3.441m ±   2%
ComponentExecute-4                 1.858µ ±   2%
PoolContention/workers-1-4         1.183µ ±   1%
PoolContention/workers-2-4         1.190µ ±   1%
PoolContention/workers-4-4         1.182µ ±   1%
PoolContention/workers-8-4         1.186µ ±   1%
PoolContention/workers-16-4        1.186µ ±   2%
ComponentLifecycle-4               3.465m ±   0%
SourceValidation-4                 2.237µ ±   1%
RegistryConcurrent-4               875.1n ±   1%
LoaderLoadFromString-4             3.503m ±   1%
geomean                            18.42µ

                            │ baseline-bench.txt │
                            │        B/op        │
InterpreterCreation-4               2.027Mi ± 0%
ComponentLoad-4                     2.180Mi ± 0%
ComponentExecute-4                  1.203Ki ± 0%
PoolContention/workers-1-4          1.203Ki ± 0%
PoolContention/workers-2-4          1.203Ki ± 0%
PoolContention/workers-4-4          1.203Ki ± 0%
PoolContention/workers-8-4          1.203Ki ± 0%
PoolContention/workers-16-4         1.203Ki ± 0%
ComponentLifecycle-4                2.183Mi ± 0%
SourceValidation-4                  1.984Ki ± 0%
RegistryConcurrent-4                1.133Ki ± 0%
LoaderLoadFromString-4              2.182Mi ± 0%
geomean                             15.25Ki

                            │ baseline-bench.txt │
                            │     allocs/op      │
InterpreterCreation-4                15.68k ± 0%
ComponentLoad-4                      18.02k ± 0%
ComponentExecute-4                    25.00 ± 0%
PoolContention/workers-1-4            25.00 ± 0%
PoolContention/workers-2-4            25.00 ± 0%
PoolContention/workers-4-4            25.00 ± 0%
PoolContention/workers-8-4            25.00 ± 0%
PoolContention/workers-16-4           25.00 ± 0%
ComponentLifecycle-4                 18.07k ± 0%
SourceValidation-4                    32.00 ± 0%
RegistryConcurrent-4                  2.000 ± 0%
LoaderLoadFromString-4               18.06k ± 0%
geomean                               183.3

pkg: github.com/GoCodeAlone/workflow/middleware
cpu: AMD EPYC 7763 64-Core Processor                
                                  │ benchmark-results.txt │
                                  │        sec/op         │
CircuitBreakerDetection-4                     286.3n ± 4%
CircuitBreakerExecution_Success-4             21.53n ± 0%
CircuitBreakerExecution_Failure-4             66.33n ± 0%
geomean                                       74.22n

                                  │ benchmark-results.txt │
                                  │         B/op          │
CircuitBreakerDetection-4                    144.0 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

                                  │ benchmark-results.txt │
                                  │       allocs/op       │
CircuitBreakerDetection-4                    1.000 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                                  │ baseline-bench.txt │
                                  │       sec/op       │
CircuitBreakerDetection-4                  452.9n ± 4%
CircuitBreakerExecution_Success-4          59.68n ± 0%
CircuitBreakerExecution_Failure-4          64.78n ± 0%
geomean                                    120.5n

                                  │ baseline-bench.txt │
                                  │        B/op        │
CircuitBreakerDetection-4                 144.0 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │
                                  │     allocs/op      │
CircuitBreakerDetection-4                 1.000 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
cpu: AMD EPYC 7763 64-Core Processor                
                                 │ benchmark-results.txt │
                                 │        sec/op         │
JQTransform_Simple-4                        865.0n ± 30%
JQTransform_ObjectConstruction-4            1.428µ ±  0%
JQTransform_ArraySelect-4                   3.268µ ±  0%
JQTransform_Complex-4                       37.83µ ±  1%
JQTransform_Throughput-4                    1.753µ ±  0%
SSEPublishDelivery-4                        63.70n ±  2%
geomean                                     1.604µ

                                 │ benchmark-results.txt │
                                 │         B/op          │
JQTransform_Simple-4                      1.273Ki ± 0%
JQTransform_ObjectConstruction-4          1.773Ki ± 0%
JQTransform_ArraySelect-4                 2.625Ki ± 0%
JQTransform_Complex-4                     16.22Ki ± 0%
JQTransform_Throughput-4                  1.984Ki ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                 │ benchmark-results.txt │
                                 │       allocs/op       │
JQTransform_Simple-4                        10.00 ± 0%
JQTransform_ObjectConstruction-4            15.00 ± 0%
JQTransform_ArraySelect-4                   30.00 ± 0%
JQTransform_Complex-4                       324.0 ± 0%
JQTransform_Throughput-4                    17.00 ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                                 │ baseline-bench.txt │
                                 │       sec/op       │
JQTransform_Simple-4                     986.7n ± 16%
JQTransform_ObjectConstruction-4         1.473µ ±  2%
JQTransform_ArraySelect-4                3.185µ ±  1%
JQTransform_Complex-4                    35.21µ ±  1%
JQTransform_Throughput-4                 1.785µ ±  3%
SSEPublishDelivery-4                     76.89n ±  8%
geomean                                  1.679µ

                                 │ baseline-bench.txt │
                                 │        B/op        │
JQTransform_Simple-4                   1.273Ki ± 0%
JQTransform_ObjectConstruction-4       1.773Ki ± 0%
JQTransform_ArraySelect-4              2.625Ki ± 0%
JQTransform_Complex-4                  16.22Ki ± 0%
JQTransform_Throughput-4               1.984Ki ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │
                                 │     allocs/op      │
JQTransform_Simple-4                     10.00 ± 0%
JQTransform_ObjectConstruction-4         15.00 ± 0%
JQTransform_ArraySelect-4                30.00 ± 0%
JQTransform_Complex-4                    324.0 ± 0%
JQTransform_Throughput-4                 17.00 ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ benchmark-results.txt │
                                    │        sec/op         │
SchemaValidation_Simple-4                      1.104µ ± 15%
SchemaValidation_AllFields-4                   1.668µ ±  1%
SchemaValidation_FormatValidation-4            1.597µ ±  4%
SchemaValidation_ManySchemas-4                 1.817µ ±  2%
geomean                                        1.520µ

                                    │ benchmark-results.txt │
                                    │         B/op          │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

                                    │ benchmark-results.txt │
                                    │       allocs/op       │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                                    │ baseline-bench.txt │
                                    │       sec/op       │
SchemaValidation_Simple-4                   1.030µ ±  4%
SchemaValidation_AllFields-4                1.557µ ± 23%
SchemaValidation_FormatValidation-4         1.485µ ±  2%
SchemaValidation_ManySchemas-4              1.507µ ±  3%
geomean                                     1.376µ

                                    │ baseline-bench.txt │
                                    │        B/op        │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │
                                    │     allocs/op      │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
cpu: AMD EPYC 7763 64-Core Processor                
                                   │ benchmark-results.txt │
                                   │        sec/op         │
EventStoreAppend_InMemory-4                   1.202µ ± 13%
EventStoreAppend_SQLite-4                     1.353m ±  2%
GetTimeline_InMemory/events-10-4              13.51µ ±  5%
GetTimeline_InMemory/events-50-4              77.60µ ±  3%
GetTimeline_InMemory/events-100-4             156.8µ ±  2%
GetTimeline_InMemory/events-500-4             808.6µ ±  1%
GetTimeline_InMemory/events-1000-4            1.344m ± 19%
GetTimeline_SQLite/events-10-4                108.2µ ±  1%
GetTimeline_SQLite/events-50-4                254.0µ ±  1%
GetTimeline_SQLite/events-100-4               430.0µ ±  1%
GetTimeline_SQLite/events-500-4               1.827m ±  0%
GetTimeline_SQLite/events-1000-4              3.561m ±  1%
geomean                                       230.4µ

                                   │ benchmark-results.txt │
                                   │         B/op          │
EventStoreAppend_InMemory-4                     760.0 ± 6%
EventStoreAppend_SQLite-4                     1.983Ki ± 1%
GetTimeline_InMemory/events-10-4              7.953Ki ± 0%
GetTimeline_InMemory/events-50-4              46.62Ki ± 0%
GetTimeline_InMemory/events-100-4             94.48Ki ± 0%
GetTimeline_InMemory/events-500-4             472.8Ki ± 0%
GetTimeline_InMemory/events-1000-4            944.3Ki ± 0%
GetTimeline_SQLite/events-10-4                16.74Ki ± 0%
GetTimeline_SQLite/events-50-4                87.14Ki ± 0%
GetTimeline_SQLite/events-100-4               175.4Ki ± 0%
GetTimeline_SQLite/events-500-4               846.1Ki ± 0%
GetTimeline_SQLite/events-1000-4              1.639Mi ± 0%
geomean                                       67.12Ki

                                   │ benchmark-results.txt │
                                   │       allocs/op       │
EventStoreAppend_InMemory-4                     7.000 ± 0%
EventStoreAppend_SQLite-4                       53.00 ± 0%
GetTimeline_InMemory/events-10-4                125.0 ± 0%
GetTimeline_InMemory/events-50-4                653.0 ± 0%
GetTimeline_InMemory/events-100-4              1.306k ± 0%
GetTimeline_InMemory/events-500-4              6.514k ± 0%
GetTimeline_InMemory/events-1000-4             13.02k ± 0%
GetTimeline_SQLite/events-10-4                  382.0 ± 0%
GetTimeline_SQLite/events-50-4                 1.852k ± 0%
GetTimeline_SQLite/events-100-4                3.681k ± 0%
GetTimeline_SQLite/events-500-4                18.54k ± 0%
GetTimeline_SQLite/events-1000-4               37.29k ± 0%
geomean                                        1.162k

cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                                   │ baseline-bench.txt │
                                   │       sec/op       │
EventStoreAppend_InMemory-4                1.123µ ± 13%
EventStoreAppend_SQLite-4                  883.7µ ±  3%
GetTimeline_InMemory/events-10-4           13.47µ ±  3%
GetTimeline_InMemory/events-50-4           74.11µ ±  3%
GetTimeline_InMemory/events-100-4          116.5µ ± 24%
GetTimeline_InMemory/events-500-4          594.0µ ±  1%
GetTimeline_InMemory/events-1000-4         1.208m ±  1%
GetTimeline_SQLite/events-10-4             85.10µ ±  1%
GetTimeline_SQLite/events-50-4             235.6µ ±  3%
GetTimeline_SQLite/events-100-4            419.1µ ±  1%
GetTimeline_SQLite/events-500-4            1.882m ±  2%
GetTimeline_SQLite/events-1000-4           3.668m ±  2%
geomean                                    202.7µ

                                   │ baseline-bench.txt │
                                   │        B/op        │
EventStoreAppend_InMemory-4                 823.5 ± 10%
EventStoreAppend_SQLite-4                 1.985Ki ±  1%
GetTimeline_InMemory/events-10-4          7.953Ki ±  0%
GetTimeline_InMemory/events-50-4          46.62Ki ±  0%
GetTimeline_InMemory/events-100-4         94.48Ki ±  0%
GetTimeline_InMemory/events-500-4         472.8Ki ±  0%
GetTimeline_InMemory/events-1000-4        944.3Ki ±  0%
GetTimeline_SQLite/events-10-4            16.74Ki ±  0%
GetTimeline_SQLite/events-50-4            87.14Ki ±  0%
GetTimeline_SQLite/events-100-4           175.4Ki ±  0%
GetTimeline_SQLite/events-500-4           846.1Ki ±  0%
GetTimeline_SQLite/events-1000-4          1.639Mi ±  0%
geomean                                   67.58Ki

                                   │ baseline-bench.txt │
                                   │     allocs/op      │
EventStoreAppend_InMemory-4                  7.000 ± 0%
EventStoreAppend_SQLite-4                    53.00 ± 0%
GetTimeline_InMemory/events-10-4             125.0 ± 0%
GetTimeline_InMemory/events-50-4             653.0 ± 0%
GetTimeline_InMemory/events-100-4           1.306k ± 0%
GetTimeline_InMemory/events-500-4           6.514k ± 0%
GetTimeline_InMemory/events-1000-4          13.02k ± 0%
GetTimeline_SQLite/events-10-4               382.0 ± 0%
GetTimeline_SQLite/events-50-4              1.852k ± 0%
GetTimeline_SQLite/events-100-4             3.681k ± 0%
GetTimeline_SQLite/events-500-4             18.54k ± 0%
GetTimeline_SQLite/events-1000-4            37.29k ± 0%
geomean                                     1.162k

Benchmarks run with go test -bench=. -benchmem -count=6.
Regressions ≥ 20% are flagged. Results compared via benchstat.

Copilot AI review requested due to automatic review settings May 9, 2026 21:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Comment thread cmd/wfctl/ci.go Outdated
Comment thread cmd/wfctl/ci.go Outdated
Comment thread cmd/wfctl/ci.go
Copilot AI review requested due to automatic review settings May 9, 2026 22:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.

Comment thread cmd/wfctl/ci.go Outdated
Comment thread cmd/wfctl/ci.go Outdated
@intel352 intel352 merged commit a3f623d into main May 9, 2026
18 checks passed
@intel352 intel352 deleted the codex/wfctl-compute-ci-generate branch May 9, 2026 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants