From 5a1d128f44ab46d1a67bf7c44a3a0ce4f59cfa32 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Tue, 30 Sep 2025 17:24:58 +0200 Subject: [PATCH] Nix CI tryouts --- .gitea/workflows/build-image.yml | 32 ++++++++++++++++++++------------ flake.nix | 21 +++++++++++++++++---- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/build-image.yml b/.gitea/workflows/build-image.yml index 763446d..11ad774 100644 --- a/.gitea/workflows/build-image.yml +++ b/.gitea/workflows/build-image.yml @@ -7,26 +7,34 @@ jobs: build-image: container: image: catthehacker/ubuntu:act-latest + env: + USER: node + HOME: /home/node + NIX_CONFIG: experimental-features = nix-command flakes + volumes: + - /home/paul/nix-ci/nix-runner-nix:/nix + - /home/paul/nix-ci/nix-runner-etc-nix:/etc/nix + - /home/paul/nix-ci/nix-runner-home-node:/home/node + options: --user 1000:1000 --group-add 988 steps: + - name: Prep nix env + run: | + if [ ! -f ~/.nix-profile/etc/profile.d/nix.sh ]; then + curl -L https://nixos.org/nix/install | bash -s -- --no-daemon + fi + . ~/.nix-profile/etc/profile.d/nix.sh + env >> "$GITHUB_ENV" - name: Checkout repo uses: actions/checkout@v4 - # Required for installing nix - - name: Install sudo - run: apt-get update && apt-get install -y sudo - - name: Install Nix - uses: cachix/install-nix-action@v31 - with: - enable_kvm: false - name: Get image meta run: nix build .#image-meta -o image-meta - name: Version check run: | VERSION=$(cat image-meta/version) [ "$GITHUB_REF_NAME" = v"$VERSION" ] - - name: Build image - run: nix build .#image -o image.tar.gz - - run: docker login -u paul -p "$PASSWORD" git.pbrinkmeier.de + - run: nix build --log-format raw --print-build-logs .#image -o image.tar.gz + - run: gunzip -c image.tar.gz > image.tar + - run: nix run .#crane -- auth login git.pbrinkmeier.de -u paul -p "$PASSWORD" env: PASSWORD: "${{ secrets.REGISTRY_PASSWORD }}" - - run: docker load < image.tar.gz - - run: docker image push $(cat image-meta/name) + - run: nix run .#crane -- push image.tar $(cat image-meta/name) diff --git a/flake.nix b/flake.nix index 90f37c0..ea2d266 100644 --- a/flake.nix +++ b/flake.nix @@ -16,15 +16,22 @@ vrnp-static = pkgs.buildGoModule { pname = "vrnp"; - version = "0.0.10"; + version = "0.0.10-test"; vendorHash = null; # For building the package, we use only the files not ignored by Git as inputs. - # Also, flake.nix and flake.lock are not included to avoid annoying rebuilds when + # Also, flake.nix, flake.lock and .gitea are not included to avoid annoying rebuilds when # working on them. src = pkgs.lib.cleanSourceWith { - src = gitignore.lib.gitignoreSource ./.; - filter = path: type: builtins.baseNameOf path != "flake.nix" && builtins.baseNameOf path != "flake.lock"; + src = ./.; + filter = gitignore.lib.gitignoreFilterWith { + basePath = ./.; + extraRules = '' + flake.nix + flake.lock + .gitea + ''; + }; }; # Avoid linking against libc @@ -55,6 +62,12 @@ config.Cmd = [ "${vrnp-static}/bin/vrnp" ]; }; }; + apps = { + crane = { + type = "app"; + program = "${pkgs.crane}/bin/crane"; + }; + }; } ); }