From e7af2e0404764c285604e7ce774c96fc792ae9f7 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Tue, 28 Apr 2020 17:43:08 +0300 Subject: [PATCH 01/19] (FACT-2569) implemented acceptance tests run in GitHub Actions --- .github/actions/presuite.sh | 40 ++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 43 +++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100755 .github/actions/presuite.sh create mode 100644 .github/workflows/ci.yml diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh new file mode 100755 index 000000000..6c009354c --- /dev/null +++ b/.github/actions/presuite.sh @@ -0,0 +1,40 @@ +#!/bin/sh -x + +export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings +export PATH=/opt/puppetlabs/puppet/bin/:/opt/puppetlabs/bin:$PATH +cwd=$(pwd) + +printf '\nInstall bundler\n\n' +gem install bundler + +printf '\nInstall facter 3 dependencies\n\n' +cd $cwd/$FACTER_3_ROOT/acceptance && bundle install + +printf '\nInstall custom beaker\n\n' +cd $cwd/$BEAKER_ROOT +gem build beaker.gemspec +gem install beaker-*.gem --bindir /bin +bundle info beaker --path + +printf '\nBeaker provision\n\n' +cd $cwd/$FACTER_3_ROOT/acceptance +beaker init -h ubuntu1804-64a{hypervisor=none\,hostname=localhost} -o config/aio/options.rb +beaker provision + +printf '\nBeaker pre-suite\n\n' +BP_ROOT=`bundle info beaker-puppet --path` +beaker exec pre-suite --pre-suite $BP_ROOT/setup/aio/010_Install_Puppet_Agent.rb + +printf '\nConfigure facter 4 as facter 3\n\n' +puppet config set facterng true + +printf '\nInstall facter 4 dependencies\n\n' +cd $cwd/$FACTER_4_ROOT && bundle install + +printf '\nInstall facter 4\n\n' +gem build facter.gemspec +gem install -f facter-*.gem + +printf '\nBeaker tests\n\n' +cd $cwd/$FACTER_3_ROOT/acceptance +beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..cf8101374 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,43 @@ +--- +name: GitHub hosted facter CI + +on: [pull_request] + +jobs: + ci: + name: Run acceptance tests + runs-on: ubuntu-latest + env: + FACTER_3_ROOT: facter_3 + FACTER_4_ROOT: facter_4 + BEAKER_ROOT: beaker + SHA: latest + + steps: + - name: Checkout current PR + uses: actions/checkout@v2 + with: + path: facter_4 + + - name: Clone facter 3 repo + uses: actions/checkout@v2 + with: + repository: puppetlabs/facter + ref: master + path: facter_3 + + - name: Clone Mihai's beaker fork + uses: actions/checkout@v2 + with: + repository: mihaibuzgau/beaker + ref: master + path: beaker + + - name: Install Ruby 2.6 + uses: actions/setup-ruby@v1 + with: + ruby-version: '2.6' + + - name: Run acceptance tests + run: sudo -E bash -c facter_4/.github/actions/presuite.sh + From a2bab86b0652a78830b6b8175c2193c49c7e5864 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Tue, 28 Apr 2020 19:35:06 +0300 Subject: [PATCH 02/19] (FACT-2569) deactivate check for files with world writable permissions --- .github/actions/presuite.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh index 6c009354c..d4b724633 100755 --- a/.github/actions/presuite.sh +++ b/.github/actions/presuite.sh @@ -1,6 +1,7 @@ #!/bin/sh -x export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings +export DENABLE_PATH_CHECK=0 export PATH=/opt/puppetlabs/puppet/bin/:/opt/puppetlabs/bin:$PATH cwd=$(pwd) From 8c81c5628de0d2490a8eeb57228480e34c808abc Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Tue, 28 Apr 2020 19:47:58 +0300 Subject: [PATCH 03/19] (FACT-2569) changed ruby setup --- .github/actions/presuite.sh | 23 ++++++++++++----------- .github/workflows/ci.yml | 10 +++++++--- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh index 17c70c7eb..492755008 100755 --- a/.github/actions/presuite.sh +++ b/.github/actions/presuite.sh @@ -1,21 +1,22 @@ #!/bin/sh -x export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings -export DENABLE_PATH_CHECK=0 export PATH=/opt/puppetlabs/puppet/bin/:/opt/puppetlabs/bin:$PATH cwd=$(pwd) printf '\nInstall bundler\n\n' gem install bundler -printf '\nInstall facter 3 dependencies\n\n' +printf '\nInstall facter 4 dependencies\n\n' +cd $cwd/$FACTER_4_ROOT && bundle install + +printf '\nInstall facter 3 acceptance dependencies\n\n' cd $cwd/$FACTER_3_ROOT/acceptance && bundle install printf '\nInstall custom beaker\n\n' cd $cwd/$BEAKER_ROOT gem build beaker.gemspec gem install beaker-*.gem --bindir /bin -bundle info beaker --path printf '\nBeaker provision\n\n' cd $cwd/$FACTER_3_ROOT/acceptance @@ -29,15 +30,15 @@ beaker exec pre-suite --pre-suite $BP_ROOT/setup/aio/010_Install_Puppet_Agent.rb printf '\nConfigure facter 4 as facter 3\n\n' puppet config set facterng true -printf '\nInstall facter 4 dependencies\n\n' -cd $cwd/$FACTER_4_ROOT && bundle install +agent_facter_ng_version=`facter-ng --version | tr -d '\r'` + +cp -r $cwd/$FACTER_4_ROOT/* /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/facter-ng-$agent_facter_ng_version/ +mv /opt/puppetlabs/puppet/bin/facter-ng /opt/puppetlabs/bin/facter -printf '\nInstall facter 4\n\n' -gem build facter.gemspec -gem install -f facter-*.gem +puts facter -version +puts puppet facts | grep facterversion printf '\nBeaker tests\n\n' cd $cwd/$FACTER_3_ROOT/acceptance - -beaker exec tests/external_facts/external_fact_stderr_messages_output_to_stderr.rb --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high -echo $PATH +beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high 2>&1 | tee results.txt +sed -n '/Failed Tests Cases:/,/Skipped Tests Cases:/p' results.txt | grep 'Test Case' | awk {'print $3'} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf8101374..16fce31a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@v2 with: repository: puppetlabs/facter - ref: master + ref: run_tests_on_ng path: facter_3 - name: Clone Mihai's beaker fork @@ -34,10 +34,14 @@ jobs: path: beaker - name: Install Ruby 2.6 - uses: actions/setup-ruby@v1 + uses: ruby/setup-ruby@v1 with: ruby-version: '2.6' + - name: Fix permissions + run: | + sudo chmod a-w /opt /home/runner /usr/share + sudo chmod -R a-w /usr/share/rust /home/runner/.config + - name: Run acceptance tests run: sudo -E bash -c facter_4/.github/actions/presuite.sh - From ccc20f830cb8a930bc874b837ba6fc92bc70ccce Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Tue, 5 May 2020 15:00:17 +0300 Subject: [PATCH 04/19] (FACT-2569) skipped failing tests on ubuntu --- .github/actions/presuite.sh | 6 +++--- .github/workflows/ci.yml | 6 +++--- VERSION | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh index 492755008..6db0fd833 100755 --- a/.github/actions/presuite.sh +++ b/.github/actions/presuite.sh @@ -1,7 +1,7 @@ #!/bin/sh -x export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings -export PATH=/opt/puppetlabs/puppet/bin/:/opt/puppetlabs/bin:$PATH +export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:$PATH cwd=$(pwd) printf '\nInstall bundler\n\n' @@ -35,8 +35,8 @@ agent_facter_ng_version=`facter-ng --version | tr -d '\r'` cp -r $cwd/$FACTER_4_ROOT/* /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/facter-ng-$agent_facter_ng_version/ mv /opt/puppetlabs/puppet/bin/facter-ng /opt/puppetlabs/bin/facter -puts facter -version -puts puppet facts | grep facterversion +facter -v +puppet facts | grep facterversion printf '\nBeaker tests\n\n' cd $cwd/$FACTER_3_ROOT/acceptance diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16fce31a1..07b91b744 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,7 @@ --- name: GitHub hosted facter CI -on: [pull_request] +on: [pull_request, push] jobs: ci: @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@v2 with: repository: puppetlabs/facter - ref: run_tests_on_ng + ref: skip_failures_on_ng path: facter_3 - name: Clone Mihai's beaker fork @@ -33,7 +33,7 @@ jobs: ref: master path: beaker - - name: Install Ruby 2.6 + - name: Install Ruby 2.6.x uses: ruby/setup-ruby@v1 with: ruby-version: '2.6' diff --git a/VERSION b/VERSION index 9d58a584e..ae4044558 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.0.17 +4.0.666 From b59a0d21dcecfdda048230f4c2c715f3edb72ac5 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Tue, 5 May 2020 17:24:54 +0300 Subject: [PATCH 05/19] (FACT-2569) skipped failing tests on ubuntu --- .github/actions/presuite.sh | 32 +++++++++++++++++++++----------- .github/workflows/ci.yml | 4 ++++ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh index 6db0fd833..35e6b292c 100755 --- a/.github/actions/presuite.sh +++ b/.github/actions/presuite.sh @@ -1,17 +1,17 @@ #!/bin/sh -x export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings -export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:$PATH cwd=$(pwd) -printf '\nInstall bundler\n\n' -gem install bundler +#printf '\nInstall bundler\n\n' +#gem install bundler -printf '\nInstall facter 4 dependencies\n\n' -cd $cwd/$FACTER_4_ROOT && bundle install +#printf '\nInstall facter 4 dependencies\n\n' +#cd $cwd/$FACTER_4_ROOT && bundle install printf '\nInstall facter 3 acceptance dependencies\n\n' cd $cwd/$FACTER_3_ROOT/acceptance && bundle install +export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:$PATH printf '\nInstall custom beaker\n\n' cd $cwd/$BEAKER_ROOT @@ -32,13 +32,23 @@ puppet config set facterng true agent_facter_ng_version=`facter-ng --version | tr -d '\r'` -cp -r $cwd/$FACTER_4_ROOT/* /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/facter-ng-$agent_facter_ng_version/ -mv /opt/puppetlabs/puppet/bin/facter-ng /opt/puppetlabs/bin/facter +cd $cwd/$FACTER_4_ROOT +/opt/puppetlabs/puppet/bin/gem build agent/facter-ng.gemspec +/opt/puppetlabs/puppet/bin/gem uninstall facter-ng +/opt/puppetlabs/puppet/bin/gem install -f facter-ng-*.gem + +cd /opt/puppetlabs/puppet/bin +mv facter-ng facter + +#rm -rf /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/facter-ng-$agent_facter_ng_version/* +#cp -r $cwd/$FACTER_4_ROOT/* /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/facter-ng-$agent_facter_ng_version/ +#cp /opt/puppetlabs/puppet/bin/facter-ng /opt/puppetlabs/bin/ +#mv /opt/puppetlabs/bin/facter-ng /opt/puppetlabs/bin/facter facter -v puppet facts | grep facterversion -printf '\nBeaker tests\n\n' -cd $cwd/$FACTER_3_ROOT/acceptance -beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high 2>&1 | tee results.txt -sed -n '/Failed Tests Cases:/,/Skipped Tests Cases:/p' results.txt | grep 'Test Case' | awk {'print $3'} +#printf '\nBeaker tests\n\n' +#cd $cwd/$FACTER_3_ROOT/acceptance +#beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high 2>&1 | tee results.txt +#sed -n '/Failed Tests Cases:/,/Skipped Tests Cases:/p' results.txt | grep 'Test Case' | awk {'print $3'} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 07b91b744..2c36b598f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,6 +38,9 @@ jobs: with: ruby-version: '2.6' + - name: Setup tmate session + uses: mxschmitt/action-tmate@v2 + - name: Fix permissions run: | sudo chmod a-w /opt /home/runner /usr/share @@ -45,3 +48,4 @@ jobs: - name: Run acceptance tests run: sudo -E bash -c facter_4/.github/actions/presuite.sh + From 1cf9bf50a995e2aeba8aecc97e69d5cc6f1432c7 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Tue, 5 May 2020 20:06:28 +0300 Subject: [PATCH 06/19] (FACT-2569) changed how facter is replaced --- .github/actions/presuite.sh | 28 +++++++++++++++++++--------- .github/workflows/ci.yml | 3 +++ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh index 6db0fd833..83349dd1d 100755 --- a/.github/actions/presuite.sh +++ b/.github/actions/presuite.sh @@ -1,17 +1,17 @@ #!/bin/sh -x export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings -export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:$PATH cwd=$(pwd) printf '\nInstall bundler\n\n' gem install bundler -printf '\nInstall facter 4 dependencies\n\n' -cd $cwd/$FACTER_4_ROOT && bundle install +#printf '\nInstall facter 4 dependencies\n\n' +#cd $cwd/$FACTER_4_ROOT && bundle install printf '\nInstall facter 3 acceptance dependencies\n\n' cd $cwd/$FACTER_3_ROOT/acceptance && bundle install +export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:$PATH printf '\nInstall custom beaker\n\n' cd $cwd/$BEAKER_ROOT @@ -32,13 +32,23 @@ puppet config set facterng true agent_facter_ng_version=`facter-ng --version | tr -d '\r'` -cp -r $cwd/$FACTER_4_ROOT/* /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/facter-ng-$agent_facter_ng_version/ -mv /opt/puppetlabs/puppet/bin/facter-ng /opt/puppetlabs/bin/facter +cd $cwd/$FACTER_4_ROOT +/opt/puppetlabs/puppet/bin/gem build agent/facter-ng.gemspec +/opt/puppetlabs/puppet/bin/gem uninstall facter-ng +/opt/puppetlabs/puppet/bin/gem install -f facter-ng-*.gem + +cd /opt/puppetlabs/puppet/bin +mv facter-ng facter + +#rm -rf /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/facter-ng-$agent_facter_ng_version/* +#cp -r $cwd/$FACTER_4_ROOT/* /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/facter-ng-$agent_facter_ng_version/ +#cp /opt/puppetlabs/puppet/bin/facter-ng /opt/puppetlabs/bin/ +#mv /opt/puppetlabs/bin/facter-ng /opt/puppetlabs/bin/facter facter -v puppet facts | grep facterversion -printf '\nBeaker tests\n\n' -cd $cwd/$FACTER_3_ROOT/acceptance -beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high 2>&1 | tee results.txt -sed -n '/Failed Tests Cases:/,/Skipped Tests Cases:/p' results.txt | grep 'Test Case' | awk {'print $3'} +#printf '\nBeaker tests\n\n' +#cd $cwd/$FACTER_3_ROOT/acceptance +#beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high 2>&1 | tee results.txt +#sed -n '/Failed Tests Cases:/,/Skipped Tests Cases:/p' results.txt | grep 'Test Case' | awk {'print $3'} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 07b91b744..552cfcc88 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,6 +38,9 @@ jobs: with: ruby-version: '2.6' + - name: Setup tmate session + uses: mxschmitt/action-tmate@v2 + - name: Fix permissions run: | sudo chmod a-w /opt /home/runner /usr/share From 3fc7a95b605fe65fa14167ab3294dc46ac50b014 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Wed, 6 May 2020 15:14:37 +0300 Subject: [PATCH 07/19] (FACT-2599) run on all platforms except windows --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 38b1568c2..3e8b63ff2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,16 @@ --- name: GitHub hosted facter CI -on: [pull_request] +on: [push] jobs: ci: name: Run acceptance tests - runs-on: ubuntu-latest + build: + strategy: + matrix: + os: [ubuntu-18.04, ubuntu-16.04, macos-10.15] + runs-on: ${{ matrix.os }} env: FACTER_3_ROOT: facter_3 FACTER_4_ROOT: facter_4 From 709b42c629e7707159df001c6725459ca7e05329 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Wed, 6 May 2020 15:14:37 +0300 Subject: [PATCH 08/19] (FACT-2599) removed extra parameter --- .github/workflows/ci.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 38b1568c2..063670339 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,15 @@ --- name: GitHub hosted facter CI -on: [pull_request] +on: [push] jobs: ci: name: Run acceptance tests - runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-18.04, ubuntu-16.04, macos-10.15] + runs-on: ${{ matrix.os }} env: FACTER_3_ROOT: facter_3 FACTER_4_ROOT: facter_4 From fed1848fb677c3832911a7ed22b1eb1cc3e36f0c Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Wed, 6 May 2020 17:53:42 +0300 Subject: [PATCH 09/19] (FACT-2599) debug --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 063670339..9bb24faf9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: name: Run acceptance tests strategy: matrix: - os: [ubuntu-18.04, ubuntu-16.04, macos-10.15] + os: [ubuntu-18.04, ubuntu-16.04] runs-on: ${{ matrix.os }} env: FACTER_3_ROOT: facter_3 @@ -41,6 +41,9 @@ jobs: with: ruby-version: '2.6' + - name: Setup tmate session + uses: mxschmitt/action-tmate@v2 + - name: Fix permissions run: | sudo chmod a-w /opt /home/runner /usr/share From c475eabf1126ca288ba505e00d342c965b116b2f Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Wed, 6 May 2020 18:03:10 +0300 Subject: [PATCH 10/19] (FACT-2599) debug --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 063670339..fb9b755c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,4 +47,4 @@ jobs: sudo chmod -R a-w /usr/share/rust /home/runner/.config - name: Run acceptance tests - run: sudo -E bash -c facter_4/.github/actions/presuite.sh + run: echo $ImageOS From 6de6f0288f848d929e33dd616163caf9de2b85f8 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Wed, 6 May 2020 18:06:24 +0300 Subject: [PATCH 11/19] (FACT-2599) debug --- .github/actions/presuite.rb | 5 +++++ .github/actions/presuite.sh | 4 +++- .github/workflows/ci.yml | 15 ++++++++------- 3 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 .github/actions/presuite.rb diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb new file mode 100644 index 000000000..7f66b65a2 --- /dev/null +++ b/.github/actions/presuite.rb @@ -0,0 +1,5 @@ +ENV['DEBIAN_DISABLE_RUBYGEMS_INTEGRATION']='no_wornings' +ENV['PATH']='/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:' + ENV['PATH'] + +Open3.capture2('gem install bundle') + diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh index 73b6a63da..189732add 100755 --- a/.github/actions/presuite.sh +++ b/.github/actions/presuite.sh @@ -1,5 +1,7 @@ #!/bin/sh -x +declare -A PLATFORMS=( [ubuntu18]=ubuntu1804-64a [ubuntu16]=ubuntu1604-64a [macos1015]=osx1015-64a ) + export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:$PATH @@ -18,7 +20,7 @@ gem install beaker-*.gem --bindir /bin printf '\nBeaker provision\n\n' cd $cwd/$FACTER_3_ROOT/acceptance -beaker init -h ubuntu1804-64a{hypervisor=none\,hostname=localhost} -o config/aio/options.rb +beaker init -h ${PLATFORMS[$ImageOS]}{hypervisor=none\,hostname=localhost} -o config/aio/options.rb beaker provision printf '\nBeaker pre-suite\n\n' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a3512787d..bbf4abcea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: name: Run acceptance tests strategy: matrix: - os: [ubuntu-18.04, ubuntu-16.04] + os: [ubuntu-18.04, ubuntu-16.04, macos-10.15] runs-on: ${{ matrix.os }} env: FACTER_3_ROOT: facter_3 @@ -41,13 +41,14 @@ jobs: with: ruby-version: '2.6' - - name: Setup tmate session - uses: mxschmitt/action-tmate@v2 - - name: Fix permissions run: | - sudo chmod a-w /opt /home/runner /usr/share - sudo chmod -R a-w /usr/share/rust /home/runner/.config + if [ $ImageOS == ubuntu18 ] + then + sudo chmod a-w /opt /home/runner /usr/share && + sudo chmod -R a-w /usr/share/rust /home/runner/.config + fi - name: Run acceptance tests - run: echo $ImageOS + run: | + sudo -E ruby facter_4/.github/actions/presuite.rb \ No newline at end of file From 54e8374fa58a9ccbecd2c60807a0596d2f89c329 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Thu, 7 May 2020 12:05:20 +0300 Subject: [PATCH 12/19] (FACT-2599) run open3 --- .github/actions/presuite.rb | 100 ++++++++++++++++++++++++++++++++++-- .github/actions/presuite.sh | 9 ++-- .github/workflows/ci.yml | 10 ++-- 3 files changed, 108 insertions(+), 11 deletions(-) diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb index 7f66b65a2..89f5836ff 100644 --- a/.github/actions/presuite.rb +++ b/.github/actions/presuite.rb @@ -1,5 +1,99 @@ -ENV['DEBIAN_DISABLE_RUBYGEMS_INTEGRATION']='no_wornings' -ENV['PATH']='/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:' + ENV['PATH'] +require 'open3' -Open3.capture2('gem install bundle') +def install_bundler + message('INSTALL BUNDLER') + run('gem install bundler') +end +def install_facter_3_dependecies + message('INSTALL FACTER 3 ACCEPTANCE DEPENDENCIES') + run('bundle install') +end + +def install_custom_beaker + message('BUILD CUSTOM BEAKER GEM') + run('gem build beaker.gemspec') + + message('INSTALL CUSTOM BEAKER GEM') + run('gem install beaker-*.gem --bindir /bin') +end + +def initialize_beaker + beaker_platforms = { + ubuntu18: 'ubuntu1804-64a', + ubuntu16: 'ubuntu1604-64a', + macos1015: 'osx1015-64a' + } + platform = beaker_platforms[ENV['ImageOS'].to_sym] + + message('BEAKER INITIALIZE') + run("beaker init -h #{platform}{hypervisor=none,hostname=localhost} -o config/aio/options.rb") + + message('BEAKER PROVISION') + run('beaker provision') +end + +def install_puppet_agent + beaker_puppet_root = run('bundle info beaker-puppet --path').chomp + install_puppet_file_path = File.join(beaker_puppet_root, 'setup', 'aio', '010_Install_Puppet_Agent.rb') + + message('INSTALL PUPPET AGENT') + run("beaker exec pre-suite --pre-suite #{install_puppet_file_path}") +end + +def replace_facter_3_with_facter_4 + linux_puppet_bin_dir = '/opt/puppetlabs/puppet/bin' + linux_puppet_gem_command = File.join(linux_puppet_bin_dir, 'gem') + + message('SET FACTER 4 FLAG TO TRUE') + run('puppet config set facterng true', FACTER_3_ACCEPTANCE_PATH) + + message('BUILD FACTER 4 LATEST AGENT GEM') + run("#{linux_puppet_gem_command} build agent/facter-ng.gemspec") + + message('UNINSTALL DEFAULT FACTER 4 AGENT GEM') + run("#{linux_puppet_gem_command} uninstall facter-ng") + + message('INSTALL FACTER 4 GEM') + run("#{linux_puppet_gem_command} install -f facter-ng-*.gem") + + message('CHANGE FACTER 3 WITH FACTER 4') + run('mv facter-ng facter', linux_puppet_bin_dir) +end + +def run_acceptance_tests + message('RUN ACCEPTANCE TESTS') + run('beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high 2>&1') +end + +def message(message) + message_length = message.length + total_length = 130 + lines_length = (total_length - message_length) / 2 + result = ('-' * lines_length + ' ' + message + ' ' + '-' * lines_length)[0, total_length] + puts "\n\n#{result}\n\n" +end + +def run(command, dir = './') + output, _status = Open3.capture2(command, chdir: dir) + puts output + output +end + +ENV['DEBIAN_DISABLE_RUBYGEMS_INTEGRATION'] = 'no_wornings' +FACTER_3_ACCEPTANCE_PATH = File.join(ENV['FACTER_3_ROOT'], 'acceptance') + +install_bundler + +Dir.chdir(FACTER_3_ACCEPTANCE_PATH) { install_facter_3_dependecies } + +Dir.chdir(ENV['BEAKER_ROOT']) { install_custom_beaker } + +Dir.chdir(FACTER_3_ACCEPTANCE_PATH) do + initialize_beaker + install_puppet_agent +end + +Dir.chdir(ENV['FACTER_4_ROOT']) { replace_facter_3_with_facter_4 } + +Dir.chdir(FACTER_3_ACCEPTANCE_PATH) { run_acceptance_tests } diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh index 189732add..b23f2d194 100755 --- a/.github/actions/presuite.sh +++ b/.github/actions/presuite.sh @@ -1,9 +1,9 @@ #!/bin/sh -x -declare -A PLATFORMS=( [ubuntu18]=ubuntu1804-64a [ubuntu16]=ubuntu1604-64a [macos1015]=osx1015-64a ) +#declare -A PLATFORMS=( [ubuntu18]=ubuntu1804-64a [ubuntu16]=ubuntu1604-64a [macos1015]=osx1015-64a ) export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings -export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:$PATH +export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:/home/runner/.rubies/ruby-2.6.6/bin:$PATH cwd=$(pwd) @@ -18,9 +18,12 @@ cd $cwd/$BEAKER_ROOT gem build beaker.gemspec gem install beaker-*.gem --bindir /bin +printf '\nRuby version\n\n' +ruby --version + printf '\nBeaker provision\n\n' cd $cwd/$FACTER_3_ROOT/acceptance -beaker init -h ${PLATFORMS[$ImageOS]}{hypervisor=none\,hostname=localhost} -o config/aio/options.rb +beaker init -h ubuntu1604-64a{hypervisor=none\,hostname=localhost} -o config/aio/options.rb beaker provision printf '\nBeaker pre-suite\n\n' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bbf4abcea..cd06abce3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: name: Run acceptance tests strategy: matrix: - os: [ubuntu-18.04, ubuntu-16.04, macos-10.15] + os: [ubuntu-18.04] runs-on: ${{ matrix.os }} env: FACTER_3_ROOT: facter_3 @@ -29,21 +29,21 @@ jobs: ref: skip_failures_on_ng path: facter_3 - - name: Clone Mihai's beaker fork + - name: Clone custom beaker fork uses: actions/checkout@v2 with: repository: mihaibuzgau/beaker ref: master path: beaker - - name: Install Ruby 2.6.x + - name: Install Ruby 2.6 uses: ruby/setup-ruby@v1 with: ruby-version: '2.6' - name: Fix permissions run: | - if [ $ImageOS == ubuntu18 ] + if [ $ImageOS != macos1015 ] then sudo chmod a-w /opt /home/runner /usr/share && sudo chmod -R a-w /usr/share/rust /home/runner/.config @@ -51,4 +51,4 @@ jobs: - name: Run acceptance tests run: | - sudo -E ruby facter_4/.github/actions/presuite.rb \ No newline at end of file + sudo -E "PATH=$PATH" ruby facter_4/.github/actions/presuite.rb \ No newline at end of file From 6f00e7e362320e610328a0356776ddc7fecab752 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Thu, 7 May 2020 16:44:19 +0300 Subject: [PATCH 13/19] (FACT-2599) run open3 --- .github/actions/presuite.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb index 89f5836ff..83a575f22 100644 --- a/.github/actions/presuite.rb +++ b/.github/actions/presuite.rb @@ -49,13 +49,13 @@ def replace_facter_3_with_facter_4 run('puppet config set facterng true', FACTER_3_ACCEPTANCE_PATH) message('BUILD FACTER 4 LATEST AGENT GEM') - run("#{linux_puppet_gem_command} build agent/facter-ng.gemspec") + run("#{linux_puppet_gem_command} build agent/facter-ng.gemspec", ENV['FACTER_4_ROOT']) message('UNINSTALL DEFAULT FACTER 4 AGENT GEM') run("#{linux_puppet_gem_command} uninstall facter-ng") message('INSTALL FACTER 4 GEM') - run("#{linux_puppet_gem_command} install -f facter-ng-*.gem") + run("#{linux_puppet_gem_command} install -f facter-ng-*.gem", ENV['FACTER_4_ROOT']) message('CHANGE FACTER 3 WITH FACTER 4') run('mv facter-ng facter', linux_puppet_bin_dir) @@ -94,6 +94,6 @@ def run(command, dir = './') install_puppet_agent end -Dir.chdir(ENV['FACTER_4_ROOT']) { replace_facter_3_with_facter_4 } +replace_facter_3_with_facter_4 Dir.chdir(FACTER_3_ACCEPTANCE_PATH) { run_acceptance_tests } From 9410c9484027edf4bdd4c687a40f788210b6ab40 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Thu, 7 May 2020 16:52:23 +0300 Subject: [PATCH 14/19] (FACT-2599) run open3 --- .github/actions/presuite.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb index 83a575f22..b56a5503f 100644 --- a/.github/actions/presuite.rb +++ b/.github/actions/presuite.rb @@ -46,7 +46,7 @@ def replace_facter_3_with_facter_4 linux_puppet_gem_command = File.join(linux_puppet_bin_dir, 'gem') message('SET FACTER 4 FLAG TO TRUE') - run('puppet config set facterng true', FACTER_3_ACCEPTANCE_PATH) + run('puppet config set facterng true', '/opt/puppetlabs/bin') message('BUILD FACTER 4 LATEST AGENT GEM') run("#{linux_puppet_gem_command} build agent/facter-ng.gemspec", ENV['FACTER_4_ROOT']) From 272ed6ce44997ee04c94390071789bfa26e3d289 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Thu, 7 May 2020 16:56:51 +0300 Subject: [PATCH 15/19] (FACT-2599) run open3 --- .github/actions/presuite.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb index b56a5503f..86886910b 100644 --- a/.github/actions/presuite.rb +++ b/.github/actions/presuite.rb @@ -46,7 +46,7 @@ def replace_facter_3_with_facter_4 linux_puppet_gem_command = File.join(linux_puppet_bin_dir, 'gem') message('SET FACTER 4 FLAG TO TRUE') - run('puppet config set facterng true', '/opt/puppetlabs/bin') + run('/opt/puppetlabs/puppet/bin/puppet config set facterng true') message('BUILD FACTER 4 LATEST AGENT GEM') run("#{linux_puppet_gem_command} build agent/facter-ng.gemspec", ENV['FACTER_4_ROOT']) @@ -75,8 +75,9 @@ def message(message) end def run(command, dir = './') - output, _status = Open3.capture2(command, chdir: dir) + output, std_err, _status = Open3.capture3(command, chdir: dir) puts output + puts std_err output end From e399197f4568eb199911c57de03e9911ee356175 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Thu, 7 May 2020 17:00:29 +0300 Subject: [PATCH 16/19] (FACT-2599) run open3 --- .github/actions/presuite.rb | 2 +- .github/workflows/ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb index 86886910b..431892658 100644 --- a/.github/actions/presuite.rb +++ b/.github/actions/presuite.rb @@ -46,7 +46,7 @@ def replace_facter_3_with_facter_4 linux_puppet_gem_command = File.join(linux_puppet_bin_dir, 'gem') message('SET FACTER 4 FLAG TO TRUE') - run('/opt/puppetlabs/puppet/bin/puppet config set facterng true') + run("#{File.join(linux_puppet_bin_dir,'puppet')} config set facterng true") message('BUILD FACTER 4 LATEST AGENT GEM') run("#{linux_puppet_gem_command} build agent/facter-ng.gemspec", ENV['FACTER_4_ROOT']) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cd06abce3..c43d3792c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: name: Run acceptance tests strategy: matrix: - os: [ubuntu-18.04] + os: [ubuntu-16.04, ubuntu-18.04] runs-on: ${{ matrix.os }} env: FACTER_3_ROOT: facter_3 From ed5e4a0abd64f87de8e212f8f79769f18fb74f5e Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Thu, 7 May 2020 17:04:30 +0300 Subject: [PATCH 17/19] (FACT-2599) run open3 --- .github/actions/presuite.rb | 11 ++++++----- .github/workflows/ci.yml | 5 ++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb index 431892658..2792bd2db 100644 --- a/.github/actions/presuite.rb +++ b/.github/actions/presuite.rb @@ -43,19 +43,20 @@ def install_puppet_agent def replace_facter_3_with_facter_4 linux_puppet_bin_dir = '/opt/puppetlabs/puppet/bin' - linux_puppet_gem_command = File.join(linux_puppet_bin_dir, 'gem') + gem_command = File.join(linux_puppet_bin_dir, 'gem') + puppet_command = File.join(linux_puppet_bin_dir,'puppet') message('SET FACTER 4 FLAG TO TRUE') - run("#{File.join(linux_puppet_bin_dir,'puppet')} config set facterng true") + run("#{puppet_command} config set facterng true") message('BUILD FACTER 4 LATEST AGENT GEM') - run("#{linux_puppet_gem_command} build agent/facter-ng.gemspec", ENV['FACTER_4_ROOT']) + run("#{gem_command} build agent/facter-ng.gemspec", ENV['FACTER_4_ROOT']) message('UNINSTALL DEFAULT FACTER 4 AGENT GEM') - run("#{linux_puppet_gem_command} uninstall facter-ng") + run("#{gem_command} uninstall facter-ng") message('INSTALL FACTER 4 GEM') - run("#{linux_puppet_gem_command} install -f facter-ng-*.gem", ENV['FACTER_4_ROOT']) + run("#{gem_command} install -f facter-ng-*.gem", ENV['FACTER_4_ROOT']) message('CHANGE FACTER 3 WITH FACTER 4') run('mv facter-ng facter', linux_puppet_bin_dir) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c43d3792c..56b940b94 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: name: Run acceptance tests strategy: matrix: - os: [ubuntu-16.04, ubuntu-18.04] + os: [ubuntu-18.04, ubuntu-16.04, macos-10.15] runs-on: ${{ matrix.os }} env: FACTER_3_ROOT: facter_3 @@ -47,6 +47,9 @@ jobs: then sudo chmod a-w /opt /home/runner /usr/share && sudo chmod -R a-w /usr/share/rust /home/runner/.config + elif [ $ImageOS == macos1015 ] + then + sudo chmod a+w /bin fi - name: Run acceptance tests From eb2a85cb3b426274beb666ed7704701e79907805 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Thu, 7 May 2020 17:19:49 +0300 Subject: [PATCH 18/19] (FACT-2599) run open3 --- .github/actions/presuite.rb | 4 +++- .github/actions/presuite.sh | 47 ------------------------------------- 2 files changed, 3 insertions(+), 48 deletions(-) delete mode 100755 .github/actions/presuite.sh diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb index 2792bd2db..bcfde9af3 100644 --- a/.github/actions/presuite.rb +++ b/.github/actions/presuite.rb @@ -11,11 +11,13 @@ def install_facter_3_dependecies end def install_custom_beaker + bin_path = {macos1015: 'usr/local/bin'} + message('BUILD CUSTOM BEAKER GEM') run('gem build beaker.gemspec') message('INSTALL CUSTOM BEAKER GEM') - run('gem install beaker-*.gem --bindir /bin') + run("gem install beaker-*.gem --bindir #{bin_path.fetch(ENV['ImageOS'].to_sym, '/bin')}") end def initialize_beaker diff --git a/.github/actions/presuite.sh b/.github/actions/presuite.sh deleted file mode 100755 index b23f2d194..000000000 --- a/.github/actions/presuite.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -x - -#declare -A PLATFORMS=( [ubuntu18]=ubuntu1804-64a [ubuntu16]=ubuntu1604-64a [macos1015]=osx1015-64a ) - -export DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=no_wornings -export PATH=/opt/puppetlabs/bin/:/opt/puppetlabs/puppet/bin:/home/runner/.rubies/ruby-2.6.6/bin:$PATH - -cwd=$(pwd) - -printf '\nInstall bundler\n\n' -gem install bundler - -printf '\nInstall facter 3 acceptance dependencies\n\n' -cd $cwd/$FACTER_3_ROOT/acceptance && bundle install - -printf '\nInstall custom beaker\n\n' -cd $cwd/$BEAKER_ROOT -gem build beaker.gemspec -gem install beaker-*.gem --bindir /bin - -printf '\nRuby version\n\n' -ruby --version - -printf '\nBeaker provision\n\n' -cd $cwd/$FACTER_3_ROOT/acceptance -beaker init -h ubuntu1604-64a{hypervisor=none\,hostname=localhost} -o config/aio/options.rb -beaker provision - -printf '\nBeaker pre-suite\n\n' -BP_ROOT=`bundle info beaker-puppet --path` -beaker exec pre-suite --pre-suite $BP_ROOT/setup/aio/010_Install_Puppet_Agent.rb - -printf '\nConfigure facter 4 as facter 3\n\n' -puppet config set facterng true - -cd $cwd/$FACTER_4_ROOT -puppet_gem_command=/opt/puppetlabs/puppet/bin/gem -$puppet_gem_command build agent/facter-ng.gemspec -$puppet_gem_command uninstall facter-ng -$puppet_gem_command install -f facter-ng-*.gem - -cd /opt/puppetlabs/puppet/bin -mv facter-ng facter - -printf '\nBeaker tests\n\n' -cd $cwd/$FACTER_3_ROOT/acceptance -beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high 2>&1 From b764d19831cb8088978360f73d2f10ee5925bbe4 Mon Sep 17 00:00:00 2001 From: Andrei Filipovici Date: Thu, 7 May 2020 17:21:16 +0300 Subject: [PATCH 19/19] (FACT-2599) run on mac --- .github/actions/presuite.rb | 44 +++++++++++++++++++++++-------------- .github/workflows/ci.yml | 13 +++++------ 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/.github/actions/presuite.rb b/.github/actions/presuite.rb index bcfde9af3..070357442 100644 --- a/.github/actions/presuite.rb +++ b/.github/actions/presuite.rb @@ -11,33 +11,42 @@ def install_facter_3_dependecies end def install_custom_beaker - bin_path = {macos1015: 'usr/local/bin'} - message('BUILD CUSTOM BEAKER GEM') run('gem build beaker.gemspec') message('INSTALL CUSTOM BEAKER GEM') - run("gem install beaker-*.gem --bindir #{bin_path.fetch(ENV['ImageOS'].to_sym, '/bin')}") + run('gem install beaker-*.gem') end def initialize_beaker + beaker_platform = get_beaker_platform(ENV['ImageOS'].to_sym) + beaker_platform_with_options = get_platform_with_options(beaker_platform) + + message('BEAKER INITIALIZE') + run("beaker init -h #{beaker_platform_with_options} -o config/aio/options.rb") + + message('BEAKER PROVISION') + run('beaker provision') +end + +def get_beaker_platform(host_platform) beaker_platforms = { ubuntu18: 'ubuntu1804-64a', ubuntu16: 'ubuntu1604-64a', macos1015: 'osx1015-64a' } - platform = beaker_platforms[ENV['ImageOS'].to_sym] - message('BEAKER INITIALIZE') - run("beaker init -h #{platform}{hypervisor=none,hostname=localhost} -o config/aio/options.rb") + beaker_platforms[host_platform] +end - message('BEAKER PROVISION') - run('beaker provision') +def get_platform_with_options(platform) + return "#{platform}{hypervisor=none,hostname=localhost}" if platform.include? 'ubuntu' + "\"#{platform}{hypervisor=none,hostname=localhost}\"" if platform.include? 'osx' end def install_puppet_agent - beaker_puppet_root = run('bundle info beaker-puppet --path').chomp - install_puppet_file_path = File.join(beaker_puppet_root, 'setup', 'aio', '010_Install_Puppet_Agent.rb') + beaker_puppet_root, _ = run('bundle info beaker-puppet --path') + install_puppet_file_path = File.join(beaker_puppet_root.chomp, 'setup', 'aio', '010_Install_Puppet_Agent.rb') message('INSTALL PUPPET AGENT') run("beaker exec pre-suite --pre-suite #{install_puppet_file_path}") @@ -46,7 +55,7 @@ def install_puppet_agent def replace_facter_3_with_facter_4 linux_puppet_bin_dir = '/opt/puppetlabs/puppet/bin' gem_command = File.join(linux_puppet_bin_dir, 'gem') - puppet_command = File.join(linux_puppet_bin_dir,'puppet') + puppet_command = File.join(linux_puppet_bin_dir, 'puppet') message('SET FACTER 4 FLAG TO TRUE') run("#{puppet_command} config set facterng true") @@ -66,7 +75,7 @@ def replace_facter_3_with_facter_4 def run_acceptance_tests message('RUN ACCEPTANCE TESTS') - run('beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high 2>&1') + run('beaker exec tests --test-tag-exclude=server,facter_3 --test-tag-or=risk:high,audit:high') end def message(message) @@ -78,10 +87,10 @@ def message(message) end def run(command, dir = './') - output, std_err, _status = Open3.capture3(command, chdir: dir) + puts command + output, status = Open3.capture2(command, chdir: dir) puts output - puts std_err - output + [output, status] end ENV['DEBIAN_DISABLE_RUBYGEMS_INTEGRATION'] = 'no_wornings' @@ -100,4 +109,7 @@ def run(command, dir = './') replace_facter_3_with_facter_4 -Dir.chdir(FACTER_3_ACCEPTANCE_PATH) { run_acceptance_tests } +Dir.chdir(FACTER_3_ACCEPTANCE_PATH) do + _, status = run_acceptance_tests + exit(status.exitstatus) +end diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 56b940b94..a423ea0e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,7 @@ --- name: GitHub hosted facter CI -on: [push] +on: [pull_request] jobs: ci: @@ -43,15 +43,12 @@ jobs: - name: Fix permissions run: | - if [ $ImageOS != macos1015 ] + if [[ $ImageOS == *ubuntu* ]] then - sudo chmod a-w /opt /home/runner /usr/share && + sudo chmod a-w /home/runner /usr/share && sudo chmod -R a-w /usr/share/rust /home/runner/.config - elif [ $ImageOS == macos1015 ] - then - sudo chmod a+w /bin fi + sudo chmod a-w /opt - name: Run acceptance tests - run: | - sudo -E "PATH=$PATH" ruby facter_4/.github/actions/presuite.rb \ No newline at end of file + run: sudo -E "PATH=$PATH" ruby facter_4/.github/actions/presuite.rb \ No newline at end of file