Test repository for validating the soarpkgs build system before deploying to production.
soarpkgs-test/
├── .github/workflows/
│ ├── matrix_builds.yaml # Reusable build workflow (from soarpkgs)
│ ├── build-on-change.yaml # Trigger on recipe changes
│ └── manual-build.yaml # Manual trigger for testing
├── binaries/ # Static binaries -> bincache
│ ├── hello/
│ │ └── static.yaml # Simple C binary (fast build)
│ └── jq/
│ └── static.yaml # Download pre-built jq
└── packages/ # AppImages, archives -> pkgcache
└── hello-appimage/
└── appimage.yaml # Simple AppImage
-
Create a new GitHub repository (e.g.,
pkgforge/soarpkgs-test) -
Copy this directory to the new repo:
cd soarpkgs-test git init git add . git commit -m "Initial test repo" git remote add origin [email protected]:pkgforge/soarpkgs-test.git git push -u origin main
-
Set up required secrets in the new repo:
RO_GHTOKEN- Read-only GitHub token for API requestsRO_GLTOKEN- Read-only GitLab token (optional)MINISIGN_KEY- Minisign private key for signing (optional)MINISIGN_SIGKEY- Minisign signature key (optional)
-
Go to Actions tab and run workflows
Best for testing individual recipes:
- Go to Actions → "Manual Build Test"
- Select a recipe and host
- Run workflow
Automatically builds when recipes change:
- Triggered on push to main
- Detects which recipes changed
- Routes to bincache or pkgcache based on path
| Recipe | Type | Build Time | Tests |
|---|---|---|---|
binaries/hello/static.yaml |
static | ~30s | musl-gcc compilation |
binaries/jq/static.yaml |
static | ~10s | Pre-built download |
packages/hello-appimage/appimage.yaml |
appimage | ~1m | AppImage creation |
binaries/**/*.yaml→ghcr.io/pkgforge/bincache-testpackages/**/*.yaml→ghcr.io/pkgforge/pkgcache-test
- sbuild download - Fetches from pkgforge/sbuilder releases
- sbuild info - Recipe parsing and host compatibility
- sbuild build - Full package build with:
- Checksum generation
- GHCR push
- Optional signing
- bincache/pkgcache separation - Correct routing based on path
- Matrix builds - Multi-arch builds (x86_64, aarch64)