Compare commits

...

6 Commits

Author SHA1 Message Date
b739294638 Merge pull request 'CI' (#1) from ci into main
Reviewed-on: #1
2025-10-07 01:17:42 +02:00
Paul Brinkmeier
27f5b8e23c Fix reading image tag
All checks were successful
build / build (pull_request) Successful in 1m14s
deliver / deliver (push) Successful in 37s
2025-10-07 01:11:18 +02:00
Paul Brinkmeier
48eb27e218 Add docker image CI workflow
Some checks failed
build / build (pull_request) Successful in 1m17s
deliver / deliver (push) Failing after 48s
2025-10-07 01:07:22 +02:00
Paul Brinkmeier
94554ad6e4 Bump opium
All checks were successful
build / build (pull_request) Successful in 2m29s
2025-10-07 00:49:51 +02:00
Paul Brinkmeier
1ccde9e5fc Add Gitea Actions config
All checks were successful
build / build (pull_request) Successful in 5m40s
2025-10-07 00:26:30 +02:00
Paul Brinkmeier
999c9e8c9e Ignore .gitea in flake.nix 2025-10-07 00:20:34 +02:00
6 changed files with 98 additions and 12 deletions

View File

@ -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

View File

@ -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 /tmp/yore-meta/image-tag)

View File

@ -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" BASE_DIR=./pgdata scripts/with-db psql "dbname=yore-test port=5433 user=yore-test"
# cabal repl with env vars set # 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. By setting `$BASE_DIR` you can persist the database for later runs.

8
flake.lock generated
View File

@ -64,11 +64,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1756064767, "lastModified": 1759790870,
"narHash": "sha256-SaJK9VYc/oF5aBSMSW+We8TggER4+uTAHvc2ztnLpYo=", "narHash": "sha256-rEsaO38v2wvAThPzgbYPgnv29mu6GxTYLjgci3GYaO4=",
"ref": "main", "ref": "main",
"rev": "af16429d827816cf9bec69026e13f50acc3d2691", "rev": "4db509c1b52ee7b5012abfef5e11e62beab27a16",
"revCount": 65, "revCount": 66,
"type": "git", "type": "git",
"url": "https://git.pbrinkmeier.de/paul/opium" "url": "https://git.pbrinkmeier.de/paul/opium"
}, },

View File

@ -26,11 +26,18 @@
}; };
# For building the package, we use only the files not ignored by Git as inputs. # 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. # working on them.
src = pkgs.lib.cleanSourceWith { src = pkgs.lib.cleanSourceWith {
src = gitignore.lib.gitignoreSource ./.; src = ./.;
filter = path: type: builtins.elem (builtins.baseNameOf path) [ "flake.nix" "flake.lock" ]; filter = gitignore.lib.gitignoreFilterWith {
basePath = ./.;
extraRules = ''
flake.nix
flake.lock
.gitea
'';
};
}; };
yore = pkgs.lib.pipe yore = pkgs.lib.pipe
@ -53,15 +60,21 @@
]; ];
in { in {
packages = rec { 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 { pkgs.dockerTools.buildImage {
name = "git.pbrinkmeier.de/paul/yore"; name = "git.pbrinkmeier.de/paul/yore";
tag = yore.version; tag = yore.version;
config.Cmd = [ "${yore}/bin/yore" ]; config.Cmd = [ "${yore}/bin/yore" ];
}; };
default = yore;
opium_ = opium.packages.${system}.opium; opium_ = opium.packages.${system}.opium;
}; };
@ -82,5 +95,11 @@
overrides = addOpium; overrides = addOpium;
}).env; }).env;
}; };
apps = {
crane = {
type = "app";
program = "${pkgs.crane}/bin/crane";
};
};
}); });
} }

View File

@ -1,7 +1,7 @@
cabal-version: 3.4 cabal-version: 3.4
name: yore name: yore
version: 0 version: 0.0.1
author: Paul Brinkmeier author: Paul Brinkmeier
maintainer: hallo@pbrinkmeier.de maintainer: hallo@pbrinkmeier.de
copyright: 2023 Paul Brinkmeier copyright: 2023 Paul Brinkmeier