homelab/.forgejo/workflows/build-image.yml
plasmagoat 9032f79da5
All checks were successful
Hello World / test (push) Successful in 11s
just read the docs
2025-06-07 02:46:50 +02:00

53 lines
1.4 KiB
YAML

name: "Build NixOS Image"
on:
workflow_dispatch:
jobs:
build:
runs-on: nixos-latest
defaults:
run:
working-directory: nixos
steps:
- name: Checkout repo
uses: actions/checkout@v4
# - name: Install Nix
# uses: cachix/install-nix-action@v31
# with:
# nix_path: nixpkgs=channel:nixos-unstable
# extra_nix_config: |
# experimental-features = nix-command flakes
- name: Build NixOS image
run: nix build .#nixosImage
- name: Upload & Restore to Proxmox
env:
PROXMOX_SSH_KEY: ${{ secrets.PROXMOX_SSH_KEY }}
PROXMOX_HOST: 192.168.1.205
PROXMOX_USER: root
run: |
set -e
IMAGE_NAME="vm-image.vma.zst"
REMOTE_PATH="/var/lib/vz/template/$IMAGE_NAME"
VM_ID="9000"
echo "Starting ssh-agent and uploading..."
eval "$(ssh-agent -s)"
ssh-add <(echo "$PROXMOX_SSH_KEY")
echo "Uploading image..."
scp -o StrictHostKeyChecking=no ./result/$IMAGE_NAME $PROXMOX_USER@$PROXMOX_HOST:$REMOTE_PATH
echo "Restoring VM $VM_ID..."
ssh -o StrictHostKeyChecking=no $PROXMOX_USER@$PROXMOX_HOST "
qm stop $VM_ID || true
qm destroy $VM_ID || true
qmrestore --unique $REMOTE_PATH $VM_ID
qm template $VM_ID
"