]> gitweb.fluxo.info Git - puppet-sshkeys_core.git/commitdiff
(MODULES-11422) Replace dispatch workflow
authorMichael Hashizume <michael.hashizume@puppet.com>
Thu, 20 Apr 2023 20:23:10 +0000 (13:23 -0700)
committerMichael Hashizume <michael.hashizume@puppet.com>
Thu, 20 Apr 2023 20:23:10 +0000 (13:23 -0700)
This commit deletes the dispatch workflow from GitHub Actions and
replaces it with daily testing against nightly gems.

.github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml [new file with mode: 0644]
.github/workflows/dispatch_unit_tests_with_nightly_puppet_gem.yaml [deleted file]

diff --git a/.github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml b/.github/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml
new file mode 100644 (file)
index 0000000..7d3c187
--- /dev/null
@@ -0,0 +1,22 @@
+---
+name: '[Daily] Unit Tests with nightly Puppet gem'
+
+on:
+  schedule:
+    - cron: '0 5 * * 1-5'
+  workflow_dispatch:
+
+jobs:
+  daily_unit_tests_with_nightly_puppet_gem:
+    uses: "puppetlabs/phoenix-github-actions/.github/workflows/unit_tests_with_nightly_puppet_gem.yaml@main"
+
+  notify-via-slack:
+    name: Notify workflow conclusion via Slack
+    if: ${{ always() }}
+    needs: daily_unit_tests_with_nightly_puppet_gem
+    runs-on: 'ubuntu-latest'
+    steps:
+      - uses: luchihoratiu/notify-via-slack@main
+        with:
+          SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
+          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
diff --git a/.github/workflows/dispatch_unit_tests_with_nightly_puppet_gem.yaml b/.github/workflows/dispatch_unit_tests_with_nightly_puppet_gem.yaml
deleted file mode 100644 (file)
index 176adf5..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
----
-name: '[Dispatched] Unit Tests with nightly Puppet gem'
-
-on:
-  workflow_dispatch:
-    inputs:
-      pa_ref:
-        description: 'Puppet Agent SHA to use in this run'
-        required: true
-
-jobs:
-  set_output_data:
-    name: 'Prepare input and output data'
-    runs-on: 'ubuntu-latest'
-    outputs:
-      puppet_sha: ${{ steps.setup_world.outputs.puppet_sha }}
-      ruby_version: ${{ steps.setup_world.outputs.ruby_version }}
-      puppet_version: ${{ steps.setup_world.outputs.puppet_version }}
-      puppet_short_commit: ${{ steps.setup_world.outputs.puppet_short_commit }}
-
-    steps:
-      - name: Gather and set data
-        id: setup_world
-        run: |
-          pa_ref=${{ github.event.inputs.pa_ref }}
-          res=$(curl -s https://raw.githubusercontent.com/puppetlabs/puppet-agent/${pa_ref}/configs/components/puppet.json)
-
-          puppet_remote=$(echo $res | cut -d '"' -f 4)
-          puppet_sha=$(echo $res | cut -d '"' -f 8)
-
-          mkdir puppet
-          pushd puppet
-            git init
-            git remote add origin ${puppet_remote}
-            git fetch
-            puppet_short_commit=$(git describe ${puppet_sha} | sed -r 's/-/./g' | rev | cut -c 4- | rev)
-            puppet_version=${puppet_short_commit:0:1}
-          popd
-          rm -rf puppet
-          
-          case $puppet_version in
-            6)
-              ruby_version='2.5'
-              ;;
-            7)
-              ruby_version='2.7'
-              ;;
-          esac
-
-          echo "::set-output name=puppet_sha::$puppet_sha"
-          echo "::set-output name=ruby_version::$ruby_version"
-          echo "::set-output name=puppet_version::$puppet_version"
-          echo "::set-output name=puppet_short_commit::$puppet_short_commit"
-
-      - name: "Puppet Agent SHA: ${{ github.event.inputs.pa_ref }}"
-        run: "echo ${{ github.event.inputs.pa_ref }}"
-
-      - name: "Puppet SHA: ${{ steps.setup_world.outputs.puppet_sha }}"
-        run: "echo ${{ steps.setup_world.outputs.puppet_sha }}"
-      
-      - name: "Puppet Short Commit: ${{ steps.setup_world.outputs.puppet_short_commit }}"
-        run: "echo ${{ steps.setup_world.outputs.puppet_short_commit }}"
-      
-      - name: "Puppet Version: ${{ steps.setup_world.outputs.puppet_version }}"
-        run: "echo ${{ steps.setup_world.outputs.puppet_version }}"
-      
-      - name: "Ruby Version: ${{ steps.setup_world.outputs.ruby_version }}"
-        run: "echo ${{ steps.setup_world.outputs.ruby_version }}"
-
-  unit_tests_with_nightly_puppet_gem:
-    name: ${{ matrix.os_type }} / Puppet${{ needs.set_output_data.outputs.puppet_version }} gem / Ruby${{ needs.set_output_data.outputs.ruby_version }}
-    needs: set_output_data
-    env:
-      puppet_version: ${{ needs.set_output_data.outputs.puppet_version }}
-      ruby_version: ${{ needs.set_output_data.outputs.ruby_version }}
-    
-    strategy:
-      matrix:
-        os: [ 'ubuntu-20.04', 'macos-latest', 'windows-2019' ]
-        include:
-          - os: 'ubuntu-20.04'
-            os_type: 'Linux'
-            env_set_cmd: 'export '
-            gem_file_postfix: '.gem'
-          - os: 'macos-latest'
-            os_type: 'macOS'
-            env_set_cmd: 'export '
-            gem_file_postfix: '-universal-darwin.gem'
-          - os: 'windows-2019'
-            os_type: 'Windows'
-            env_set_cmd: '$env:'
-            gem_file_postfix: '-x64-mingw32.gem'
-
-    runs-on: ${{ matrix.os }}
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@v3
-
-      - name: Install ruby version ${{ env.ruby_version }}
-        uses: ruby/setup-ruby@v1
-        with:
-          ruby-version: ${{ env.ruby_version }}
-
-      - name: Install the latest nightly build of puppet${{ env.puppet_version }} gem
-        run: |
-          sleep_time=0
-          until [ $sleep_time -ge 15 ]
-          do
-            curl --location http://nightlies.puppet.com/downloads/gems/puppet${{ env.puppet_version }}-nightly/puppet-${{ needs.set_output_data.outputs.puppet_short_commit }}${{ matrix.gem_file_postfix }} --output puppet.gem
-            gem install puppet.gem -N && break
-
-            sleep_time=$((sleep_time*2+1))
-            echo "Retrying download and install of gem in $sleep_time seconds..."
-            sleep $sleep_time
-          done
-        shell: bash
-
-      - name: Prepare testing environment with bundler
-        run: |
-          git config --global core.longpaths true
-          bundle config set system 'true'
-          bundle config set --local without 'release'
-
-          ${{ matrix.env_set_cmd }}PUPPET_GEM_VERSION=${{ needs.set_output_data.outputs.puppet_short_commit }}
-          bundle update --jobs 4 --retry 3
-
-      - name: Run unit tests
-        run: bundle exec rake parallel_spec
-
-  notify-via-slack:
-    name: Notify workflow conclusion via Slack
-    if: ${{ always() }}
-    needs: [set_output_data, unit_tests_with_nightly_puppet_gem]
-    runs-on: 'ubuntu-latest'
-    steps:
-      - uses: luchihoratiu/notify-via-slack@v1.0.0
-        with:
-          SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
-          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
-          NOTIFY_ONLY_ON_CONCLUSION_CHANGE: 'true'
-          EXTRA_INFORMATION: ':github_actions: Run number: ${{ github.run_id }} \n
-                              :puppet: Puppet Agent SHA: ${{ github.event.inputs.pa_ref }} \n
-                              :puppet: Puppet SHA: ${{ needs.set_output_data.outputs.puppet_sha }} \n
-                              :puppet: Puppet Short Commit: ${{ needs.set_output_data.outputs.puppet_short_commit }} \n
-                              :puppet: Puppet Version: ${{ needs.set_output_data.outputs.puppet_version }} \n
-                              :ruby: Ruby Version: ${{ needs.set_output_data.outputs.ruby_version }} \n'
-