nix: make dist tarball in nix
All checks were successful
Static / Flake checks (push) Successful in 29s
Static / Create distribution (push) Successful in 55s

This is more sound than having to rely on host nix shell.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-03-15 17:46:36 +09:00
parent 53cc6e642c
commit baa6520b90
4 changed files with 24 additions and 13 deletions

View File

@@ -3,7 +3,7 @@ name: Release
on:
push:
tags:
- 'v*'
- '*'
jobs:
release:
@@ -15,8 +15,11 @@ jobs:
- name: Process static files
run: >-
nix build --print-out-paths --print-build-logs .#hakurei-static &&
nix shell nixpkgs#gnutar nixpkgs#zstd --command tar -C result --zstd -cf hakurei.app-${{ github.ref_name }}.tar.zst .
nix build
--print-out-paths
--print-build-logs
--out-link hakurei.app-${{ github.ref_name }}.tar.zst
.#dist
- name: Release
uses: https://gitea.com/actions/release-action@main

View File

@@ -27,7 +27,7 @@ jobs:
run: >-
export HAKUREI_REV="$(git rev-parse --short HEAD)" &&
sed -i.old 's/version = /version = "0.0.0-'$HAKUREI_REV'"; # version = /' package.nix &&
nix build --print-out-paths --print-build-logs .#hakurei-static &&
nix build --print-out-paths --print-build-logs .#static &&
mv package.nix.old package.nix &&
echo "rev=$HAKUREI_REV" >> $GITHUB_OUTPUT

View File

@@ -67,17 +67,25 @@
packages = forAllSystems (
system:
let
inherit (self.packages.${system}) hakurei-static caddy-hakurei-static;
inherit (self.packages.${system}) static caddy;
pkgs = nixpkgsFor.${system};
in
{
default = caddy-hakurei-static;
hakurei-static = pkgs.callPackage ./package.nix { };
caddy-hakurei-static = pkgs.writeShellScriptBin "caddy-hakurei-static" ''
default = caddy;
static = pkgs.callPackage ./package.nix { };
dist = pkgs.runCommand "hakurei-static-${static.version}.tar.zst" { } ''
PATH="${pkgs.zstd}/bin:$PATH" \
${pkgs.gnutar}/bin/tar \
-C '${static}' \
--zstd \
-cf \
"$out" .
'';
caddy = pkgs.writeShellScriptBin "caddy-hakurei-static" ''
exec ${pkgs.caddy}/bin/caddy \
file-server \
-a -l ":49151" \
-r ${hakurei-static}
-r ${static}
'';
}
);

View File

@@ -1,6 +1,6 @@
{
stdenvNoCC,
runCommandNoCC,
stdenv,
runCommand,
util-linux,
moreutils,
parallel,
@@ -15,7 +15,7 @@
python3,
buildNpmPackage,
}:
stdenvNoCC.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "hakurei.app";
version = "0.1.0";
@@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation rec {
nativeBuildInputs = [
util-linux
(runCommandNoCC "sponge" { } "mkdir -p $out/bin && ln -s ${moreutils}/bin/sponge $out/bin")
(runCommand "sponge" { } "mkdir -p $out/bin && ln -s ${moreutils}/bin/sponge $out/bin")
parallel
openssl
libxml2