gnu: Add forgejo-runner.

* gnu/packages/ci.scm (forgejo-runner): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I1b7df940015a064c1b9236d4bb2a50bf33ed5155
This commit is contained in:
David Thompson 2025-06-02 14:22:33 +02:00 committed by Ludovic Courtès
parent 4741fe4be7
commit 3bd7d7ef19
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -7,6 +7,8 @@
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2022, 2024 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2023 David Pflug <david@pflug.io>
;;; Copyright © 2025 David Thompson <davet@gnu.org>
;;; Copyright © 2025 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -40,6 +42,10 @@
#:use-module (gnu packages docbook)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-vcs)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages gnupg)
@ -58,6 +64,7 @@
#:use-module (gnu packages xml)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR)))
(define-public cuirass
@ -289,3 +296,52 @@ Laminar encourages the use of existing tools such as bash and cron instead of
reinventing them.")
(home-page "https://laminar.ohwg.net/")
(license l:gpl3+)))
(define-public forgejo-runner
(package
(name "forgejo-runner")
(version "6.2.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.forgejo.org/forgejo/runner.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0bdn1pk9ghbyd4i9hmk7rfhqdkz9l5w4wgrwiryg8qpwplb7j8mz"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.23
#:import-path "gitea.com/gitea/act_runner"
#:embed-files #~(list ".*\\.json" ".*\\.js" ".*\\.sh")
#:tests? #f
#:phases #~(modify-phases %standard-phases
(add-after 'install 'rename-binary
(lambda _
(rename-file (string-append #$output "/bin/act_runner")
(string-append #$output "/bin/forgejo-runner")))))))
(propagated-inputs
(list go-github-com-joho-godotenv
go-github-com-avast-retry-go
go-gopkg-in-yaml-v3
go-github-com-sirupsen-logrus
go-google-golang-org-protobuf
go-github-com-google-uuid
go-golang-org-x-term
go-golang-org-x-time
go-github-com-spf13-cobra
go-github-com-mattn-go-isatty
go-github-com-nektos-act
go-github-com-avast-retry-go-v4
go-connectrpc-com-connect
go-code-gitea-io-actions-proto-go-ping
go-code-gitea-io-actions-proto-go-runner))
(home-page "https://code.forgejo.org/forgejo/runner")
(synopsis "Run continuous integration jobs for Forgejo")
(description
"Forgejo Runner is a daemon that connects to a Forgejo instance and runs
jobs for continuous integration.")
(license l:expat)))