A GitHub Action that provides start-cli for packaging services for StartOS 0.4.x. This sets up the complete build environment including Node.js, Docker Buildx, QEMU for multi-architecture builds, and the StartOS CLI tools.
Note: This action is for StartOS 0.4.x packages only. For 0.3.x packages, see remcoros/startos-sdk-action.
To use this action in your GitHub workflow, add it to your workflow file (.github/workflows/*.yml):
name: Build My Service
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Prepare StartOS SDK
uses: jeffreymsimon/start9-build_wrapper@main
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: npm ci
- name: Build package
run: make| Input | Description | Default |
|---|---|---|
start-cli-version |
Version of start-cli to install | latest |
To pin a specific version:
- name: Prepare StartOS SDK
uses: jeffreymsimon/start9-build_wrapper@main
with:
start-cli-version: v0.4.0-alpha.17The action installs:
- Node.js 22 - For TypeScript SDK compilation
- start-cli - The StartOS 0.4.x packaging CLI
- Docker Buildx - For building multi-architecture container images
- QEMU - For cross-platform emulation
- squashfs-tools-ng - For s9pk packaging
- jq - For JSON parsing
- Build tools - clang, libclang-dev, build-essential
This repository includes ready-to-use workflow templates:
Continuous Integration workflow that builds your package on every commit and pull request.
Copy this file to .github/workflows/buildService.yml in your service repository.
Features:
- Triggers on push/PR to main/master branches
- Builds the .s9pk package
- Uploads the package as a build artifact
- Shows SHA256 checksum in logs
Automated release workflow triggered by version tags.
Copy this file to .github/workflows/releaseService.yml in your service repository.
Usage:
git tag v1.0.0
git push origin v1.0.0Features:
- Builds the .s9pk package
- Generates SHA256 checksum file
- Creates GitHub Release with release notes from manifest
- Optionally publishes to a StartOS registry
To enable automatic publishing to a StartOS registry, set these repository secrets:
| Secret | Description |
|---|---|
S9USER |
Registry username |
S9PASS |
Registry password |
S9REGISTRY |
Registry address (e.g., registry.start9.com) |
Important: Enter the registry address without https:// prefix.
If any credentials are missing, the publish step is skipped gracefully.
Your StartOS 0.4.x package repository should have:
- A
Makefilewith a default target that builds the.s9pk - A
package.jsonwith@start9labs/start-sdkdependency - TypeScript manifest at
startos/manifest.ts
A Dockerfile is also provided for container-based builds outside of GitHub Actions. This can be useful for:
- Local development builds
- Other CI systems (GitLab CI, Jenkins, etc.)
- Testing the build environment
docker build -t startos-builder .
docker run -v $(pwd):/workspace startos-builder makeStartOS 0.4.x uses a completely different build system:
| Feature | 0.3.x | 0.4.x |
|---|---|---|
| CLI Tool | start-sdk |
start-cli |
| SDK Language | Rust | TypeScript |
| Package Format | Docker-based | LXC-based |
| Manifest | manifest.yaml |
startos/manifest.ts |
| Dependencies | Cargo | npm |
MIT License - See LICENSE for details.
Forked from remcoros/startos-sdk-action and refactored for StartOS 0.4.x.