# Maintainer: nyyu pkgbase=woodpecker pkgname=( 'woodpecker-server' 'woodpecker-agent' 'woodpecker-cli' ) pkgver=0.15.0+654+g94f2331a4 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' 'nodejs-lts-hydrogen' 'npm') options=('!lto') source=(git+https://github.com/woodpecker-ci/woodpecker.git 'Add-global-user-secret.patch' 'woodpecker-server.service' 'woodpecker-agent.service' 'agent.conf' 'server.conf') sha256sums=('SKIP' 'afe322fd6b72097fc6d80352832daeb8bc9c30b2380c252d129d3c487ddc631d' '6e22e6939222aaad07311e37a086935ca32dd149c3688b2809db5f55df816516' '7a72ba21f385b5dcf7f2d4e8fb7a643070eb2cf722187ca1ec69a9d04b003e9e' 'b6bf640e6649b991451bbd006b6e267f24fc49f51cf77251c9c33e7ebdd51014' 'd983da1df22d00338aa82be5844554f27f789361f405fe381f73896623bd2c7a') pkgver() { cd "$pkgbase" git describe --tags | sed 's/^v//;s/-/+/g' } prepare() { cd "$pkgbase" git apply ../Add-global-user-secret.patch || true git revert -n a389287d808d563beffc04f08015d78010f1da8e find web/src/assets/locales ! -name 'en.json' -type f -exec rm -f {} + mkdir -p build-server build-agent build-cli go mod download || true } build() { cd "$pkgbase" export CGO_CPPFLAGS="${CPPFLAGS}" export CGO_CFLAGS="${CFLAGS}" export CGO_CXXFLAGS="${CXXFLAGS}" local COMMON_FLAGS=( -trimpath -buildmode=pie -mod=readonly -modcacherw -ldflags "-linkmode external -extldflags \"${LDFLAGS}\" -X github.com/woodpecker-ci/woodpecker/version.Version=${pkgver}" ) cd web npm install npm run build cd .. go build \ "${COMMON_FLAGS[@]}" \ -o build-server \ ./cmd/server/... go build \ "${COMMON_FLAGS[@]}" \ -o build-agent \ ./cmd/agent/... go build \ "${COMMON_FLAGS[@]}" \ -o build-cli \ ./cmd/cli/... } check() { cd "$pkgbase" # go test -v ./... } 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/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/agent "$pkgdir/usr/bin/woodpecker-agent" } package_woodpecker-cli() { cd "$pkgbase" # binary install -vDm755 build-cli/cli "$pkgdir/usr/bin/woodpecker" }