Skip to content

Add agent execution, Perforce integration, and Docker publishing#35

Merged
sebastianrath merged 36 commits intomainfrom
agent
Apr 8, 2026
Merged

Add agent execution, Perforce integration, and Docker publishing#35
sebastianrath merged 36 commits intomainfrom
agent

Conversation

@sebastianrath
Copy link
Copy Markdown
Member

This PR adds an agent package for remote job execution with orchestrator communication, artifact uploads/downloads, and workspace management.

Also:

  • Integrate Perforce (P4) as a VCS provider with SSL support.
  • Switch Docker base image from Alpine to Ubuntu 24.04, add multi-arch builds (x64/arm64), and set up image publishing on tag pushes.
  • Various fixes for path traversal, goroutine leaks, data races, and OpenSSL cross-compilation on Linux arm64.

sebastianrath and others added 30 commits April 4, 2026 20:58
- Add NodeStateCallback to ExecutionState and RunOpts for tracking node
  start/finish events during graph execution
- Add IntOrString type for YAML fields that accept integers or expressions
  (timeout-minutes, max-parallel)
- Refactor ActfileSchema to use getter/setter instead of exported variable
- Switch to SetGlobalNormalizationFunc for flag normalization
Implements the agent worker that polls an orchestration server for jobs,
checks out source via Git or Perforce, executes pipelines (natively or
in Docker), streams logs, reports metrics/heartbeats, and manages
Vault secret injection. Includes VCS providers, Docker support,
environment mapping resolution, and node state reporting.
- Add artifact-upload, artifact-download, and workspace-download nodes
  for orchestrator-managed file transfer during agent runs
- Add agent CLI subcommand with polling, restart logic, and signal handling
- Integrate NodeReporter into cmd_root for real-time node state tracking
  when running under an agent (BUILD_JOB_ID env var)
- Add P4 C/C++ API headers for macOS (required for p4go CGO build)
- Add game-build-pipeline example demonstrating multi-stage builds with
  workspace download, artifact upload, and error handling
- Document Perforce build setup in README
VCS providers (git, p4, orchestrator) now fetch only the pipeline file
rather than cloning the entire repository. The full repo clone is
delegated to graph nodes (e.g. git-clone, repo-download). This also
renames WorkspaceToken to RepoToken across the agent layer.
…port

- Rename workspace-download node to repo-download with updated API
  endpoints (/workspace/ -> /repo/) and env var (BUILD_WORKSPACE_TOKEN
  -> BUILD_REPO_TOKEN)
- Add optional alias input to artifact-upload node
- Move artifact nodes to orchestrator category
- Update example pipeline to use repo-download
- Revert script block from |- (literal) back to > (folded) since the
  script was written for folded syntax
- Replace if/else/fi block with single-line && chain for Linux arm64
  OpenSSL, as multi-line if/else/fi gets mangled by YAML > folding
@sebastianrath sebastianrath merged commit 7bb6fb9 into main Apr 8, 2026
22 of 28 checks passed
@sebastianrath sebastianrath deleted the agent branch April 8, 2026 05:06
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