Merged
Conversation
- Add P4Client field to CheckoutResult so the worker can pass the workspace name to graph execution - Set P4CLIENT and BUILD_REF in the subprocess env - Add CredentialTypeP4 to core credential types
All nodes use the p4go library (requires -tags p4 build flag). Credentials are resolved from node inputs with fallback to P4PORT, P4USER, P4PASSWD, P4TRUST, P4CLIENT environment variables. SSL trust is handled automatically via p4go before each operation.
The worker must run in the workspace root so p4 sync in graph nodes can resolve paths correctly. Without Persistent: true, the worker copies the script to a separate work/ dir and deletes the checkout.
- Add --labels CLI flag for agent runtime label declaration - Send labels in heartbeat for server-side seeding - Cap slot acquisition at 256 with ephemeral UUID fallback - Fix p4_connect.act type from 'orchestrator' to 'generic'
Each agent process acquires a unique file-locked slot with a persistent UUID. The client sends X-Agent-UUID on all runner API calls so the server can distinguish multiple instances sharing the same token.
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 Perforce nodesx.
Four new nodes (p4-credentials, p4-sync, p4-print, p4-run) let workflows interact with Perforce servers, backed by a shared helper using p4go (behind the p4 build tag). The agent now passes P4CLIENT and BUILD_REF into the subprocess environment so graph nodes reuse the checked-out workspace.
On the agent side, UUID management switches from a single shared file to numbered slot locking (flock/LockFileEx), so multiple agents on the same machine get stable, non-colliding identities. A new --labels flag lets agents advertise themselves for server-side job routing.
Includes an e2e test that runs p4 files against the public demo server