From 760cb102d4b7ebb0c3c9ecea180816af12321f64 Mon Sep 17 00:00:00 2001 From: plasmagoat Date: Sat, 7 Jun 2025 02:22:42 +0200 Subject: [PATCH] nix on ubuntu? --- .forgejo/workflows/build-image.yml | 49 ++++++++++++++++----------- nixos/hosts/forgejo-runner/runner.nix | 1 - 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/.forgejo/workflows/build-image.yml b/.forgejo/workflows/build-image.yml index 5f0c4ba..ece86e3 100644 --- a/.forgejo/workflows/build-image.yml +++ b/.forgejo/workflows/build-image.yml @@ -1,42 +1,53 @@ -name: Build and Upload NixOS Image +name: "Build NixOS Image" on: workflow_dispatch: jobs: build: - runs-on: [nixos] + runs-on: ubuntu-latest + defaults: run: working-directory: nixos steps: - name: Checkout repo - uses: actions/checkout@v3 + 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 image to Proxmox + - name: Upload & Restore to Proxmox env: - SSH_KEY: ${{ secrets.PROXMOX_SSH_KEY }} - PROXMOX_USER: root + PROXMOX_SSH_KEY: ${{ secrets.PROXMOX_SSH_KEY }} PROXMOX_HOST: 192.168.1.205 + PROXMOX_USER: root run: | - mkdir -p ~/.ssh - echo "$SSH_KEY" > ~/.ssh/id_proxmox - chmod 600 ~/.ssh/id_proxmox - export SSH="ssh -i ~/.ssh/id_proxmox -o StrictHostKeyChecking=no" - export SCP="scp -i ~/.ssh/id_proxmox -o StrictHostKeyChecking=no" + set -e - IMAGE=$(find result/ -name '*.vma.zst' | head -n 1) - NAME=$(basename "$IMAGE") + IMAGE_NAME="vm-image.vma.zst" + REMOTE_PATH="/var/lib/vz/template/$IMAGE_NAME" + VM_ID="9000" - echo "Uploading $IMAGE to $PROXMOX_HOST..." - $SCP "$IMAGE" "$PROXMOX_USER@$PROXMOX_HOST:/var/lib/vz/dump/" + echo "Starting ssh-agent and uploading..." + eval "$(ssh-agent -s)" + ssh-add <(echo "$PROXMOX_SSH_KEY") - echo "Restoring and converting to template..." - $SSH "$PROXMOX_USER@$PROXMOX_HOST" " - qmrestore /var/lib/vz/dump/$NAME 9000 --unique --replace && - qm template 9000 + 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 " diff --git a/nixos/hosts/forgejo-runner/runner.nix b/nixos/hosts/forgejo-runner/runner.nix index dfb7a33..2d1a40b 100644 --- a/nixos/hosts/forgejo-runner/runner.nix +++ b/nixos/hosts/forgejo-runner/runner.nix @@ -20,7 +20,6 @@ # "ubuntu-22.04:docker://node:16-bullseye" # "ubuntu-20.04:docker://node:16-bullseye" # "ubuntu-18.04:docker://node:16-buster" - "nixos:docker://cachix/nix-build-action" ## optionally provide native execution on the host: # "native:host" ];