Add agent execution, Perforce integration, and Docker publishing#35
Merged
sebastianrath merged 36 commits intomainfrom Apr 8, 2026
Merged
Add agent execution, Perforce integration, and Docker publishing#35sebastianrath merged 36 commits intomainfrom
sebastianrath merged 36 commits intomainfrom
Conversation
- 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
…prove node organization
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds an agent package for remote job execution with orchestrator communication, artifact uploads/downloads, and workspace management.
Also: