name: "Build NixOS Image" on: workflow_dispatch: jobs: build: runs-on: native steps: - name: Install nodejs run: nix-env -iA nixpkgs.nodejs - 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: Enable experimental features # run: | # mkdir -p ~/.config/nix # echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf # - name: Update Channel # run: nix-channel --update - name: Build NixOS image working-directory: nixos run: nix build .#proxmoxTemplate # - name: Upload & Restore to Proxmox # working-directory: nixos # 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 # "