homelab/.forgejo/workflows/build-image.yml
plasmagoat 760cb102d4
All checks were successful
Hello World / test (push) Successful in 2s
nix on ubuntu?
2025-06-07 02:22:42 +02:00

53 lines
1.4 KiB
YAML

name: "Build NixOS Image"
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-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
"