diff --git a/.forgejo/workflows/build-image.yml b/.forgejo/workflows/build-image.yml index 354ebe6..5b9f628 100644 --- a/.forgejo/workflows/build-image.yml +++ b/.forgejo/workflows/build-image.yml @@ -56,27 +56,27 @@ jobs: - name: Build NixOS image run: nix build .#base --builders "ssh://$NIXOS_BUILER_USER@$NIXOS_BUILER_HOST x86_64-linux ~/.ssh/id_rsa 1 1 kvm" --max-jobs 0 - # - name: Upload image to Proxmox and manage templates - # run: | - # set -e - # IMAGE="result/*.vma.zst" - # REMOTE_NAME="nixos-base-image-${{ steps.version.outputs.tag}}.vma.zst" - # REMOTE_PATH="/var/lib/vz/template/images/$REMOTE_NAME" + - name: Upload image to Proxmox and manage templates + run: | + set -e + IMAGE="result/vm-image.vma.zst" + REMOTE_NAME="nixos-base-image-${{ steps.version.outputs.tag}}.vma.zst" + REMOTE_PATH="/var/lib/vz/template/images/$REMOTE_NAME" - # echo "Uploading $IMAGE to Proxmox as $REMOTE_NAME" - # scp $IMAGE $PROXMOX_USER@$PROXMOX_HOST:$REMOTE_PATH + echo "Uploading $IMAGE to Proxmox as $REMOTE_NAME" + scp $IMAGE $PROXMOX_USER@$PROXMOX_HOST:$REMOTE_PATH - # echo "Restoring as VMID $TEMPLATE_VMID" - # ssh $PROXMOX_USER@$PROXMOX_HOST " - # qm destroy $TEMPLATE_VMID --purge || true - # qmrestore $REMOTE_PATH $TEMPLATE_VMID --unique - # qm template $TEMPLATE_VMID + echo "Restoring as VMID $TEMPLATE_VMID" + ssh $PROXMOX_USER@$PROXMOX_HOST " + qm destroy $TEMPLATE_VMID --purge || true + qmrestore $REMOTE_PATH $TEMPLATE_VMID --unique + qm template $TEMPLATE_VMID - # echo 'Cloning to $LATEST_TEMPLATE_VMID as latest' - # qm destroy $LATEST_TEMPLATE_VMID --purge || true - # qm clone $TEMPLATE_VMID $LATEST_TEMPLATE_VMID --name nixos-base-latest - # qm template $TEMPLATE_VMID - # " + echo 'Cloning to $LATEST_TEMPLATE_VMID as latest' + qm destroy $LATEST_TEMPLATE_VMID --purge || true + qm clone $TEMPLATE_VMID $LATEST_TEMPLATE_VMID --name nixos-base-latest + qm template $TEMPLATE_VMID + " # - name: Prune old templates # run: | diff --git a/.forgejo/workflows/publish-image.yml b/.forgejo/workflows/publish-image.yml deleted file mode 100644 index 3eead83..0000000 --- a/.forgejo/workflows/publish-image.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: "Build & Upload NixOS Proxmox Image" - -on: - release: - types: [published] - workflow_dispatch: - -jobs: - build-upload: - runs-on: nixos-latest - env: - PROXMOX_HOST: 192.168.1.205 - PROXMOX_USER: forgejo-runner - TEMPLATE_VMID: 9001 - LATEST_TEMPLATE_VMID: 9000 - - steps: - - name: Install nodejs - run: nix-env -iA nixpkgs.nodejs - - - uses: actions/checkout@v4 - - - name: Download Forgejo Release - if: ${{ github.ref_type == 'tag' }} - uses: actions/forgejo-release@v2.6.0 - with: - direction: download - download-latest: true - release-dir: ./ # by default, files are downloaded into dist/release - - - name: Prepare SSH - run: | - mkdir -p ~/.ssh - echo "${{ secrets.RUNNER_SSH_KEY }}" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -H $PROXMOX_HOST >> ~/.ssh/known_hosts - ssh-keyscan -H $NIXOS_BUILER_HOST >> ~/.ssh/known_hosts - - - name: Test SSH connection - run: | - echo "Testing SSH connection to $PROXMOX_HOST..." - ssh -o StrictHostKeyChecking=yes $PROXMOX_USER@$PROXMOX_HOST "echo 'SSH success. Hostname:' && hostname" - echo "Testing SSH connection to $NIXOS_BUILER_HOST..." - ssh -o StrictHostKeyChecking=yes $NIXOS_BUILER_USER@$NIXOS_BUILER_HOST "echo 'SSH success. Hostname:' && hostname" - - - name: Upload image to Proxmox and manage templates - run: | - set -e - ls - IMAGE="./*.vma.zst" - REMOTE_NAME="nixos-base-image-${{ steps.version.outputs.tag}}.vma.zst" - REMOTE_PATH="/var/lib/vz/template/images/$REMOTE_NAME" - - echo "Uploading $IMAGE to Proxmox as $REMOTE_NAME" - scp $IMAGE $PROXMOX_USER@$PROXMOX_HOST:$REMOTE_PATH - - echo "Restoring as VMID $TEMPLATE_VMID" - ssh $PROXMOX_USER@$PROXMOX_HOST " - qm destroy $TEMPLATE_VMID --purge || true - qmrestore $REMOTE_PATH $TEMPLATE_VMID --unique - qm template $TEMPLATE_VMID - - echo 'Cloning to $LATEST_TEMPLATE_VMID as latest' - qm destroy $LATEST_TEMPLATE_VMID --purge || true - qm clone $TEMPLATE_VMID $LATEST_TEMPLATE_VMID --name nixos-base-latest - qm template $TEMPLATE_VMID - " - - # - name: Prune old templates - # run: | - # ssh $PROXMOX_USER@$PROXMOX_HOST " - # cd /var/lib/vz/template/images - # ls -tp nixos-base-image-*.vma.zst | grep -v '/$' | tail -n +6 | xargs -r rm -- - # "