[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