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 "