113 lines
2.5 KiB
Bash
113 lines
2.5 KiB
Bash
|
pkgbase=woodpecker
|
||
|
pkgname=(
|
||
|
'woodpecker-server'
|
||
|
'woodpecker-agent'
|
||
|
'woodpecker-cli'
|
||
|
)
|
||
|
pkgver=0.15.5
|
||
|
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' 'npm')
|
||
|
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=('SKIP'
|
||
|
'c83db16998062a6c6dcc0559df5b71c44d6e0f199c74b22f969399098dd57afd'
|
||
|
'176d884407b89da3e83cb0b19c506a3fd5ce39a19fb6346e512562ee73e50373'
|
||
|
'4de44e9fd4ae2b83955536fa12be94d4812706544178923c40b53b8a6dd71079'
|
||
|
'9a90780b9bbd9596b34c0ff81d9256dba54a14d40c72de47c62c1ffd094ba217')
|
||
|
|
||
|
prepare() {
|
||
|
cd "$pkgbase"
|
||
|
|
||
|
mkdir -p build-server build-agent build-cli
|
||
|
|
||
|
go mod download
|
||
|
}
|
||
|
|
||
|
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-cli"
|
||
|
}
|