commit
b739294638
27
.gitea/workflows/build.yml
Normal file
27
.gitea/workflows/build.yml
Normal 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
|
||||||
40
.gitea/workflows/deliver.yml
Normal file
40
.gitea/workflows/deliver.yml
Normal 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)
|
||||||
@ -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
8
flake.lock
generated
@ -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"
|
||||||
},
|
},
|
||||||
|
|||||||
31
flake.nix
31
flake.nix
@ -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";
|
||||||
|
};
|
||||||
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user