Graylog2 / fpm-recipes

Graylog package build recipes
http://docs.graylog.org/en/latest/pages/installation/operating_system_packages.html
18 stars 19 forks source link

Add arch-specific chromedriver to enterprise packages. #118

Closed malcyon closed 2 years ago

malcyon commented 2 years ago

Adding architecture-specific chromedriver and headless_shell into enterprise packages.

See: https://github.com/Graylog2/ci-infrastructure/issues/27

malcyon commented 2 years ago

Adding this to the 4.3 branch so that it does not break any 4.2 builds.

malcyon commented 2 years ago

Below is my test plan. Everything looks good to me. The chromedriver and headless_shell will now have the architecture appended to the end of the file name.

Edit data.yml to point to snapshot tarballs on local disk
  graylog-enterprise:
    source: file:///home/jenkins/fpm-recipes/recipes/graylog-enterprise/graylog-enterprise-4.3.0-SNAPSHOT-20220118174216.tgz
    sha256: fe6b1106bb1f274fecd9ba7433e7c45ed554389155fa3035e0e1ae9bf7005dc5

  graylog-enterprise-plugins:
    source: file:///home/jenkins/fpm-recipes/recipes/graylog-enterprise-plugins/graylog-enterprise-plugins-4.3.0-SNAPSHOT-20220118174216.tgz
    sha256: 5b9b1bedb134b3f0b66c56c1d22a9ba96fef75d28dc27ea4048531ea134c52bc

Build the arch-specific packages
  docker run -it -v /home/donald/src/fpm-recipes:/home/jenkins/fpm-recipes -w/home/jenkins/fpm-recipes/recipes/graylog-enterprise fpm-test:latest /bin/bash
  cd recipes/graylog-enterprise
  export PKG_ARCH=amd64
  fpm-cook --tmp-root /tmp/fpm-cook --pkg-dir /home/jenkins/fpm-recipes/packages/test package --no-deps --target deb /home/jenkins/fpm-recipes/recipes/graylog-enterprise/recipe.rb
  fpm-cook --tmp-root /tmp/fpm-cook --pkg-dir /home/jenkins/fpm-recipes/packages/test package --no-deps --target rpm /home/jenkins/fpm-recipes/recipes/graylog-enterprise/recipe.rb
  export PKG_ARCH=arm64
  fpm-cook --tmp-root /tmp/fpm-cook --pkg-dir /home/jenkins/fpm-recipes/packages/test package --no-deps --target deb /home/jenkins/fpm-recipes/recipes/graylog-enterprise/recipe.rb
  fpm-cook --tmp-root /tmp/fpm-cook --pkg-dir /home/jenkins/fpm-recipes/packages/test package --no-deps --target rpm /home/jenkins/fpm-recipes/recipes/graylog-enterprise/recipe.rb

  cd ../graylog-enterprise-plugins
  export PKG_ARCH=amd64
  fpm-cook --tmp-root /tmp/fpm-cook --pkg-dir /home/jenkins/fpm-recipes/packages/test package --no-deps --target deb /home/jenkins/fpm-recipes/recipes/graylog-enterprise-plugins/recipe.rb
  fpm-cook --tmp-root /tmp/fpm-cook --pkg-dir /home/jenkins/fpm-recipes/packages/test package --no-deps --target rpm /home/jenkins/fpm-recipes/recipes/graylog-enterprise-plugins/recipe.rb
  export PKG_ARCH=arm64
  fpm-cook --tmp-root /tmp/fpm-cook --pkg-dir /home/jenkins/fpm-recipes/packages/test package --no-deps --target rpm /home/jenkins/fpm-recipes/recipes/graylog-enterprise-plugins/recipe.rb
  fpm-cook --tmp-root /tmp/fpm-cook --pkg-dir /home/jenkins/fpm-recipes/packages/test package --no-deps --target deb /home/jenkins/fpm-recipes/recipes/graylog-enterprise-plugins/recipe.rb

Ensure architecture is correct
  dpkg-deb -I ./graylog-enterprise_4.2.5-1_amd64.deb | grep Architecture
  dpkg-deb -I ./graylog-enterprise_4.2.5-1_arm64.deb | grep Architecture
  rpm -qpi ./graylog-enterprise-4.2.5-1.aarch64.rpm | grep Architecture
  rpm -qpi ./graylog-enterprise-4.2.5-1.x86_64.rpm | grep Architecture
  dpkg-deb -I ./graylog-enterprise-plugins_4.2.5-1_amd64.deb | grep Architecture
  dpkg-deb -I ./graylog-enterprise-plugins_4.2.5-1_arm64.deb | grep Architecture
  rpm -qpi ./graylog-enterprise-plugins-4.2.5-1.aarch64.rpm | grep Architecture
  rpm -qpi ./graylog-enterprise-plugins-4.2.5-1.x86_64.rpm | grep Architecture

Ensure all the files still exist and are in the right place
  dpkg-deb -c graylog-enterprise_4.2.5-1_amd64.deb | awk '{print $6}' | sort > graylog-enterprise_4.2.5-1_amd64.deb.out
  dpkg-deb -c graylog-enterprise_4.2.5-1_arm64.deb | awk '{print $6}' | sort > graylog-enterprise_4.2.5-1_arm64.deb.out
  dpkg-deb -c graylog-enterprise_4.2.5-1_all.deb | awk '{print $6}' | sort > graylog-enterprise_4.2.5-1_all.deb.out
  dpkg-deb -c graylog-enterprise-plugins_4.2.5-1_all.deb | awk '{print $6}' | sort > graylog-enterprise-plugins_4.2.5-1_all.deb.out
  dpkg-deb -c graylog-enterprise-plugins_4.2.5-1_amd64.deb | awk '{print $6}' | sort > graylog-enterprise-plugins_4.2.5-1_amd64.deb.out
  dpkg-deb -c graylog-enterprise-plugins_4.2.5-1_arm64.deb | awk '{print $6}' | sort > graylog-enterprise-plugins_4.2.5-1_arm64.deb.out

  diff graylog-enterprise_4.2.5-1_all.deb.out graylog-enterprise_4.2.5-1_amd64.deb.out
  diff graylog-enterprise_4.2.5-1_all.deb.out graylog-enterprise_4.2.5-1_arm64.deb.out
  diff graylog-enterprise-plugins_4.2.5-1_all.deb.out graylog-enterprise-plugins_4.2.5-1_amd64.deb.out
  diff graylog-enterprise-plugins_4.2.5-1_all.deb.out graylog-enterprise-plugins_4.2.5-1_arm64.deb.out

Here is the bin directory for graylog-enterprise on amd64:

donald@laptop:~/src/fpm-recipes/packages/test$ grep bin graylog-enterprise_4.2.5-1_amd64.deb.out
./usr/share/graylog-server/bin/
./usr/share/graylog-server/bin/chromedriver_amd64
./usr/share/graylog-server/bin/chromedriver_start.sh
./usr/share/graylog-server/bin/graylog-server
./usr/share/graylog-server/bin/headless_shell_amd64

Here is the bin directory for graylog-enterprise-plugins on amd64:

donald@laptop:~/src/fpm-recipes/packages/test$ grep bin graylog-enterprise-plugins_4.2.5-1_amd64.deb.out
./usr/share/graylog-server/bin/
./usr/share/graylog-server/bin/chromedriver_amd64
./usr/share/graylog-server/bin/chromedriver_start.sh
./usr/share/graylog-server/bin/headless_shell_amd64
malcyon commented 2 years ago

Next steps: