From 0a2eaafbf702f2c47e399feedfd4e79e71e84673 Mon Sep 17 00:00:00 2001 From: Dominik Gedon Date: Tue, 31 Jan 2023 08:57:28 +0100 Subject: [PATCH] Controller: update Ruby to 3.1 This will update the Ruby version on the controller from 2.5.9 to 3.1. See https://github.com/SUSE/spacewalk/issues/17431 Signed-off-by: Dominik Gedon --- salt/controller/bashrc | 1 + salt/controller/init.sls | 49 +++++++++++++++++++++++++++++++--------- salt/repos/init.sls | 1 + salt/repos/ruby.sls | 21 +++++++++++++++++ 4 files changed, 61 insertions(+), 11 deletions(-) create mode 100644 salt/repos/ruby.sls diff --git a/salt/controller/bashrc b/salt/controller/bashrc index 367b5cd1e..a14111173 100644 --- a/salt/controller/bashrc +++ b/salt/controller/bashrc @@ -104,6 +104,7 @@ export AUTH_REGISTRY_CREDENTIALS="{{ grains.get('auth_registry_username') }}|{{ export PROVIDER="{{ grains.get('provider') }}" {% if 'build_image' not in grains.get('product_version') | default('', true) %}export IS_USING_BUILD_IMAGE="{{ grains.get('is_using_build_image') }}" {% endif %} export IS_USING_SCC_REPOSITORIES="{{ grains.get('is_using_scc_repositories') }}" +export GEM_PATH="/usr/lib64/ruby/gems/3.1.0" #### Generate certificates for Google Chrome if [ ! -f /etc/pki/trust/anchors/$SERVER.cert ]; then diff --git a/salt/controller/init.sls b/salt/controller/init.sls index f8471f679..6b892920e 100644 --- a/salt/controller/init.sls +++ b/salt/controller/init.sls @@ -31,8 +31,9 @@ cucumber_requisites: - gcc - make - wget - - ruby - - ruby-devel + - libssh-devel + - ruby3.1 + - ruby3.1-devel - autoconf - ca-certificates-mozilla - automake @@ -45,17 +46,42 @@ cucumber_requisites: - libxslt-devel - mozilla-nss-tools - postgresql-devel - # packaged ruby gems - - ruby2.5-rubygem-bundler - - twopence - - python-twopence - - twopence-devel - - twopence-shell-client - - twopence-test-server - - rubygem-twopence + #- twopence + #- python-twopence + - python-devel + #- twopence-devel + #- twopence-shell-client + #- twopence-test-server + #- rubygem-twopence - require: - sls: repos +/usr/bin/gem: + file.symlink: + - target: /usr/bin/gem.ruby3.1 + - force: True + +ruby_set_rake_version: + cmd.run: + - name: update-alternatives --set rake /usr/bin/rake.ruby.ruby3.1 + +ruby_set_bundle_version: + cmd.run: + - name: update-alternatives --set bundle /usr/bin/bundle.ruby.ruby3.1 + +# workaround until twopence is adjusted for Ruby 3.x +twopence_install_from_source: + cmd.run: + - name: | + git clone https://github.com/nodeg/twopence.git /root/twopence + cd /root/twopence + git checkout update-ruby + make + make install + - creates: /root/twopence + - require: + - pkg: cucumber_requisites + install_chromium: pkg.installed: - name: chromium @@ -71,10 +97,11 @@ create_syslink_for_chromedriver: install_gems_via_bundle: cmd.run: - - name: bundle.ruby2.5 install --gemfile Gemfile + - name: bundle.ruby3.1 install --gemfile Gemfile - cwd: /root/spacewalk/testsuite - require: - pkg: cucumber_requisites + - cmd: twopence_install_from_source - cmd: spacewalk_git_repository install_npm: diff --git a/salt/repos/init.sls b/salt/repos/init.sls index 398d2f69e..5d8eeb4b0 100644 --- a/salt/repos/init.sls +++ b/salt/repos/init.sls @@ -11,6 +11,7 @@ include: - repos.testsuite - repos.tools - repos.jenkins + - repos.ruby {% endif %} - repos.additional diff --git a/salt/repos/ruby.sls b/salt/repos/ruby.sls new file mode 100644 index 000000000..988c22560 --- /dev/null +++ b/salt/repos/ruby.sls @@ -0,0 +1,21 @@ +{% if grains['os'] == 'SUSE' and ('controller' in grains.get('roles')) %} + +ruby_add_devel_repository: + pkgrepo.managed: + - name: Ruby devel + - baseurl: http://download.opensuse.org/repositories/devel:/languages:/ruby/15.4/ + - refresh: True + - gpgautoimport: True + +ruby_gems_add_devel_repository: + pkgrepo.managed: + - name: Ruby devel extensions + - baseurl: http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/15.4/ + - refresh: True + - gpgautoimport: True + +{% endif %} + +# WORKAROUND: see github:saltstack/salt#10852 +{{ sls }}_nop: + test.nop: []