From 999c9e8c9eddd38f4ece1b1eff6369ac4d7a30fe Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Tue, 7 Oct 2025 00:20:34 +0200 Subject: [PATCH 1/5] Ignore .gitea in flake.nix --- flake.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index f753d9e..19032ed 100644 --- a/flake.nix +++ b/flake.nix @@ -26,11 +26,18 @@ }; # 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 rebuilds when + # Also, flake.nix, flake.lock and .gitea are not included to avoid rebuilds when # working on them. src = pkgs.lib.cleanSourceWith { - src = gitignore.lib.gitignoreSource ./.; - filter = path: type: builtins.elem (builtins.baseNameOf path) [ "flake.nix" "flake.lock" ]; + src = ./.; + filter = gitignore.lib.gitignoreFilterWith { + basePath = ./.; + extraRules = '' + flake.nix + flake.lock + .gitea + ''; + }; }; yore = pkgs.lib.pipe From 1ccde9e5fc1d7ec0beff4514df199d332dec2f30 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Tue, 7 Oct 2025 00:26:30 +0200 Subject: [PATCH 2/5] Add Gitea Actions config --- .gitea/workflows/build.yml | 27 +++++++++++++++++++++++++++ README.md | 2 +- flake.nix | 12 +++++++++--- 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 .gitea/workflows/build.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..9049c7a --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,27 @@ +name: build +on: + pull_request: +jobs: + build: + container: + image: node:24-bookworm + env: + USER: node + HOME: /home/node + NIX_CONFIG: experimental-features = nix-command flakes + volumes: + - /var/lib/pbri/docker/nix_runner_nix:/nix + - /var/lib/pbri/docker/nix_runner_etc:/etc/nix + - /var/lib/pbri/docker/nix_runner_home_node:/home/node + options: --user 1000:1000 + 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 + - run: nix build --log-format raw --print-build-logs .#yore diff --git a/README.md b/README.md index 449c64f..553f38f 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ You can also use it to run a database for development by choosing a `$COMMAND` t ``` BASE_DIR=./pgdata scripts/with-db psql "dbname=yore-test port=5433 user=yore-test" # cabal repl with env vars set -BASE_DIR=./pgdata scripts/with-db scripts/dev +BASE_DIR=./pgdata scripts/with-db cabal run ``` By setting `$BASE_DIR` you can persist the database for later runs. diff --git a/flake.nix b/flake.nix index 19032ed..08ddcbb 100644 --- a/flake.nix +++ b/flake.nix @@ -60,15 +60,21 @@ ]; in { packages = rec { - docker = + default = yore; + inherit yore; + yore-meta = pkgs.runCommand "yore-meta" {} '' + mkdir -p $out + echo -n ${yore.version} > $out/version + echo -n git.pbrinkmeier.de/paul/yore:${yore.version} > $out/image-tag + ''; + + image = pkgs.dockerTools.buildImage { name = "git.pbrinkmeier.de/paul/yore"; tag = yore.version; config.Cmd = [ "${yore}/bin/yore" ]; }; - default = yore; - opium_ = opium.packages.${system}.opium; }; From 94554ad6e4857b084cae13860daa6272a96db1ee Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Tue, 7 Oct 2025 00:49:51 +0200 Subject: [PATCH 3/5] Bump opium --- flake.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.lock b/flake.lock index 064c9f9..34c68a9 100644 --- a/flake.lock +++ b/flake.lock @@ -64,11 +64,11 @@ ] }, "locked": { - "lastModified": 1756064767, - "narHash": "sha256-SaJK9VYc/oF5aBSMSW+We8TggER4+uTAHvc2ztnLpYo=", + "lastModified": 1759790870, + "narHash": "sha256-rEsaO38v2wvAThPzgbYPgnv29mu6GxTYLjgci3GYaO4=", "ref": "main", - "rev": "af16429d827816cf9bec69026e13f50acc3d2691", - "revCount": 65, + "rev": "4db509c1b52ee7b5012abfef5e11e62beab27a16", + "revCount": 66, "type": "git", "url": "https://git.pbrinkmeier.de/paul/opium" }, From 48eb27e2187dcf5f91010972aad9d215a0530bfa Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Tue, 7 Oct 2025 01:07:22 +0200 Subject: [PATCH 4/5] Add docker image CI workflow --- .gitea/workflows/deliver.yml | 40 ++++++++++++++++++++++++++++++++++++ flake.nix | 6 ++++++ yore.cabal | 2 +- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .gitea/workflows/deliver.yml diff --git a/.gitea/workflows/deliver.yml b/.gitea/workflows/deliver.yml new file mode 100644 index 0000000..9300649 --- /dev/null +++ b/.gitea/workflows/deliver.yml @@ -0,0 +1,40 @@ +name: deliver +on: + push: + tags: + - 'v*' +jobs: + deliver: + container: + image: node:24-bookworm + env: + USER: node + HOME: /home/node + NIX_CONFIG: experimental-features = nix-command flakes + volumes: + - /var/lib/pbri/docker/nix_runner_nix:/nix + - /var/lib/pbri/docker/nix_runner_etc:/etc/nix + - /var/lib/pbri/docker/nix_runner_home_node:/home/node + options: --user 1000:1000 + 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 + - name: Get image meta + run: nix build .#yore-meta -o /tmp/yore-meta + - name: Version check + run: | + VERSION=$(cat /tmp/yore-meta/version) + [ "$GITHUB_REF_NAME" = v"$VERSION" ] + - 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: nix run .#crane -- push image.tar $(cat image-meta/name) diff --git a/flake.nix b/flake.nix index 08ddcbb..7d585b3 100644 --- a/flake.nix +++ b/flake.nix @@ -95,5 +95,11 @@ overrides = addOpium; }).env; }; + apps = { + crane = { + type = "app"; + program = "${pkgs.crane}/bin/crane"; + }; + }; }); } diff --git a/yore.cabal b/yore.cabal index 3e60da3..3071ffb 100644 --- a/yore.cabal +++ b/yore.cabal @@ -1,7 +1,7 @@ cabal-version: 3.4 name: yore -version: 0 +version: 0.0.1 author: Paul Brinkmeier maintainer: hallo@pbrinkmeier.de copyright: 2023 Paul Brinkmeier From 27f5b8e23cc6910c82ffdb600dee7b6dab9fd612 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Tue, 7 Oct 2025 01:11:18 +0200 Subject: [PATCH 5/5] Fix reading image tag --- .gitea/workflows/deliver.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deliver.yml b/.gitea/workflows/deliver.yml index 9300649..fd89780 100644 --- a/.gitea/workflows/deliver.yml +++ b/.gitea/workflows/deliver.yml @@ -37,4 +37,4 @@ jobs: - run: nix run .#crane -- auth login git.pbrinkmeier.de -u paul -p "$PASSWORD" env: PASSWORD: "${{ secrets.REGISTRY_PASSWORD }}" - - run: nix run .#crane -- push image.tar $(cat image-meta/name) + - run: nix run .#crane -- push image.tar $(cat /tmp/yore-meta/image-tag)