toolbox-0.0.99.3-0.5.git660b6970e998.el9
- Make sosreport work by setting the HOST environment variable - Related: #2000051 Signed-off-by: Jindrich Novy <jnovy@redhat.com>
This commit is contained in:
		
							parent
							
								
									38f416cd16
								
							
						
					
					
						commit
						b9680ab712
					
				| @ -1,6 +0,0 @@ | ||||
| --- !Policy | ||||
| product_versions: | ||||
|   - rhel-9 | ||||
| decision_context: osci_compose_gate | ||||
| rules: | ||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} | ||||
| @ -1,12 +0,0 @@ | ||||
| --- | ||||
| # Sigh; RHEL8 doesn't have BATS | ||||
| - name: bats | fetch and unpack tarball | ||||
|   unarchive: | ||||
|     src: https://github.com/bats-core/bats-core/archive/v1.4.1.tar.gz | ||||
|     dest: /root | ||||
|     remote_src: true | ||||
| 
 | ||||
| - name: bats | install | ||||
|   command: ./install.sh /usr/local | ||||
|   args: | ||||
|     chdir: /root/bats-core-1.4.1 | ||||
| @ -1,7 +0,0 @@ | ||||
| --- | ||||
| - name: create nonroot user | ||||
|   user: | ||||
|     name: testuser | ||||
|     shell: /bin/bash | ||||
| - name: enable linger | ||||
|   command: loginctl enable-linger testuser | ||||
| @ -1,72 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # Run bats tests for a given $TEST_PACKAGE, e.g. buildah, podman | ||||
| # | ||||
| # This is invoked by the 'run_bats_tests' role; we assume that | ||||
| # the package foo has a foo-tests subpackage which provides the | ||||
| # directory /usr/share/foo/test/system, containing one or more .bats | ||||
| # test files. | ||||
| # | ||||
| 
 | ||||
| export PATH=/usr/local/bin:/usr/sbin:/usr/bin | ||||
| 
 | ||||
| FULL_LOG=/tmp/test.debug.log | ||||
| BATS_LOG=/tmp/test.bats.log | ||||
| rm -f $FULL_LOG $BATS_LOG | ||||
| touch $FULL_LOG $BATS_LOG | ||||
| 
 | ||||
| exec &> $FULL_LOG | ||||
| 
 | ||||
| # Log program versions | ||||
| echo "Packages:" | ||||
| rpm -q ${TEST_PACKAGE} ${TEST_PACKAGE}-tests | ||||
| 
 | ||||
| echo "------------------------------" | ||||
| printenv | sort | ||||
| 
 | ||||
| testdir=/usr/share/${TEST_PACKAGE}/test/system | ||||
| 
 | ||||
| if ! cd $testdir; then | ||||
|     echo "FAIL ${TEST_NAME} : cd $testdir"      >> /tmp/test.log | ||||
|     exit 0 | ||||
| fi | ||||
| 
 | ||||
| if [ -e /tmp/helper.sh ]; then | ||||
|     echo "------------------------------" | ||||
|     echo ". /tmp/helper.sh" | ||||
|     . /tmp/helper.sh | ||||
| fi | ||||
| 
 | ||||
| if [ "$(type -t setup)" = "function" ]; then | ||||
|     echo "------------------------------" | ||||
|     echo "\$ setup" | ||||
|     setup | ||||
|     if [ $? -ne 0 ]; then | ||||
|         echo "FAIL ${TEST_NAME} : setup"       >> /tmp/test.log | ||||
|         exit 0 | ||||
|     fi | ||||
| fi | ||||
| 
 | ||||
| echo "------------------------------" | ||||
| echo "\$ bats ." | ||||
| bats . &> $BATS_LOG | ||||
| rc=$? | ||||
| 
 | ||||
| echo "------------------------------" | ||||
| echo "bats completed with status $rc" | ||||
| 
 | ||||
| status=PASS | ||||
| if [ $rc -ne 0 ]; then | ||||
|     status=FAIL | ||||
| fi | ||||
| 
 | ||||
| echo "${status} ${TEST_NAME}" >> /tmp/test.log | ||||
| 
 | ||||
| if [ "$(type -t teardown)" = "function" ]; then | ||||
|     echo "------------------------------" | ||||
|     echo "\$ teardown" | ||||
|     teardown | ||||
| fi | ||||
| 
 | ||||
| # FIXME: for CI purposes, always exit 0. This allows subsequent tests. | ||||
| exit 0 | ||||
| @ -1,37 +0,0 @@ | ||||
| --- | ||||
| # Create empty results file, world-writable | ||||
| - name: initialize test.log file | ||||
|   copy: dest=/tmp/test.log content='' force=yes mode=0666 | ||||
| 
 | ||||
