This commit is contained in:
parent
1440f7ffc5
commit
f60734e520
6 changed files with 220 additions and 0 deletions
29
woodpecker/.SRCINFO
Normal file
29
woodpecker/.SRCINFO
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
pkgbase = woodpecker
|
||||||
|
pkgdesc = Woodpecker is a community fork of the Drone CI system
|
||||||
|
pkgver = 3.5.1
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://woodpecker-ci.org
|
||||||
|
arch = x86_64
|
||||||
|
license = Apache
|
||||||
|
makedepends = go
|
||||||
|
makedepends = git
|
||||||
|
makedepends = pnpm
|
||||||
|
options = !lto
|
||||||
|
source = git+https://github.com/woodpecker-ci/woodpecker.git#tag=v3.5.1
|
||||||
|
source = woodpecker-server.service
|
||||||
|
source = woodpecker-agent.service
|
||||||
|
source = agent.conf
|
||||||
|
source = server.conf
|
||||||
|
sha256sums = b9ef3fe9fa979984b517d043b25152ba51c9ffe395cf468915dbf14a1ed9320b
|
||||||
|
sha256sums = 6e22e6939222aaad07311e37a086935ca32dd149c3688b2809db5f55df816516
|
||||||
|
sha256sums = 1081a646cf645bc09ddda8472cf9a341e545bf03f5738d56ae427b33806e538c
|
||||||
|
sha256sums = a6c2bdfc934e40a9636e7447ecd5bf7b200444116085cd7c69d304dfb822eba9
|
||||||
|
sha256sums = d983da1df22d00338aa82be5844554f27f789361f405fe381f73896623bd2c7a
|
||||||
|
|
||||||
|
pkgname = woodpecker-server
|
||||||
|
backup = etc/woodpecker/server
|
||||||
|
|
||||||
|
pkgname = woodpecker-agent
|
||||||
|
backup = etc/woodpecker/agent
|
||||||
|
|
||||||
|
pkgname = woodpecker-cli
|
102
woodpecker/PKGBUILD
Normal file
102
woodpecker/PKGBUILD
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
# Maintainer: nyyu <mail at nyyu dot dev>
|
||||||
|
|
||||||
|
pkgbase=woodpecker
|
||||||
|
pkgname=(
|
||||||
|
'woodpecker-server'
|
||||||
|
'woodpecker-agent'
|
||||||
|
'woodpecker-cli'
|
||||||
|
)
|
||||||
|
pkgver=3.5.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Woodpecker is a community fork of the Drone CI system"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://woodpecker-ci.org"
|
||||||
|
license=('Apache')
|
||||||
|
makedepends=('go' 'git' 'pnpm')
|
||||||
|
options=('!lto')
|
||||||
|
source=(git+https://github.com/woodpecker-ci/woodpecker.git#tag=v$pkgver
|
||||||
|
'woodpecker-server.service'
|
||||||
|
'woodpecker-agent.service'
|
||||||
|
'agent.conf'
|
||||||
|
'server.conf')
|
||||||
|
sha256sums=('b9ef3fe9fa979984b517d043b25152ba51c9ffe395cf468915dbf14a1ed9320b'
|
||||||
|
'6e22e6939222aaad07311e37a086935ca32dd149c3688b2809db5f55df816516'
|
||||||
|
'1081a646cf645bc09ddda8472cf9a341e545bf03f5738d56ae427b33806e538c'
|
||||||
|
'a6c2bdfc934e40a9636e7447ecd5bf7b200444116085cd7c69d304dfb822eba9'
|
||||||
|
'd983da1df22d00338aa82be5844554f27f789361f405fe381f73896623bd2c7a')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "$pkgbase"
|
||||||
|
|
||||||
|
# create directory for build output
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
# download dependencies
|
||||||
|
go mod download
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$pkgbase"
|
||||||
|
|
||||||
|
# generate web interface to embed in woodpecker-server
|
||||||
|
pushd web
|
||||||
|
pnpm install --frozen-lockfile
|
||||||
|
pnpm build
|
||||||
|
popd
|
||||||
|
|
||||||
|
# set Go flags
|
||||||
|
export CGO_CPPFLAGS="${CPPFLAGS}"
|
||||||
|
export CGO_CFLAGS="${CFLAGS}"
|
||||||
|
export CGO_CXXFLAGS="${CXXFLAGS}"
|
||||||
|
|
||||||
|
# build server/agent/cli
|
||||||
|
go build -v \
|
||||||
|
-buildmode=pie \
|
||||||
|
-mod=readonly \
|
||||||
|
-modcacherw \
|
||||||
|
-ldflags "-compressdwarf=false \
|
||||||
|
-linkmode external \
|
||||||
|
-extldflags '${LDFLAGS}' \
|
||||||
|
-X go.woodpecker-ci.org/woodpecker/v3/version.Version=${pkgver}" \
|
||||||
|
-o build \
|
||||||
|
./cmd/...
|
||||||
|
}
|
||||||
|
|
||||||
|
package_woodpecker-server() {
|
||||||
|
|
||||||
|
backup=('etc/woodpecker/server')
|
||||||
|
|
||||||
|
# service
|
||||||
|
install -Dm644 woodpecker-server.service "$pkgdir/usr/lib/systemd/system/woodpecker-server.service"
|
||||||
|
# config
|
||||||
|
install -Dm644 server.conf "$pkgdir/etc/woodpecker/server"
|
||||||
|
|
||||||
|
cd "$pkgbase"
|
||||||
|
|
||||||
|
# binary
|
||||||
|
install -vDm755 build/server "$pkgdir/usr/bin/woodpecker-server"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
package_woodpecker-agent() {
|
||||||
|
|
||||||
|
backup=('etc/woodpecker/agent')
|
||||||
|
|
||||||
|
# service
|
||||||
|
install -Dm644 woodpecker-agent.service "$pkgdir/usr/lib/systemd/system/woodpecker-agent.service"
|
||||||
|
# config
|
||||||
|
install -Dm644 agent.conf "$pkgdir/etc/woodpecker/agent"
|
||||||
|
|
||||||
|
cd "$pkgbase"
|
||||||
|
|
||||||
|
# binary
|
||||||
|
install -vDm755 build/agent "$pkgdir/usr/bin/woodpecker-agent"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
package_woodpecker-cli() {
|
||||||
|
cd "$pkgbase"
|
||||||
|
|
||||||
|
# binary
|
||||||
|
install -vDm755 build/cli "$pkgdir/usr/bin/woodpecker"
|
||||||
|
}
|
8
woodpecker/agent.conf
Normal file
8
woodpecker/agent.conf
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# agent configuration
|
||||||
|
|
||||||
|
WOODPECKER_SERVER=localhost:9992
|
||||||
|
WOODPECKER_AGENT_CONFIG_FILE=/var/lib/woodpecker-agent/agent.conf
|
||||||
|
WOODPECKER_AGENT_SECRET=""
|
||||||
|
WOODPECKER_HEALTHCHECK=false
|
||||||
|
# WOODPECKER_MAX_WORKFLOWS=4
|
||||||
|
WOODPECKER_BACKEND=docker
|
38
woodpecker/server.conf
Normal file
38
woodpecker/server.conf
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# woodpecker server configuration
|
||||||
|
|
||||||
|
# database configuration
|
||||||
|
WOODPECKER_DATABASE_DRIVER=sqlite3
|
||||||
|
WOODPECKER_DATABASE_DATASOURCE=/var/lib/woodpecker/woodpecker.sqlite
|
||||||
|
|
||||||
|
# remote configuration
|
||||||
|
WOODPECKER_GITHUB=false
|
||||||
|
WOODPECKER_GITHUB_CLIENT=""
|
||||||
|
WOODPECKER_GITHUB_SECRET=""
|
||||||
|
|
||||||
|
# gitea
|
||||||
|
WOODPECKER_GITEA=false
|
||||||
|
WOODPECKER_GITEA_URL=""
|
||||||
|
WOODPECKER_GITEA_CLIENT=""
|
||||||
|
WOODPECKER_GITEA_SECRET=""
|
||||||
|
|
||||||
|
# server
|
||||||
|
WOODPECKER_HOST="https://drone.exemple.com"
|
||||||
|
WOODPECKER_SERVER_ADDR=:9991
|
||||||
|
WOODPECKER_GRPC_ADDR=:9992
|
||||||
|
|
||||||
|
# secret
|
||||||
|
WOODPECKER_AGENT_SECRET=""
|
||||||
|
|
||||||
|
# access configuration
|
||||||
|
WOODPECKER_ADMIN=
|
||||||
|
WOODPECKER_ORGS=
|
||||||
|
WOODPECKER_REPO_OWNERS=
|
||||||
|
WOODPECKER_OPEN=false
|
||||||
|
|
||||||
|
# env
|
||||||
|
# WOODPECKER_ENVIRONMENT=
|
||||||
|
# WOODPECKER_DOCKER_CONFIG=
|
||||||
|
# WOODPECKER_DEFAULT_CLONE_IMAGE=woodpeckerci/plugin-git:v1.6.1
|
||||||
|
|
||||||
|
# debug
|
||||||
|
# WOODPECKER_LOG_LEVEL=
|
22
woodpecker/woodpecker-agent.service
Normal file
22
woodpecker/woodpecker-agent.service
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Woodpecker agent
|
||||||
|
Requires=network-online.target
|
||||||
|
After=network-online.target woodpecker-server.service docker.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=woodpecker-agent
|
||||||
|
Group=docker
|
||||||
|
Type=simple
|
||||||
|
EnvironmentFile=/etc/woodpecker/agent
|
||||||
|
ExecStart=/usr/bin/woodpecker-agent
|
||||||
|
ExecReload=/usr/bin/kill -HUP $MAINPID
|
||||||
|
Restart=on-failure
|
||||||
|
KillSignal=SIGINT
|
||||||
|
LimitNOFILE=8192
|
||||||
|
PrivateDevices=yes
|
||||||
|
DynamicUser=yes
|
||||||
|
StateDirectory=woodpecker-agent
|
||||||
|
ReadWritePaths=/var/run/docker.sock
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
21
woodpecker/woodpecker-server.service
Normal file
21
woodpecker/woodpecker-server.service
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Woodpecker server
|
||||||
|
Requires=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=woodpecker
|
||||||
|
Type=simple
|
||||||
|
EnvironmentFile=/etc/woodpecker/server
|
||||||
|
ExecStart=/usr/bin/woodpecker-server
|
||||||
|
ExecReload=/usr/bin/kill -HUP $MAINPID
|
||||||
|
Restart=on-failure
|
||||||
|
KillSignal=SIGINT
|
||||||
|
LimitNOFILE=8192
|
||||||
|
PrivateDevices=yes
|
||||||
|
DynamicUser=yes
|
||||||
|
StateDirectory=woodpecker
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Add table
Add a link
Reference in a new issue