[arch-commits] Commit in buildbot/trunk (PKGBUILD)
Chih-Hsuan Yen
yan12125 at archlinux.org
Sat Feb 1 14:59:35 UTC 2020
Date: Saturday, February 1, 2020 @ 14:59:33
Author: yan12125
Revision: 561031
upgpkg: buildbot 2.6.0-3; merge buildbot-www and no long use standalone python-buildbot-pkg; eliminate duplicated webpack builds; fix pkgdesc of buildbot-docs; improve optdepends of buildbot
Modified:
buildbot/trunk/PKGBUILD
----------+
PKGBUILD | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 147 insertions(+), 21 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2020-02-01 13:37:58 UTC (rev 561030)
+++ PKGBUILD 2020-02-01 14:59:33 UTC (rev 561031)
@@ -4,28 +4,34 @@
# Contributor: William Rea <sillywilly at gmail.com>
pkgbase=buildbot
-pkgname=(buildbot buildbot-docs)
-pkgdesc='The Continuous Integration Framework'
+pkgname=(buildbot buildbot-docs
+ python-buildbot-www python-buildbot-waterfall-view
+ python-buildbot-console-view python-buildbot-grid-view
+ python-buildbot-wsgi-dashboards python-buildbot-badges)
pkgver=2.6.0
_bb_contrib_commit=ada3c8f30ca7e1b6bb260e2e5971053fbd254333
-pkgrel=2
+pkgrel=3
arch=(any)
url='https://buildbot.net'
license=(GPL2)
-depends=(python-twisted python-jinja python-zope-interface
- python-sqlalchemy-migrate python-dateutil python-txaio
- python-autobahn python-pyjwt python-yaml)
checkdepends=(python-boto3 python-lz4 python-treq python-txrequests
- python-mock python-moto python-parameterized
- python-buildbot-pkg=$pkgver buildbot-worker=$pkgver python-buildbot-www=$pkgver
- openssh git)
-makedepends=(python-setuptools git python-sphinx-jinja python-sphinxcontrib-blockdiag)
+ python-moto python-parameterized
+ buildbot-worker=$pkgver
+ openssh chromium)
+makedepends=(python-twisted python-jinja python-zope-interface
+ python-sqlalchemy-migrate python-dateutil python-txaio
+ python-autobahn python-pyjwt python-yaml
+ python-setuptools python-mock
+ python-sphinx-jinja python-sphinxcontrib-blockdiag
+ git yarn)
source=("https://github.com/buildbot/buildbot/releases/download/v$pkgver/buildbot-v$pkgver.gitarchive.tar.gz"{,.sig}
"git+https://github.com/buildbot/buildbot-contrib.git#commit=$_bb_contrib_commit"
+ "https://github.com/yan12125/buildbot/commit/26af545b3f8cbf97f2335e61b08dcf30f447c17b.patch"
"pygments-2.5.diff")
sha256sums=('0ac835b58db309bebcf00fa77687385551833b3dac1c66aa671d271776050c19'
'SKIP'
'SKIP'
+ '4bf518b614aa208152fb88e39325a8f5b5a681ee91e9033728f2bb20a7704611'
'01cb9351a05cf2523e9c6c14561b2024508798902258d3b3f5caa9a6486bfc82')
validpgpkeys=(
'390EB159056ED56F66AB1092AECD456B4D2531FC' # Pierre Tardy <tardyp at gmail.com> (@tardyp on GitHub)
@@ -35,42 +41,104 @@
prepare() {
cd buildbot-$pkgver
patch -Np1 -i ../pygments-2.5.diff
+ patch -Np1 -i ../26af545b3f8cbf97f2335e61b08dcf30f447c17b.patch
+
+ # HACK: do not use virtualenv
+ sed -i -e 's#frontend_deps:.*#frontend_deps:#' Makefile
+
+ # HACK: Do not build JS again during install
+ # We take care about the command order manually
+ sed -i '/egg_info=EggInfoCommand/d' pkg/buildbot_pkg.py
+
+ sed -i '/buildbot_windows_service/d' master/setup.py
+ rm -v master/buildbot/scripts/windows_service.py
}
build() {
- cd buildbot-$pkgver
+ export NODE_OPTIONS="--max-old-space-size=2048"
- pushd master
+ site_packages_path=$(python -c 'import site; print(site.getsitepackages()[0])')
+
+ cd "$srcdir"/buildbot-$pkgver/pkg
+ python setup.py install --root="$srcdir"/tmp_install
+
+ #################### buildbot ####################
+ cd "$srcdir"/buildbot-$pkgver/master
python setup.py build
- popd
+ #################### buildbot-www ####################
+ cd "$srcdir"/buildbot-$pkgver
+
+ # HACK: use system packages instead of ones via pip
+ make PIP=/usr/bin/true frontend_deps
+
+ export PYTHONPATH="$srcdir"/tmp_install$site_packages_path
+ for module in base waterfall_view console_view grid_view wsgi_dashboards badges
+ do
+ cd "$srcdir"/buildbot-$pkgver/www/$module
+ python setup.py build
+ done
+
+ #################### buildbot-docs ####################
+ cd "$srcdir/buildbot-$pkgver"
make docs
}
check() {
- cd buildbot-$pkgver/master
+ # Install packages to a temp folder for tests
+ cd "$srcdir"/buildbot-$pkgver/master
site_packages_path=$(python -c 'import site; print(site.getsitepackages()[0])')
- python setup.py install --root="$srcdir"/tmp_install
+ python setup.py install --root="$srcdir"/tmp_install --skip-build
# Copy files over for integration tests
cp -v buildbot/test/integration/*.tgz "$srcdir"/tmp_install$site_packages_path/buildbot/test/integration/
+ cd "$srcdir"/buildbot-$pkgver/www/base
+ python setup.py install --root="$srcdir"/tmp_install --skip-build
+
+ # Run tests
export PYTHONPATH="$srcdir"/tmp_install$site_packages_path
export PATH="$PATH:$srcdir/tmp_install/usr/bin"
+
+ cd "$srcdir"/buildbot-$pkgver/master
TZ=UTC trial3 --rterrors buildbot
+
+ for module in base waterfall_view console_view grid_view wsgi_dashboards
+ do
+ cd "$srcdir"/buildbot-$pkgver/www/$module
+ CHROME_BIN=/usr/bin/chromium yarn run test --browsers BBChromeHeadless
+ done
}
package_buildbot() {
+ pkgdesc='The Continuous Integration Framework'
+ depends=(python-twisted python-jinja python-zope-interface
+ python-sqlalchemy-migrate python-dateutil python-txaio
+ python-autobahn python-pyjwt python-yaml)
optdepends=(
- 'python-boto3: for AWS EC2 latent worker'
- 'python-lz4: to compress logs using lz4'
+ # reporters
+ 'python-pyopenssl: to use SSL/TLS in mail or IRC notifiers'
+ # secrets
+ 'pass: to use SecretInPass provider'
+ 'vault: to use HashiCorpVaultSecretProvider provider'
+ # statistics
+ 'python-influxdb: for using InfluxDB to store statistics'
+ # steps
+ 'python-subunit: for SubunitShellCommand'
'python-treq: for using HTTP requests as steps'
'python-txrequests: for using HTTP requests as steps'
- 'python-pyopenssl: to use SSL/TLS in mail or IRC notifiers'
+ # workers
+ 'buildbot-worker: for local worker'
+ 'libvirt-python: for libvirt worker'
+ 'python-boto3: for AWS EC2 latent worker'
'python-docker: for Docker latent worker'
- 'pass: to use SecretInPass provider'
- 'vault: to use HashiCorpVaultSecretProvider provider'
+ 'python-novaclient: for OpenStack latent worker'
+ # www
+ 'python-ldap3: to authenticate users via LDAP'
+
+ # misc
+ 'python-lz4: to compress logs using lz4'
)
cd buildbot-$pkgver/master
@@ -80,7 +148,7 @@
}
package_buildbot-docs() {
- depends=()
+ pkgdesc='Buildbot docs'
cd buildbot-$pkgver/master/docs
install -Ddm755 "$pkgdir"/usr/share/doc/buildbot
@@ -88,3 +156,61 @@
cp -dr --no-preserve=ownership _build/$kind "$pkgdir"/usr/share/doc/buildbot/$kind
done
}
+
+package_python-buildbot-www() {
+ pkgdesc='Buildbot UI'
+ depends=(python buildbot)
+ optdepends=(
+ 'python-buildbot-waterfall-view'
+ 'python-buildbot-console-view'
+ 'python-buildbot-grid-view'
+ 'python-buildbot-badges'
+ )
+
+ cd buildbot-$pkgver/www/base
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+}
+
+package_python-buildbot-waterfall-view() {
+ pkgdesc='Buildbot Waterfall View plugin'
+ depends=(python-buildbot-www)
+
+ cd buildbot-$pkgver/www/waterfall_view
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+}
+
+package_python-buildbot-console-view() {
+ pkgdesc='Buildbot Console View plugin'
+ depends=(python-buildbot-www)
+
+ cd buildbot-$pkgver/www/console_view
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+}
+
+package_python-buildbot-grid-view() {
+ pkgdesc='Buildbot Grid View plugin'
+ depends=(python-buildbot-www)
+
+ cd buildbot-$pkgver/www/grid_view
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+}
+
+package_python-buildbot-wsgi-dashboards() {
+ pkgdesc='Buildbot plugin to integrate flask or bottle dashboards to buildbot UI'
+ depends=(python-buildbot-www)
+
+ cd buildbot-$pkgver/www/wsgi_dashboards
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+}
+
+package_python-buildbot-badges() {
+ pkgdesc='Buildbot badges'
+ depends=(python-buildbot-www python-klein python-cairosvg python-cairocffi python-jinja)
+ # https://github.com/buildbot/buildbot/blob/v1.6.0/www/badges/buildbot_badges/__init__.py#L40
+ optdepends=(
+ 'ttf-dejavu: the default font for rendering badges as PNGs'
+ )
+
+ cd buildbot-$pkgver/www/badges
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+}
More information about the arch-commits
mailing list