From 374def9922d140b510976792ceccdfc6e80f5a04 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 3 Jun 2025 08:08:17 +0200 Subject: [PATCH] Add a GNU Guix manifest (#8038) ## Testing See https://codeberg.org/forgejo/docs/pulls/1224 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8038 Reviewed-by: Earl Warren Co-authored-by: Maxim Cournoyer Co-committed-by: Maxim Cournoyer --- manifest.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 manifest.scm diff --git a/manifest.scm b/manifest.scm new file mode 100644 index 0000000000..f9605bc2d9 --- /dev/null +++ b/manifest.scm @@ -0,0 +1,38 @@ +;;; Copyright 2025 The Forgejo Authors. All rights reserved. +;;; SPDX-License-Identifier: MIT +;;; +;;; Commentary: +;;; +;;; This is a GNU Guix manifest that can be used to create a +;;; development environment to build and test Forgejo. +;;; +;;; The following is a usage example to create a containerized +;;; environment, with HOME shared for the Go cache and the network +;;; made available to fetch required Go and Node dependencies. +;;; +#| +guix shell -CNF --share=$HOME -m manifest.scm +export GOTOOLCHAIN=local # to use the Go binary from Guix +export CC=gcc CGO_ENABLED=1 +export TAGS="timetzdata sqlite sqlite_unlock_notify" +make clean +make -j$(nproc) +make test -j$(nproc) # run unit tests +make test-sqlite -j$(nproc) # run integration tests +make watch # run an instance/rebuild on changes +|# +(specifications->manifest + (list "bash-minimal" + "coreutils" + "findutils" + "gcc-toolchain" + "git" ;libpcre support is required + "git-lfs" + "gnupg" + "go" + "grep" + "make" + "node" + "nss-certs" + "openssh" + "sed"))