| - name: execute tests | ||||
|   include: run_one_test.yml | ||||
|   with_items: "{{ tests }}" | ||||
|   loop_control: | ||||
|     loop_var: test | ||||
| 
 | ||||
| - name: pull test.log results | ||||
|   fetch: | ||||
|     src: "/tmp/test.log" | ||||
|     dest: "{{ artifacts }}/test.log" | ||||
|     flat: yes | ||||
| 
 | ||||
| # Copied from standard-test-basic | ||||
| - name: check results | ||||
|   shell: grep "^FAIL" /tmp/test.log | ||||
|   register: test_fails | ||||
|   # Never fail at this step. Just store result of tests. | ||||
|   failed_when: False | ||||
| 
 | ||||
| - name: preserve results | ||||
|   set_fact: | ||||
|     role_result_failed: "{{ (test_fails.stdout|d|length > 0) or (test_fails.stderr|d|length > 0) }}" | ||||
|     role_result_msg: "{{ test_fails.stdout|d('tests failed.') }}" | ||||
| 
 | ||||
| - name: display results | ||||
|   vars: | ||||
|     msg: | | ||||
|        Tests failed: {{ role_result_failed|d('Undefined') }} | ||||
|        Tests msg: {{ role_result_msg|d('None') }} | ||||
|   debug: | ||||
|     msg: "{{ msg.split('\n') }}" | ||||
|   failed_when: "role_result_failed|bool" | ||||
| @ -1,52 +0,0 @@ | ||||
| --- | ||||
| - name: "{{ test.name }} | install test packages" | ||||
|   dnf: name="{{ test.package }}-tests" state=installed | ||||
| 
 | ||||
| - name: "{{ test.name }} | define helper variables" | ||||
|   set_fact: | ||||
|     test_name_oneword: "{{ test.name | replace(' ','-') }}" | ||||
| 
 | ||||
| # UGH. This is necessary because our caller sets some environment variables | ||||
| # and we need to set a few more based on other caller variables; then we | ||||
| # need to combine the two dicts when running the test. This seems to be | ||||
| # the only way to do it in ansible. | ||||
| - name: "{{ test.name }} | define local environment" | ||||
|   set_fact: | ||||
|     local_environment: | ||||
|       TEST_NAME:    "{{ test.name }}" | ||||
|       TEST_PACKAGE: "{{ test.package }}" | ||||
|       TEST_ENV:     "{{ test.environment }}" | ||||
| 
 | ||||
| - name: "{{ test.name }} | setup/teardown helper | see if exists" | ||||
|   local_action: stat path={{ role_path }}/files/helper.{{ test_name_oneword }}.sh | ||||
|   register: helper | ||||
| 
 | ||||
| - name: "{{ test.name }} | setup/teardown helper | install" | ||||
|   copy: src=helper.{{ test_name_oneword }}.sh dest=/tmp/helper.sh | ||||
|   when: helper.stat.exists | ||||
| 
 | ||||
| - name: "{{ test.name }} | run test" | ||||
|   script: ./run_bats_tests.sh | ||||
|   args: | ||||
|     chdir: /usr/share/{{ test.package }}/test/system | ||||
|   become: "{{ true if test.become is defined else false }}" | ||||
|   become_user: testuser | ||||
|   environment: "{{ local_environment | combine(test.environment) }}" | ||||
| 
 | ||||
| - name: "{{ test.name }} | pull logs" | ||||
|   fetch: | ||||
|     src: "/tmp/test.{{ item }}.log" | ||||
|     dest: "{{ artifacts }}/test.{{ test_name_oneword }}.{{ item }}.log" | ||||
|     flat: yes | ||||
|   with_items: | ||||
|     - bats | ||||
|     - debug | ||||
| 
 | ||||
| - name: "{{ test.name }} | remove remote logs and helpers" | ||||
|   file: | ||||
|     dest=/tmp/{{ item }} | ||||
|     state=absent | ||||
|   with_items: | ||||
|     - test.bats.log | ||||
|     - test.debug.log | ||||
|     - helper.sh | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| - hosts: localhost | ||||
|   tags:  classic | ||||
|   vars: | ||||
|   - artifacts: ./artifacts | ||||
|   roles: | ||||
|   - role: bats_installed | ||||
|   - role: nonroot_user | ||||
|   - role: run_bats_tests | ||||
|     tests: | ||||
|     - name:    toolbox | ||||
|       package: toolbox | ||||
|       environment: | ||||
|         PODMAN: /usr/bin/podman | ||||
|       become:  true | ||||
| @ -0,0 +1,26 @@ | ||||
| From 786c5065c73703ef46e13905a4672f1b4918310a Mon Sep 17 00:00:00 2001 | ||||
| From: Debarshi Ray <rishi@fedoraproject.org> | ||||
| Date: Wed, 18 Aug 2021 17:55:21 +0200 | ||||
| Subject: [PATCH] cmd/run: Make sosreport work by setting the HOST environment | ||||
|  variable | ||||
| 
 | ||||
