kammer/.forgejo/workflows/build-image.yml
Christopher Mühl 8e2a0337e9
Some checks failed
Build and Push OCI Image / build (push) Failing after 1m12s
fix: add retry logic for flaky cache.nixos.org
Build can fail with EOF errors when fetching from cache.
Add fallback to build from source if cache fails.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-27 00:35:40 +01:00

57 lines
1.8 KiB
YAML

name: Build and Push OCI Image
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: nix
steps:
- name: Checkout code
uses: https://code.forgejo.org/actions/checkout@v4
- name: Build OCI image
run: |
# Try with cache first, fall back to building from source
nix build .#solidhaus-image \
--print-build-logs \
--show-trace || {
echo "Build failed, retrying with --no-substitute to build from source..."
nix build .#solidhaus-image \
--print-build-logs \
--show-trace \
--option substitute false
}
- name: Push to registry
if: github.ref == 'refs/heads/main'
run: |
# Ensure temp directory exists for skopeo
mkdir -p /var/tmp /tmp
image=$(nix build --no-link --print-out-paths .#solidhaus-image)
skopeo copy \
--dest-tls-verify=false \
--tmpdir /tmp \
"docker-archive:$image" \
"docker://registry.toph.so/solidhaus:latest"
# Also tag with commit SHA
skopeo copy \
--dest-tls-verify=false \
--tmpdir /tmp \
"docker-archive:$image" \
"docker://registry.toph.so/solidhaus:${GITHUB_SHA:0:7}"
- name: Build summary
if: github.ref == 'refs/heads/main'
run: |
echo "### ✅ Image Built and Pushed" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- **Image**: registry.toph.so/solidhaus:latest" >> $GITHUB_STEP_SUMMARY
echo "- **Tag**: ${GITHUB_SHA:0:7}" >> $GITHUB_STEP_SUMMARY
echo "- **Commit**: ${GITHUB_SHA}" >> $GITHUB_STEP_SUMMARY