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"))