| https://bugzilla.redhat.com/show_bug.cgi?id=1940037 | ||||
| ---
 | ||||
|  src/cmd/run.go | 1 + | ||||
|  1 file changed, 1 insertion(+) | ||||
| 
 | ||||
| diff --git a/src/cmd/run.go b/src/cmd/run.go
 | ||||
| index e8e96932415e..188f0f2394df 100644
 | ||||
| --- a/src/cmd/run.go
 | ||||
| +++ b/src/cmd/run.go
 | ||||
| @@ -443,6 +443,7 @@ func constructExecArgs(container string,
 | ||||
|  	execArgs = append(execArgs, detachKeys...) | ||||
|   | ||||
|  	execArgs = append(execArgs, []string{ | ||||
| +		"--env", "HOST=/run/host",
 | ||||
|  		"--interactive", | ||||
|  		"--tty", | ||||
|  		"--user", currentUser.Username, | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
							
								
								
									
										17
									
								
								toolbox.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								toolbox.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| [general] | ||||
| # Create a toolbox container for a different operating system distro than the | ||||
| # host. Cannot be used with 'image'. | ||||
| ## distro = "fedora" | ||||
| 
 | ||||
| # Create a toolbox container for a different operating system release than the | ||||
| # host. Cannot be used with 'image'. | ||||
| ## release = "33" | ||||
| 
 | ||||
| # Change the name of the image used to create the toolbox container. This is | ||||
| # useful for creating containers from custom-built images. Cannot be used with | ||||
| # 'distro' or 'release'. | ||||
| # | ||||
| # If the name does not contain a registry, the local image storage will be | ||||
| # consulted, and if it's not present there then it will be pulled from a | ||||
| # suitable remote registry. | ||||
| image = "registry.redhat.io/rhel8/support-tools:latest" | ||||
							
								
								
									
										12
									
								
								toolbox.spec
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								toolbox.spec
									
									
									
									
									
								
							| @ -9,7 +9,7 @@ Version:       0.0.99.3 | ||||
| %global goipath github.com/containers/%{name} | ||||
| %gometa | ||||
| 
 | ||||
| Release:       0.4.git660b6970e998%{?dist} | ||||
| Release:       0.5.git660b6970e998%{?dist} | ||||
| Summary:       Unprivileged development environment | ||||
| 
 | ||||
| License:       ASL 2.0 | ||||
| @ -20,10 +20,12 @@ URL:           https://github.com/containers/%{name} | ||||
| # $ cd src | ||||
| # $ go mod vendor | ||||
| Source0:       %{name}-%{version}-vendored.tar.xz | ||||
| Source1:       %{name}.conf | ||||
| 
 | ||||
| # RHEL specific | ||||
| Patch100:      toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch | ||||
| Patch101:      toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch | ||||
| Patch102:      toolbox-cmd-run-Make-sosreport-work-by-setting-the-HOST-envi.patch | ||||
| 
 | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1905383 | ||||
| ExcludeArch:   %{ix86} | ||||
| @ -34,6 +36,7 @@ BuildRequires: meson | ||||
| BuildRequires: pkgconfig(bash-completion) | ||||
| BuildRequires: systemd | ||||
| 
 | ||||
| Requires:      containers-common | ||||
| Requires:      podman >= 1.4.0 | ||||
| 
 | ||||
| 
 | ||||
| @ -61,6 +64,8 @@ The %{name}-tests package contains system tests for %{name}. | ||||
| %patch101 -p1 | ||||
| %endif | ||||
| 
 | ||||
| %patch102 -p1 | ||||
| 
 | ||||
| # %%gomkdir is absent from RHEL 8. | ||||
| GOBUILDDIR="$(pwd)/_build" | ||||
| GOSOURCEDIR="$(pwd)" | ||||
| @ -88,6 +93,7 @@ ln -s src/vendor vendor | ||||
| 
 | ||||
| %install | ||||
| %meson_install | ||||
| install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf | ||||
| 
 | ||||
| 
 | ||||
| %files | ||||
| @ -106,6 +112,10 @@ ln -s src/vendor vendor | ||||
| 
 | ||||
| 
 | ||||
| %changelog | ||||
| * Fri Sep 03 2021 Jindrich Novy <jnovy@redhat.com> - 0.0.99.3-0.5.git660b6970e998 | ||||
| - Make sosreport work by setting the HOST environment variable | ||||
| - Related: #2000051 | ||||
| 
 | ||||
| * Mon Aug 30 2021 Oliver Gutiérrez <ogutierrez@redhat.com> - 0.0.99.3-0.4.git660b6970e998 | ||||
| - Fixed gating tests bats version | ||||
|   Related: rhbz#1977343 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user