Configure workflows
Workflow guide
Configure parallel jobs, native GitHub cache, and workflow cancellation.
Keep workflow configuration in GitHub
Sprintbox provides the runner; your repository continues to define triggers, job dependencies, permissions, environment protection, secrets, and build steps. Change runs-on on each job you want Sprintbox to execute. A reusable workflow chooses its runner inside the called workflow.
Install the language version and tools your build needs using the appropriate setup steps. Avoid depending on a particular image's incidental packages without testing them. The smoke test in Quickstart prints the operating system and architecture to help check an environment.
Control parallel work
Each matrix entry is a separate job and needs runner capacity. Use GitHub's matrix max-parallel setting to bound the number of simultaneous entries:
jobs:
test:
strategy:
max-parallel: 2
matrix:
shard: [1, 2, 3, 4]
runs-on: sprintbox-standard-2
timeout-minutes: 20
steps:
- run: echo "Run test shard ${{ matrix.shard }}"
Workspace concurrency limits and available capacity can cause additional waiting. A workflow's concurrency setting can prevent overlapping runs that should not execute together, such as deployments to the same environment.
Dependencies and cache
Sprintbox-managed caching is not available in this runner setup. GitHub's native cache can still be used through actions/cache or the cache options of supported setup actions. Manage those caches in GitHub; GitHub's cache access, retention, storage limits, and charges apply. See GitHub's dependency caching documentation.
Do not expect files from a previous job to remain on a runner. Use GitHub artifacts for files needed by later jobs, or your own external storage for persistent data. Dependency caches are an optimization and should not be required for a correct build.
Cancelling and retrying
Cancel a workflow from GitHub Actions. Sprintbox follows the job state and cleans up its runner. If a job failed because of a temporary setup or capacity issue, confirm it has ended before rerunning it in GitHub.
Next: Usage and billing