From 58347f52fb555a672fb6a14f63d965907d15293f Mon Sep 17 00:00:00 2001 From: Tim Meusel Date: Fri, 25 Jul 2025 22:55:08 +0200 Subject: [PATCH 01/21] Switch builds to native GitHub actions --- .github/workflows/pr-testing.yml | 19 +++++-- Dockerfile | 19 ------- tasks/build.rake | 87 +++++++++----------------------- 3 files changed, 41 insertions(+), 84 deletions(-) delete mode 100644 Dockerfile diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index e8b73e877..cd9574469 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -83,20 +83,33 @@ jobs: run: rake spec build: - name: build openvox-server + name: build openvox-server - Java ${{ matrix.version }} runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + version: ['11', '17', '21'] steps: - name: checkout repo uses: actions/checkout@v5 with: submodules: recursive + - name: setup java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: ${{ matrix.version }} - name: setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.2' bundler-cache: true - # uses the Dockerfile to build openvox-server in a container - # the container hardcodes the java version + - name: Output ruby environment + run: bundle env + - name: Install clojure tools + uses: DeLaGuardo/setup-clojure@13.4 + with: + lein: latest - name: build it run: bundle exec rake vox:build diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 45be9e47d..000000000 --- a/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM almalinux:9 - -WORKDIR / - -RUN dnf install -y --enablerepo=crb vim wget git rpm-build java-11-openjdk java-11-openjdk-devel libyaml-devel zlib zlib-devel gcc-c++ patch readline readline-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison sqlite-devel -RUN wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein -RUN chmod a+x lein -RUN mv lein /usr/local/bin -RUN wget -q https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer -O- | bash -# todo: it would be great if we could get the used ruby version from openvox-agent and use it here -# and maybe don't randomly download rbenv and leiningen -# and how bad is it that we hardcode java 11 above? -RUN /bin/bash --login -c 'rbenv install 3.2.8' -RUN /bin/bash --login -c 'rbenv global 3.2.8' -RUN git config --global user.email "openvox@voxpupuli.org" -RUN git config --global user.name "Vox Pupuli" -RUN git config --global --add safe.directory /code - -CMD ["tail -f /dev/null"] diff --git a/tasks/build.rake b/tasks/build.rake index 210f9bbb3..4fd805d8d 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -18,71 +18,34 @@ rpm_platforms = ENV['RPM_PLATFORMS'] || 'el-7,el-8,el-9,el-10,sles-15,amazon-202 @debs = deb_platforms.split(',').map{ |p| "base-#{p.split('-').join}-i386.cow" }.join(' ') @rpms = rpm_platforms.split(',').map{ |p| "pl-#{p}-x86_64" }.join(' ') -def image_exists - !`docker images -q #{@image}`.strip.empty? -end - -def container_exists - !`docker container ls --all --filter 'name=#{@container}' --format json`.strip.empty? -end - -def teardown - if container_exists - puts "Stopping #{@container}" - run_command("docker stop #{@container}", silent: false, print_command: true) - run_command("docker rm #{@container}", silent: false, print_command: true) - end -end - -def start_container(ezbake_dir) - run_command("docker run -d --name #{@container} -v .:/code -v #{ezbake_dir}:/ezbake #{@image} /bin/sh -c 'tail -f /dev/null'", silent: false, print_command: true) -end - -def run(cmd) - run_command("docker exec #{@container} /bin/bash --login -c '#{cmd}'", silent: false, print_command: true) -end - namespace :vox do desc 'Build openvox-server packages with Docker' task :build, [:tag] do |_, args| - begin - #abort 'You must provide a tag.' if args[:tag].nil? || args[:tag].empty? - if args[:tag].nil? || args[:tag].empty? - puts 'running build with current branch' - else - puts "running build on #{args[:tag]}" - run_command("git fetch --tags && git checkout #{args[:tag]}") - end - - # If the Dockerfile has changed since this was last built, - # delete all containers and do `docker rmi ezbake-builder` - unless image_exists - puts "Building ezbake-builder image" - run_command("docker build -t ezbake-builder .", silent: false, print_command: true) - end - - puts "Checking out ezbake" - tmp = Dir.mktmpdir("ezbake") - ezbake_dir = "#{tmp}/ezbake" - ezbake_repo = ENV.fetch('EZBAKE_REPO', 'https://github.com/openvoxproject/ezbake') - ezbake_branch = ENV['EZBAKE_BRANCH'] || 'main' - run_command("git clone -b #{ezbake_branch} #{ezbake_repo} #{ezbake_dir}", silent: false, print_command: true) - - puts "Starting container" - teardown if container_exists - start_container(ezbake_dir) - - puts "Installing ezbake from source" - run("cd /ezbake && lein install") - - puts "Building openvox-server" - run("cd /code && rm -rf ruby && rm -rf output && bundle install --without test && lein install") - run("cd /code && COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided,internal ezbake local-build") - run_command("sudo chown -R $USER output", print_command: true) - Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } - Dir.glob('output/puppetserver-*.tar.gz').each { |f| FileUtils.mv(f, f.sub('puppetserver','openvox-server'))} - ensure - teardown + if args[:tag].nil? || args[:tag].empty? + puts 'running build with current branch' + else + puts "running build on #{args[:tag]}" + run_command("git fetch --tags && git checkout #{args[:tag]}") end + + puts "Checking out ezbake" + tmp = Dir.mktmpdir("ezbake") + ezbake_dir = "#{tmp}/ezbake" + ezbake_repo = ENV.fetch('EZBAKE_REPO', 'https://github.com/openvoxproject/ezbake') + ezbake_branch = ENV['EZBAKE_BRANCH'] || 'main' + run_command("git clone -b #{ezbake_branch} #{ezbake_repo} #{ezbake_dir}", silent: false, print_command: true) + + # prepare git foo for packaging gem (????) + run_command("git config --global user.email 'you@example.com'; git config --global user.name 'Your Name'") + + puts "Installing ezbake from source" + run_command("cd #{ezbake_dir} && lein install") + + puts "Building openvox-server" + run_command("rm -rf ruby && rm -rf output && lein install") + run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided,internal ezbake local-build") + run_command("sudo chown -R $USER output", print_command: true) + Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } + Dir.glob('output/puppetserver-*.tar.gz').each { |f| FileUtils.mv(f, f.sub('puppetserver','openvox-server'))} end end From 1c76c921f785c9ac61c44fc3671e4fb6e5beade7 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 10:23:53 +0200 Subject: [PATCH 02/21] feat: build upon ruby and java matrix --- .github/workflows/pr-testing.yml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index cd9574469..0c6df7166 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -83,33 +83,42 @@ jobs: run: rake spec build: - name: build openvox-server - Java ${{ matrix.version }} + name: build openvox-server - Java ${{ matrix.java }} Ruby ${{ matrix.ruby }} runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: - version: ['11', '17', '21'] + java: ['11', '17', '21'] + ruby: ['3.1', '3.2', '3.3', '3.4'] steps: - name: checkout repo uses: actions/checkout@v5 with: submodules: recursive - - name: setup java + + - name: Setup Java ${{ matrix.java }} uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: ${{ matrix.version }} - - name: setup ruby + java-version: ${{ matrix.java }} + + - name: Setup Bundle + run: bundle install + + - name: Setup Ruby ${{ matrix.ruby }} uses: ruby/setup-ruby@v1 with: - ruby-version: '3.2' + ruby-version: ${{ matrix.ruby }} bundler-cache: true + - name: Output ruby environment run: bundle env + - name: Install clojure tools uses: DeLaGuardo/setup-clojure@13.4 with: lein: latest + - name: build it run: bundle exec rake vox:build From 48ad765826e569707fe2a135490e9718e40d1b37 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 10:27:00 +0200 Subject: [PATCH 03/21] fix: move bundle install task after ruby installation --- .github/workflows/pr-testing.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index 0c6df7166..cd06b20e9 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -102,15 +102,15 @@ jobs: distribution: 'temurin' java-version: ${{ matrix.java }} - - name: Setup Bundle - run: bundle install - - name: Setup Ruby ${{ matrix.ruby }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true + - name: Setup Bundle + run: bundle install + - name: Output ruby environment run: bundle env From c7bbcd78e7767b6be7da6b44e9593359e50f00fb Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 10:43:35 +0200 Subject: [PATCH 04/21] fix: test if ref changes build --- .github/workflows/pr-testing.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index cd06b20e9..5794e0ae4 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -89,7 +89,7 @@ jobs: fail-fast: false matrix: java: ['11', '17', '21'] - ruby: ['3.1', '3.2', '3.3', '3.4'] + ruby: ['3.2', '3.3'] steps: - name: checkout repo uses: actions/checkout@v5 @@ -108,19 +108,19 @@ jobs: ruby-version: ${{ matrix.ruby }} bundler-cache: true - - name: Setup Bundle - run: bundle install + # - name: Setup Bundle + # run: bundle install - - name: Output ruby environment - run: bundle env + # - name: Output ruby environment + # run: bundle env - - name: Install clojure tools - uses: DeLaGuardo/setup-clojure@13.4 - with: - lein: latest + # - name: Install clojure tools + # uses: DeLaGuardo/setup-clojure@13.4 + # with: + # lein: latest - name: build it - run: bundle exec rake vox:build + run: bundle exec rake vox:build['${{ github.ref }}'] clojure-linting: name: Clojure Linting From 5c6d1b7b4368580c35808372d305c28147213985 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 10:48:16 +0200 Subject: [PATCH 05/21] fix: ref does not help --- .github/workflows/pr-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index 5794e0ae4..56b78be2f 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -120,7 +120,7 @@ jobs: # lein: latest - name: build it - run: bundle exec rake vox:build['${{ github.ref }}'] + run: bundle exec rake vox:build clojure-linting: name: Clojure Linting From 6935a08df30ee3cb447ea41a15dfe9fb5667061d Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 10:54:59 +0200 Subject: [PATCH 06/21] fix: bring back lein --- .github/workflows/pr-testing.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index 56b78be2f..b5e51b56e 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -114,10 +114,10 @@ jobs: # - name: Output ruby environment # run: bundle env - # - name: Install clojure tools - # uses: DeLaGuardo/setup-clojure@13.4 - # with: - # lein: latest + - name: Install clojure tools + uses: DeLaGuardo/setup-clojure@13.4 + with: + lein: latest - name: build it run: bundle exec rake vox:build From b289d84eba9bd8a6f249b383f82ec966b90c428b Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 11:26:01 +0200 Subject: [PATCH 07/21] fix: use packaging gem from github registry --- Gemfile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 44c076a0d..fc560d8a7 100644 --- a/Gemfile +++ b/Gemfile @@ -11,8 +11,11 @@ def location_for(place, fake_version = nil) end gem 'public_suffix', '>= 4.0.7', '< 7' -# 1.0.0 is the first OpenVoxProject release -gem 'packaging', '~> 1.0', github: 'OpenVoxProject/packaging' + +source "https://rubygems.pkg.github.com/openvoxproject" do + gem "packaging", "1.0.0" +end + gem 'rake', :group => [:development, :test] group :test do From 761aee843ca2631a2318afe250462496063d8b3c Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 11:36:05 +0200 Subject: [PATCH 08/21] fix: update packaging gem source to use GitHub repository again --- .github/workflows/pr-testing.yml | 8 ++++---- Gemfile | 7 ++----- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index b5e51b56e..d1bfef28c 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -108,11 +108,11 @@ jobs: ruby-version: ${{ matrix.ruby }} bundler-cache: true - # - name: Setup Bundle - # run: bundle install + - name: Bundle List + run: bundle list - # - name: Output ruby environment - # run: bundle env + - name: Output ruby environment + run: bundle env - name: Install clojure tools uses: DeLaGuardo/setup-clojure@13.4 diff --git a/Gemfile b/Gemfile index fc560d8a7..44c076a0d 100644 --- a/Gemfile +++ b/Gemfile @@ -11,11 +11,8 @@ def location_for(place, fake_version = nil) end gem 'public_suffix', '>= 4.0.7', '< 7' - -source "https://rubygems.pkg.github.com/openvoxproject" do - gem "packaging", "1.0.0" -end - +# 1.0.0 is the first OpenVoxProject release +gem 'packaging', '~> 1.0', github: 'OpenVoxProject/packaging' gem 'rake', :group => [:development, :test] group :test do From 12ef0827a08a9e9b0709ee94095758b9ec592df5 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 11:50:26 +0200 Subject: [PATCH 09/21] fix: update packaging gem source to use specific git URL and tag --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 44c076a0d..bdb4aeb18 100644 --- a/Gemfile +++ b/Gemfile @@ -12,7 +12,7 @@ end gem 'public_suffix', '>= 4.0.7', '< 7' # 1.0.0 is the first OpenVoxProject release -gem 'packaging', '~> 1.0', github: 'OpenVoxProject/packaging' +gem 'packaging', git: 'https://github.com/OpenVoxProject/packaging.git', tag: '1.0.0' gem 'rake', :group => [:development, :test] group :test do From 4bd119504dcc3999f73d512654b1fb14f98f6966 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 12:11:06 +0200 Subject: [PATCH 10/21] revert: back to original gem installation --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index bdb4aeb18..44c076a0d 100644 --- a/Gemfile +++ b/Gemfile @@ -12,7 +12,7 @@ end gem 'public_suffix', '>= 4.0.7', '< 7' # 1.0.0 is the first OpenVoxProject release -gem 'packaging', git: 'https://github.com/OpenVoxProject/packaging.git', tag: '1.0.0' +gem 'packaging', '~> 1.0', github: 'OpenVoxProject/packaging' gem 'rake', :group => [:development, :test] group :test do From 97bde34792392a9ca129a6d1d6635dbe458b56bf Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 12:54:33 +0200 Subject: [PATCH 11/21] fix: enhance command output visibility during ezbake installation and local build --- tasks/build.rake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/build.rake b/tasks/build.rake index 4fd805d8d..7d2e72271 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -39,11 +39,11 @@ namespace :vox do run_command("git config --global user.email 'you@example.com'; git config --global user.name 'Your Name'") puts "Installing ezbake from source" - run_command("cd #{ezbake_dir} && lein install") + run_command("cd #{ezbake_dir} && lein install", silent: false, print_command: true) puts "Building openvox-server" run_command("rm -rf ruby && rm -rf output && lein install") - run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided,internal ezbake local-build") + run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) run_command("sudo chown -R $USER output", print_command: true) Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } Dir.glob('output/puppetserver-*.tar.gz').each { |f| FileUtils.mv(f, f.sub('puppetserver','openvox-server'))} From db0ffdc317c47475d6d714da60150fbe27291ce1 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 13:01:22 +0200 Subject: [PATCH 12/21] fix: update build process to include bundle install before lein install --- tasks/build.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/build.rake b/tasks/build.rake index 7d2e72271..31a6858a3 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -42,7 +42,7 @@ namespace :vox do run_command("cd #{ezbake_dir} && lein install", silent: false, print_command: true) puts "Building openvox-server" - run_command("rm -rf ruby && rm -rf output && lein install") + run_command("rm -rf ruby && rm -rf output && bundle install --without test && lein install", silent: false, print_command: true) run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) run_command("sudo chown -R $USER output", print_command: true) Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } From db55bac74acd0c52614ed8e3edbefa69bb8a1b29 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 13:24:00 +0200 Subject: [PATCH 13/21] fix: remove redundant bundle commands from CI workflow and add bundle list to build process --- .github/workflows/pr-testing.yml | 6 ------ tasks/build.rake | 1 + 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index d1bfef28c..fb5710da7 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -108,12 +108,6 @@ jobs: ruby-version: ${{ matrix.ruby }} bundler-cache: true - - name: Bundle List - run: bundle list - - - name: Output ruby environment - run: bundle env - - name: Install clojure tools uses: DeLaGuardo/setup-clojure@13.4 with: diff --git a/tasks/build.rake b/tasks/build.rake index 31a6858a3..38151d5fb 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -43,6 +43,7 @@ namespace :vox do puts "Building openvox-server" run_command("rm -rf ruby && rm -rf output && bundle install --without test && lein install", silent: false, print_command: true) + run_command('bundle list', silent: false, print_command: true) run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) run_command("sudo chown -R $USER output", print_command: true) Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } From 1f206054fe5ae7313b8a7a02a70fac0c922f37b8 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 13:41:12 +0200 Subject: [PATCH 14/21] fix: add command to list bundled gems during openvox-server build process --- tasks/build.rake | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/build.rake b/tasks/build.rake index 38151d5fb..129277d04 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -44,6 +44,7 @@ namespace :vox do puts "Building openvox-server" run_command("rm -rf ruby && rm -rf output && bundle install --without test && lein install", silent: false, print_command: true) run_command('bundle list', silent: false, print_command: true) + run_command('ls -la /home/runner/work/openvox-server/openvox-server/.bundle/gems/ruby/3.2.0/bundler/gems/', silent: false, print_command: true) run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) run_command("sudo chown -R $USER output", print_command: true) Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } From 3996b7114a4ad17c9122e32ebea8a317fa7f5b6b Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 13:48:31 +0200 Subject: [PATCH 15/21] fix: replace ls command with bundle info for better gem information during build --- tasks/build.rake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tasks/build.rake b/tasks/build.rake index 129277d04..3594cb938 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -44,7 +44,8 @@ namespace :vox do puts "Building openvox-server" run_command("rm -rf ruby && rm -rf output && bundle install --without test && lein install", silent: false, print_command: true) run_command('bundle list', silent: false, print_command: true) - run_command('ls -la /home/runner/work/openvox-server/openvox-server/.bundle/gems/ruby/3.2.0/bundler/gems/', silent: false, print_command: true) + run_command('bundle info', silent: false, print_command: true) + # run_command('ls -la /home/runner/work/openvox-server/openvox-server/.bundle/gems/ruby/3.2.0/bundler/gems/', silent: false, print_command: true) run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) run_command("sudo chown -R $USER output", print_command: true) Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } From 534c570ca619333c8ad9c18fd638f7a488702412 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 13:50:07 +0200 Subject: [PATCH 16/21] fix: update bundle info command to specify packaging for clearer output during build --- tasks/build.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/build.rake b/tasks/build.rake index 3594cb938..4d8fa0b7c 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -44,7 +44,7 @@ namespace :vox do puts "Building openvox-server" run_command("rm -rf ruby && rm -rf output && bundle install --without test && lein install", silent: false, print_command: true) run_command('bundle list', silent: false, print_command: true) - run_command('bundle info', silent: false, print_command: true) + run_command('bundle info packaging', silent: false, print_command: true) # run_command('ls -la /home/runner/work/openvox-server/openvox-server/.bundle/gems/ruby/3.2.0/bundler/gems/', silent: false, print_command: true) run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) run_command("sudo chown -R $USER output", print_command: true) From b6d24644c614c561e050d5e7d00e4297550ec698 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 14:09:06 +0200 Subject: [PATCH 17/21] fix: update build process to set environment variables for local builds --- .github/workflows/pr-testing.yml | 6 ++++++ tasks/build.rake | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index fb5710da7..4eb817444 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -115,6 +115,12 @@ jobs: - name: build it run: bundle exec rake vox:build + env: + # EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS: true + EZBAKE_BRANCH: no-bundle-on-local-build + # EZBAKE_NODEPLOY: true + EZBAKE_REPO: https://github.com/rwaffen/ezbake + # LEIN_PROFILES: ezbake clojure-linting: name: Clojure Linting diff --git a/tasks/build.rake b/tasks/build.rake index 4d8fa0b7c..510d985f5 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -43,10 +43,7 @@ namespace :vox do puts "Building openvox-server" run_command("rm -rf ruby && rm -rf output && bundle install --without test && lein install", silent: false, print_command: true) - run_command('bundle list', silent: false, print_command: true) - run_command('bundle info packaging', silent: false, print_command: true) - # run_command('ls -la /home/runner/work/openvox-server/openvox-server/.bundle/gems/ruby/3.2.0/bundler/gems/', silent: false, print_command: true) - run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" GEM_SOURCE='https://rubygems.org' EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) + run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) run_command("sudo chown -R $USER output", print_command: true) Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } Dir.glob('output/puppetserver-*.tar.gz').each { |f| FileUtils.mv(f, f.sub('puppetserver','openvox-server'))} From 196d54f457e2105e9f5062493d02144633178288 Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 15:40:01 +0200 Subject: [PATCH 18/21] fix: move packaging gem definitions to their own group for better organization --- Gemfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 44c076a0d..9f7da3412 100644 --- a/Gemfile +++ b/Gemfile @@ -11,8 +11,6 @@ def location_for(place, fake_version = nil) end gem 'public_suffix', '>= 4.0.7', '< 7' -# 1.0.0 is the first OpenVoxProject release -gem 'packaging', '~> 1.0', github: 'OpenVoxProject/packaging' gem 'rake', :group => [:development, :test] group :test do @@ -29,6 +27,12 @@ group :test do gem 'docker-api', '>=1.31.0', '< 3' end +# cut from ezbake +group :packaging do + gem 'packaging', '~> 1.0', github: 'OpenVoxProject/packaging' + gem 'fpm', '~> 1.16' +end + group :release, optional: true do # usually we pin to ~> 2.1, but some of the EoL beaker 6 dependencies require ancient faraday versions # it's all a huge pain and the beaker setup needs to be reworked From 7b54a9cdb31c5192b51753498431fd7f9e7786fc Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 16:14:49 +0200 Subject: [PATCH 19/21] fix: update build environment to use ubuntu-22.04 and streamline build commands --- .github/workflows/pr-testing.yml | 8 ++++---- tasks/build.rake | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index 4eb817444..8a04038ad 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -84,7 +84,7 @@ jobs: build: name: build openvox-server - Java ${{ matrix.java }} Ruby ${{ matrix.ruby }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: @@ -116,11 +116,11 @@ jobs: - name: build it run: bundle exec rake vox:build env: - # EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS: true + EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS: true EZBAKE_BRANCH: no-bundle-on-local-build - # EZBAKE_NODEPLOY: true + EZBAKE_NODEPLOY: true EZBAKE_REPO: https://github.com/rwaffen/ezbake - # LEIN_PROFILES: ezbake + LEIN_PROFILES: ezbake clojure-linting: name: Clojure Linting diff --git a/tasks/build.rake b/tasks/build.rake index 510d985f5..b6698e533 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -43,7 +43,7 @@ namespace :vox do puts "Building openvox-server" run_command("rm -rf ruby && rm -rf output && bundle install --without test && lein install", silent: false, print_command: true) - run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" EZBAKE_ALLOW_UNREPRODUCIBLE_BUILDS=true EZBAKE_NODEPLOY=true LEIN_PROFILES=ezbake lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) + run_command("COW=\"#{@debs}\" MOCK=\"#{@rpms}\" lein with-profile user,ezbake,provided ezbake local-build", silent: false, print_command: true) run_command("sudo chown -R $USER output", print_command: true) Dir.glob('output/**/*i386*').each { |f| FileUtils.rm_rf(f) } Dir.glob('output/puppetserver-*.tar.gz').each { |f| FileUtils.mv(f, f.sub('puppetserver','openvox-server'))} From 48e5a671993d493dadc8b57f96b6da6c7e5ce12b Mon Sep 17 00:00:00 2001 From: Robert Waffen Date: Mon, 18 Aug 2025 16:32:05 +0200 Subject: [PATCH 20/21] fix: add comments to clarify RPM version compatibility in build job --- .github/workflows/pr-testing.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index 8a04038ad..e22ab3936 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -84,6 +84,10 @@ jobs: build: name: build openvox-server - Java ${{ matrix.java }} Ruby ${{ matrix.ruby }} + # https://rpm.org/releases/4.18.2 + # https://github.com/actions/runner-images?tab=readme-ov-file + # rpm in 22 is version 4.17.x and allows our macros + # rpm in 24 is version 4.18.x and does not allow our rpmversion macro runs-on: ubuntu-22.04 strategy: fail-fast: false From 9160518cf45b19c5185ecbc8257c0068e85128e2 Mon Sep 17 00:00:00 2001 From: Tim Meusel Date: Wed, 20 Aug 2025 15:36:19 +0200 Subject: [PATCH 21/21] CI: Dont build packages in a Ruby matrix --- .github/workflows/pr-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-testing.yml b/.github/workflows/pr-testing.yml index e22ab3936..f13218f28 100644 --- a/.github/workflows/pr-testing.yml +++ b/.github/workflows/pr-testing.yml @@ -93,7 +93,7 @@ jobs: fail-fast: false matrix: java: ['11', '17', '21'] - ruby: ['3.2', '3.3'] + ruby: ['3.3'] steps: - name: checkout repo uses: actions/checkout@v5