Files
talos-builder/.github/workflows/build.yaml
T
2025-09-08 10:58:23 +03:00

78 lines
2.2 KiB
YAML

on:
push:
tags:
- 'v*.*.*'
jobs:
build:
permissions:
contents: write
packages: write
attestations: write
id-token: write
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- uses: imjasonh/setup-crane@v0.4
with:
version: v0.20.5
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up GitHub Actions bot user
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Prepare (checkouts & patches)
run: make checkouts patches
- name: Kernel
run: make kernel
- name: Overlay
run: make overlay
- name: Installer
run: make installer
- name: Release
if: startsWith(github.ref, 'refs/tags/v')
run: make release
- name: Create GitHub Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
NOTES=$(cat <<EOF
> ⚠️ Experimental build, use at your own risk.
This is a patched version of Talos tailored for the Raspberry Pi 5, including NVMe, NIC and USB support.
### What's available
- 📦 **Raw disk image** (\`metal-arm64.raw.zst\`) for fresh installs
- ⚙️ **Installer image** (\`ghcr.io/talos-rpi5/installer:${{ github.ref_name }}\`) for upgrades
### Install
- **Fresh install**
- Download the raw disk image from this release
- Flash with \`dd\` or your favorite tool
- **Upgrade existing node**
\`\`\`bash
talosctl upgrade --nodes <NODE_IP> --image ghcr.io/talos-rpi5/installer:${{ github.ref_name }}
\`\`\`
EOF
)
gh release create \
${{ github.ref_name }} \
./checkouts/talos/_out/metal-arm64.raw.zst \
--title "${{ github.ref_name }}" \
--notes "$NOTES"