diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-01-27 06:49:48 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-01-27 07:00:39 +0900 |
| commit | 67e453f5c4de915de23ecbe5980e595758f0f2fb (patch) | |
| tree | 48845c31bc8f1f2111e17c6ac6166a135e0762d4 | |
| parent | 67092c835aa7d6e2c0b9e314f08797ce2fe88983 (diff) | |
dist: run tests
This used to be impossible due to nix jank which has been addressed.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rwxr-xr-x | dist/release.sh | 21 | ||||
| -rw-r--r-- | flake.nix | 32 | ||||
| -rw-r--r-- | internal/acl/acl_test.go | 2 | ||||
| -rw-r--r-- | package.nix | 2 |
4 files changed, 38 insertions, 19 deletions
diff --git a/dist/release.sh b/dist/release.sh index 4dcb278e..0ba91047 100755 --- a/dist/release.sh +++ b/dist/release.sh @@ -2,19 +2,30 @@ cd "$(dirname -- "$0")/.." VERSION="${HAKUREI_VERSION:-untagged}" pname="hakurei-${VERSION}" -out="dist/${pname}" +out="${DESTDIR:-dist}/${pname}" +echo '# Preparing distribution files.' mkdir -p "${out}" cp -v "README.md" "dist/hsurc.default" "dist/install.sh" "${out}" cp -rv "dist/comp" "${out}" +echo +echo '# Building hakurei.' go generate ./... -go build -trimpath -v -o "${out}/bin/" -ldflags "-s -w -buildid= -extldflags '-static' +go build -trimpath -v -o "${out}/bin/" -ldflags "-s -w + -buildid= -extldflags '-static' -X hakurei.app/internal/info.buildVersion=${VERSION} -X hakurei.app/internal/info.hakureiPath=/usr/bin/hakurei -X hakurei.app/internal/info.hsuPath=/usr/bin/hsu -X main.hakureiPath=/usr/bin/hakurei" ./... +echo -rm -f "./${out}.tar.gz" && tar -C dist -czf "${out}.tar.gz" "${pname}" -rm -rf "./${out}" -(cd dist && sha512sum "${pname}.tar.gz" > "${pname}.tar.gz.sha512") +echo '# Testing hakurei.' +go test -ldflags='-buildid= -extldflags=-static' ./... +echo + +echo '# Creating distribution.' +rm -f "${out}.tar.gz" && tar -C "${out}/.." -vczf "${out}.tar.gz" "${pname}" +rm -rf "${out}" +(cd "${out}/.." && sha512sum "${pname}.tar.gz" > "${pname}.tar.gz.sha512") +echo @@ -143,19 +143,27 @@ "bin/mount.fuse.sharefs" = "${hakurei}/libexec/sharefs"; }; - dist = pkgs.runCommand "${hakurei.name}-dist" { buildInputs = hakurei.targetPkgs ++ [ pkgs.pkgsStatic.musl ]; } '' - # go requires XDG_CACHE_HOME for the build cache - export XDG_CACHE_HOME="$(mktemp -d)" - - # get a different workdir as go does not like /build - cd $(mktemp -d) \ - && cp -r ${hakurei.src}/. . \ - && chmod +w cmd && cp -r ${hsu.src}/. cmd/hsu/ \ - && chmod -R +w . + dist = + pkgs.runCommand "${hakurei.name}-dist" + { + buildInputs = hakurei.targetPkgs ++ [ + pkgs.pkgsStatic.musl + ]; + } + '' + cd $(mktemp -d) \ + && cp -r ${hakurei.src}/. . \ + && chmod +w cmd && cp -r ${hsu.src}/. cmd/hsu/ \ + && chmod -R +w . - export HAKUREI_VERSION="v${hakurei.version}" - CC="clang -O3 -Werror" ./dist/release.sh && mkdir $out && cp -v "dist/hakurei-$HAKUREI_VERSION.tar.gz"* $out - ''; + CC="musl-clang -O3 -Werror -Qunused-arguments" \ + GOCACHE="$(mktemp -d)" \ + HAKUREI_TEST_SKIP_ACL=1 \ + PATH="${pkgs.pkgsStatic.musl.bin}/bin:$PATH" \ + DESTDIR="$out" \ + HAKUREI_VERSION="v${hakurei.version}" \ + ./dist/release.sh + ''; } ); diff --git a/internal/acl/acl_test.go b/internal/acl/acl_test.go index af6da555..19ce45ac 100644 --- a/internal/acl/acl_test.go +++ b/internal/acl/acl_test.go @@ -24,7 +24,7 @@ var ( ) func TestUpdate(t *testing.T) { - if os.Getenv("GO_TEST_SKIP_ACL") == "1" { + if os.Getenv("HAKUREI_TEST_SKIP_ACL") == "1" { t.Skip("acl test skipped") } diff --git a/package.nix b/package.nix index 00c44018..2eaa2ec1 100644 --- a/package.nix +++ b/package.nix @@ -89,7 +89,7 @@ buildGoModule rec { CC = "clang -O3 -Werror"; # nix build environment does not allow acls - GO_TEST_SKIP_ACL = 1; + HAKUREI_TEST_SKIP_ACL = 1; }; buildInputs = [ |
