ci / test (push) Failing after 35s
Adds TestWorkflow to worker's RegisterWorkflow list so integration tests can execute test workflows against the Temporal cluster.
64 lines
1.8 KiB
Go
64 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"go.temporal.io/sdk/client"
|
|
"go.temporal.io/sdk/worker"
|
|
"github.com/rockliang/poimen/workflows/action"
|
|
"github.com/rockliang/poimen/workflows/internal/config"
|
|
"github.com/rockliang/poimen/workflows/statemachine"
|
|
)
|
|
|
|
func main() {
|
|
// Load configuration
|
|
cfg, err := config.LoadConfig()
|
|
if err != nil {
|
|
log.Fatalf("failed to load config: %v", err)
|
|
}
|
|
|
|
// Connect to Temporal
|
|
c, err := client.Dial(client.Options{
|
|
HostPort: cfg.Temporal.HostPort,
|
|
Namespace: cfg.Temporal.Namespace,
|
|
})
|
|
if err != nil {
|
|
log.Fatalf("failed to connect to temporal: %v", err)
|
|
}
|
|
defer c.Close()
|
|
|
|
// Create worker
|
|
w := worker.New(c, "poimen-taskqueue", worker.Options{})
|
|
if w == nil {
|
|
log.Fatalf("failed to create worker")
|
|
}
|
|
|
|
// Register all workflows
|
|
w.RegisterWorkflow(statemachine.OrchestratorWorkflow)
|
|
w.RegisterWorkflow(statemachine.TaskUnitWorkflow)
|
|
w.RegisterWorkflow(statemachine.TestWorkflow)
|
|
|
|
// Register all activities
|
|
w.RegisterActivity(action.CloneRepoActivity)
|
|
w.RegisterActivity(action.GitWorktreeAddActivity)
|
|
w.RegisterActivity(action.GitCommitActivity)
|
|
w.RegisterActivity(action.GitPushActivity)
|
|
w.RegisterActivity(action.GitSquashMergeActivity)
|
|
w.RegisterActivity(action.GitDiffActivity)
|
|
w.RegisterActivity(action.PrepareSkillsActivity)
|
|
w.RegisterActivity(action.PlanningActivity)
|
|
w.RegisterActivity(action.ImplementerActivity)
|
|
w.RegisterActivity(action.JudgeActivity)
|
|
// Integration and lessons activities - register when fully tested
|
|
// w.RegisterActivity(action.RunIntegrationTestActivity)
|
|
// w.RegisterActivity(action.UpdateLessonsActivity)
|
|
// w.RegisterActivity(action.ReadLessonsActivity)
|
|
|
|
// Run worker
|
|
fmt.Println("Starting worker on queue 'poimen-taskqueue'...")
|
|
if err := w.Run(worker.InterruptCh()); err != nil {
|
|
log.Fatalf("worker failed: %v", err)
|
|
}
|
|
}
|