From 9b6a3f89542500774116a7d9bf39c4dbf390af31 Mon Sep 17 00:00:00 2001 From: plasmagoat Date: Mon, 9 Jun 2025 02:33:49 +0200 Subject: [PATCH] cleanup --- .forgejo/workflows/build-and-release.yml | 95 ------------------------ .forgejo/workflows/publish-image.yml | 73 ------------------ scripts/build_nixos_image.sh | 9 --- 3 files changed, 177 deletions(-) delete mode 100644 .forgejo/workflows/build-and-release.yml delete mode 100644 .forgejo/workflows/publish-image.yml delete mode 100644 scripts/build_nixos_image.sh diff --git a/.forgejo/workflows/build-and-release.yml b/.forgejo/workflows/build-and-release.yml deleted file mode 100644 index 7a7236c..0000000 --- a/.forgejo/workflows/build-and-release.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: "Build & Upload NixOS Proxmox Image" - -on: - push: - tags: - - "v*" # triggers on v1.0.0, v1.2.3, etc. - workflow_dispatch: - -jobs: - build-upload: - runs-on: nixos-latest - env: - PROXMOX_HOST: 192.168.1.205 - PROXMOX_USER: forgejo-runner - NIXOS_BUILER_HOST: nixos-builder.lab - NIXOS_BUILER_USER: runner - TEMPLATE_VMID: 9001 - LATEST_TEMPLATE_VMID: 9000 - - steps: - - name: Install nodejs - run: nix-env -iA nixpkgs.nodejs - - - name: Checkout repo - uses: actions/checkout@v4 - - - name: Set VERSION from tag or fallback - id: version - run: | - if [ -n "${CI_COMMIT_TAG}" ]; then - echo "tag=${CI_COMMIT_TAG}" >> $GITHUB_OUTPUT - else - echo "tag=dev-$(date +%s)" >> $GITHUB_OUTPUT - fi - - - name: Enable experimental features - run: | - mkdir -p ~/.config/nix - echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf - - - 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: Setup Cachix - run: | - nix-env -iA cachix -f https://cachix.org/api/v1/install - cachix use plasmagoat - cachix authtoken ${{ secrets.CACHIX_AUTH_TOKEN }} - - - name: Build NixOS image - id: build - run: | - nix build .#base \ - --builders "ssh://$NIXOS_BUILER_USER@$NIXOS_BUILER_HOST x86_64-linux ~/.ssh/id_rsa 1 1 kvm" \ - --max-jobs 0 \ - --print-out-paths \ - | cachix push plasmagoat - - ls - echo "image=$(ls ./result/*.vma.zst | head -n 1)" >> $GITHUB_OUTPUT - - - name: Upload image to Proxmox and manage templates - run: | - set -e - ls - IMAGE="${{ steps.build.outputs.image }}" - REMOTE_NAME="nixos-base-image-${{ steps.version.outputs.tag}}.vma.zst" - REMOTE_PATH="/var/lib/vz/dump/$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 - " diff --git a/.forgejo/workflows/publish-image.yml b/.forgejo/workflows/publish-image.yml deleted file mode 100644 index 514758b..0000000 --- a/.forgejo/workflows/publish-image.yml +++ /dev/null @@ -1,73 +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 - uses: https://code.forgejo.org/sheik/forgejo-release@d5c70cdd090cafc995382a2015298e4bb376d111 - 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 -- - # " diff --git a/scripts/build_nixos_image.sh b/scripts/build_nixos_image.sh deleted file mode 100644 index 7017dbe..0000000 --- a/scripts/build_nixos_image.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -euo pipefail - -# This script assumes 'flake.nix' and 'configuration.nix' are in the parent directory -# and outputs the result to a symlink named 'result' - -echo "Building NixOS image..." -nix build .#nixosConfigurations.proxmox-vm.config.system.build.qemu-image -echo "NixOS image build complete."