GhostFleet v1.0.0 — initial public release #1
Workflow file for this run
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
| # On every version tag: build the three container images, push them to GHCR | |
| # (ghcr.io/<owner>/ghostfleet/{controller,netboot,tempos}), and create a | |
| # GitHub release carrying the install assets (pull-only compose file, | |
| # env.example, preflight.sh) so a controller VM never needs a source | |
| # checkout. docs/INSTALL.md documents the consumer side. | |
| # | |
| # The packages are linked to this repository; their visibility must be public | |
| # for the pull-only stack to work without a registry login. | |
| name: Release | |
| on: | |
| push: | |
| tags: ["v*"] | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write # create the release | |
| packages: write # push to GHCR | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push images | |
| run: | | |
| set -eu | |
| VERSION="${GITHUB_REF_NAME}" | |
| PREFIX="ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/ghostfleet" | |
| for img in controller netboot tempos; do | |
| docker build -f "deploy/Dockerfile.${img}" \ | |
| --build-arg VERSION="${VERSION}" \ | |
| -t "${PREFIX}/${img}:${VERSION}" \ | |
| -t "${PREFIX}/${img}:latest" . | |
| docker push "${PREFIX}/${img}:${VERSION}" | |
| docker push "${PREFIX}/${img}:latest" | |
| done | |
| - name: Create release with install assets | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| set -eu | |
| cp deploy/docker-compose.dist.yml docker-compose.yml | |
| cp deploy/env.example env.example | |
| cp deploy/preflight.sh preflight.sh | |
| gh release create "${GITHUB_REF_NAME}" \ | |
| --title "GhostFleet ${GITHUB_REF_NAME}" \ | |
| --generate-notes \ | |
| docker-compose.yml env.example preflight.sh |