53 lines
1.4 KiB
YAML
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
|
|
"
|