Compare commits

...

28 Commits

Author SHA1 Message Date
sheenaajay
2fe0d5dff4 Merge pull request #469 from carabasdaniel/release_prep_v7.0.0
Release version v7.0.0
2021-03-01 16:08:50 +00:00
Auto-release
4ed5c8b966 Release version 7.0.0 2021-03-01 15:44:13 +00:00
daianamezdrea
be8320eafe Merge pull request #468 from puppetlabs/pdksync_maint/main/perform_pdk_update
pdksync - (MAINT) PDK update for GHA workflows + Litmus updates
2021-02-26 15:25:15 +02:00
Ciaran McCrisken
ee6eb4e4a1 (MAINT) pdk update 2021-02-25 16:14:52 +00:00
Paula Muir
91e86c1d11 Merge pull request #467 from puppetlabs/pdksync_maint/main/deprecate_sles11
pdksync - (MAINT) Remove SLES 11 support
2021-02-24 16:58:46 +00:00
Ciaran McCrisken
f5350ff75b (MAINT) Remove SLES 11 support 2021-02-24 16:23:56 +00:00
Paula Muir
28599c9752 Merge pull request #466 from puppetlabs/pdksync_maint/main/deprecate_rhel_5_family
pdksync - (MAINT) Remove RHEL 5 family support
2021-02-24 15:34:27 +00:00
Ciaran McCrisken
0547a5aef9 (MAINT) Remove RHEL 5 OS family support 2021-02-24 13:56:20 +00:00
Michael T Lombardi (He/Him)
32f4322ec6 Merge pull request #464 from puppetlabs/maint/main/update_dependencies
(maint) Update major dependencies prior to release
2021-02-22 19:40:50 -06:00
Paula Muir
8169c6684e (maint) Update major dependencies prior to release 2021-02-22 16:33:42 +00:00
David Schmitt
0ee1993b19 Merge pull request #463 from puppetlabs/pdksync_remove_puppet5
pdksync - Remove Puppet 5 from testing and bump minimal version to 6.0.0
2021-02-18 09:21:05 +00:00
Paula Muir
2ee840b8fc Merge pull request #461 from rjd1/main
(MODULES-10935) - Switch legacy operatingsystem fact to modern kernel one
2021-02-17 09:21:19 +00:00
Ryan Dill
c3a5d55989 (MODULES-10935) - Update fact used on Darwin in java_version unit test 2021-02-16 20:39:24 -08:00
Daniel Carabas
f48ed2fbe9 Add auto_release.yml to sync.yml 2021-02-16 19:19:04 +02:00
Daniel Carabas
1abf0ac15c pdk update 2021-02-16 15:36:50 +02:00
Daniel Carabas
0d2dda5590 Update .sync.yml 2021-02-16 09:50:57 +02:00
Daniel Carabas
d871ee97c1 Bump minimal puppet version to 6.0.0 in metadata.json 2021-02-15 17:36:26 +02:00
Daniel Carabas
a78feaa17e Remove Puppet 5 testing 2021-02-15 17:20:03 +02:00
Ryan Dill
595dc6df93 (MODULES-10935) - Switch legacy operatingsystem fact to modern kernel 2021-02-08 03:28:11 -08:00
daianamezdrea
c03f5a0392 Merge pull request #460 from puppetlabs/pdksync_gha-updates
pdksync - Update gha templates
2021-01-27 11:34:29 +02:00
David Schmitt
dcdbec8565 (maint) Update github actions 2021-01-26 17:16:54 +00:00
sheenaajay
a83f32da35 Merge pull request #457 from puppetlabs/pdksync
Update to puppet-module-gems 1.0, pdk-templates and new rubocop
2021-01-04 13:24:01 +00:00
daianamezdrea
1a6de8e23f Merge pull request #459 from puppetlabs/release
Release mergeback v6.5.0
2020-12-17 11:21:51 +02:00
Adrian Iurca
57187de011 Merge pull request #458 from daianamezdrea/release
Release prep version 6.5.0
2020-12-17 10:23:12 +02:00
David Schmitt
f9d03a10ac Apply remaining rubocop fixes 2020-12-16 17:36:26 +00:00
David Schmitt
d3c3598349 Add all safe auto corrects 2020-12-16 13:44:18 +00:00
David Schmitt
fdbccc3435 Add the FrozenStrings magic comment 2020-12-16 13:44:14 +00:00
David Schmitt
1dda22762e Update to pdk-templates and puppet-module-gems 1.0.0 2020-12-16 13:44:06 +00:00
30 changed files with 832 additions and 433 deletions

81
.github/workflows/auto_release.yml vendored Normal file
View File

@@ -0,0 +1,81 @@
name: "Auto release"
on:
schedule:
- cron: '0 3 * * 6'
workflow_dispatch:
env:
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
HONEYCOMB_DATASET: litmus tests
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
auto_release:
name: "Automatic release prep"
runs-on: ubuntu-20.04
steps:
- name: "Honeycomb: Start recording"
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
with:
apikey: ${{ env.HONEYCOMB_WRITEKEY }}
dataset: ${{ env.HONEYCOMB_DATASET }}
job-status: ${{ job.status }}
- name: "Honeycomb: start first step"
run: |
echo STEP_ID="auto-release" >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: "Checkout Source"
if: ${{ github.repository_owner == 'puppetlabs' }}
uses: actions/checkout@v2
with:
fetch-depth: 0
persist-credentials: false
- name: "PDK Release prep"
uses: docker://puppet/pdk:nightly
with:
args: 'release prep --force'
env:
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Get Version"
if: ${{ github.repository_owner == 'puppetlabs' }}
id: gv
run: |
echo "::set-output name=ver::$(jq --raw-output .version metadata.json)"
- name: "Commit changes"
if: ${{ github.repository_owner == 'puppetlabs' }}
run: |
git config --local user.email "${{ github.repository_owner }}@users.noreply.github.com"
git config --local user.name "GitHub Action"
git add .
git commit -m "Release prep v${{ steps.gv.outputs.ver }}"
- name: Create Pull Request
id: cpr
uses: puppetlabs/peter-evans-create-pull-request@v3
if: ${{ github.repository_owner == 'puppetlabs' }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "Release prep v${{ steps.gv.outputs.ver }}"
branch: "release-prep"
delete-branch: true
title: "Release prep v${{ steps.gv.outputs.ver }}"
body: "Automated release-prep through [pdk-templates](https://github.com/puppetlabs/pdk-templates/blob/main/moduleroot/.github/workflows/auto_release.yml.erb) from commit ${{ github.sha }}"
labels: "maintenance"
- name: PR outputs
if: ${{ github.repository_owner == 'puppetlabs' }}
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
- name: "Honeycomb: Record finish step"
if: ${{ always() }}
run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Finished auto release workflow'

View File

@@ -17,7 +17,7 @@ jobs:
steps: steps:
- name: "Honeycomb: Start recording" - name: "Honeycomb: Start recording"
uses: kvrhdn/gha-buildevents@v1.0.2 uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
with: with:
apikey: ${{ env.HONEYCOMB_WRITEKEY }} apikey: ${{ env.HONEYCOMB_WRITEKEY }}
dataset: ${{ env.HONEYCOMB_DATASET }} dataset: ${{ env.HONEYCOMB_DATASET }}
@@ -25,7 +25,7 @@ jobs:
- name: "Honeycomb: Start first step" - name: "Honeycomb: Start first step"
run: | run: |
echo STEP_ID=0 >> $GITHUB_ENV echo STEP_ID=setup-environment >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Checkout Source - name: Checkout Source
@@ -33,46 +33,43 @@ jobs:
if: ${{ github.repository_owner == 'puppetlabs' }} if: ${{ github.repository_owner == 'puppetlabs' }}
- name: Activate Ruby 2.7 - name: Activate Ruby 2.7
uses: actions/setup-ruby@v1 uses: ruby/setup-ruby@v1
if: ${{ github.repository_owner == 'puppetlabs' }} if: ${{ github.repository_owner == 'puppetlabs' }}
with: with:
ruby-version: "2.7" ruby-version: "2.7"
bundler-cache: true
- name: Cache gems - name: Print bundle environment
uses: actions/cache@v2
if: ${{ github.repository_owner == 'puppetlabs' }}
with:
path: vendor/gems
key: ${{ runner.os }}-${{ github.event_name }}-${{ hashFiles('**/Gemfile') }}
restore-keys: |
${{ runner.os }}-${{ github.event_name }}-
${{ runner.os }}-
- name: Install gems
if: ${{ github.repository_owner == 'puppetlabs' }} if: ${{ github.repository_owner == 'puppetlabs' }}
run: | run: |
buildevents cmd $TRACE_ID $STEP_ID 'bundle config path vendor/gems' -- bundle config path vendor/gems echo ::group::bundler environment
buildevents cmd $TRACE_ID $STEP_ID 'bundle config jobs 8' -- bundle config jobs 8 buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
buildevents cmd $TRACE_ID $STEP_ID 'bundle config retry 3' -- bundle config retry 3 echo ::endgroup::
buildevents cmd $TRACE_ID $STEP_ID 'bundle install' -- bundle install
buildevents cmd $TRACE_ID $STEP_ID 'bundle clean' -- bundle clean - name: "Honeycomb: Record Setup Environment time"
if: ${{ github.repository_owner == 'puppetlabs' }}
run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Setup Acceptance Test Matrix - name: Setup Acceptance Test Matrix
id: get-matrix id: get-matrix
if: ${{ github.repository_owner == 'puppetlabs' }} if: ${{ github.repository_owner == 'puppetlabs' }}
run: | run: |
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
else else
echo "::set-output name=matrix::{}" echo "::set-output name=matrix::{}"
fi fi
- name: "Honeycomb: Record setup time" - name: "Honeycomb: Record Setup Test Matrix time"
if: ${{ always() }} if: ${{ always() }}
run: | run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix' buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
Acceptance: Acceptance:
name: "${{matrix.platforms.label}}, ${{matrix.collection}}"
needs: needs:
- setup_matrix - setup_matrix
@@ -86,67 +83,49 @@ jobs:
steps: steps:
- run: | - run: |
echo 'platform=${{ matrix.platform }}' >> $BUILDEVENT_FILE echo 'platform=${{ matrix.platforms.image }}' >> $BUILDEVENT_FILE
echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE
echo 'label=${{ matrix.platforms.label }}' >> $BUILDEVENT_FILE
- name: "Honeycomb: Start recording" - name: "Honeycomb: Start recording"
uses: kvrhdn/gha-buildevents@v1.0.2 uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
with: with:
apikey: ${{ env.HONEYCOMB_WRITEKEY }} apikey: ${{ env.HONEYCOMB_WRITEKEY }}
dataset: ${{ env.HONEYCOMB_DATASET }} dataset: ${{ env.HONEYCOMB_DATASET }}
job-status: ${{ job.status }} job-status: ${{ job.status }}
matrix-key: ${{ matrix.platform }}-${{ matrix.collection }} matrix-key: ${{ matrix.platforms.label }}-${{ matrix.collection }}
- name: "Honeycomb: start first step" - name: "Honeycomb: start first step"
run: | run: |
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-1 >> $GITHUB_ENV echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-1 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Checkout Source - name: Checkout Source
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Activate Ruby 2.7 - name: Activate Ruby 2.7
uses: actions/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
ruby-version: "2.7" ruby-version: "2.7"
bundler-cache: true
- name: Cache gems - name: Print bundle environment
uses: actions/cache@v2
with:
path: vendor/gems
key: ${{ runner.os }}-${{ github.event_name }}-${{ hashFiles('**/Gemfile') }}
restore-keys: |
${{ runner.os }}-${{ github.event_name }}-
${{ runner.os }}-
- name: "Honeycomb: Record cache setup time"
if: ${{ always() }}
run: | run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Cache retrieval'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Bundler Setup
run: |
buildevents cmd $TRACE_ID $STEP_ID 'bundle config path vendor/gems' -- bundle config path vendor/gems
buildevents cmd $TRACE_ID $STEP_ID 'bundle config jobs 8' -- bundle config jobs 8
buildevents cmd $TRACE_ID $STEP_ID 'bundle config retry 3' -- bundle config retry 3
buildevents cmd $TRACE_ID $STEP_ID 'bundle install' -- bundle install
buildevents cmd $TRACE_ID $STEP_ID 'bundle clean' -- bundle clean
echo ::group::bundler environment echo ::group::bundler environment
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
echo ::endgroup:: echo ::endgroup::
- name: "Honeycomb: Record Bundler Setup time" - name: "Honeycomb: Record Setup Environment time"
if: ${{ always() }} if: ${{ always() }}
run: | run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Bundler Setup' buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-3 >> $GITHUB_ENV echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Provision test environment - name: Provision test environment
run: | run: |
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platform }}' -- bundle exec rake 'litmus:provision[provision::provision_service,${{ matrix.platform }}]' buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platforms.image }}' -- bundle exec rake 'litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]'
echo ::group::=== REQUEST === echo ::group::=== REQUEST ===
cat request.json || true cat request.json || true
echo echo
@@ -155,33 +134,20 @@ jobs:
sed -e 's/password: .*/password: "[redacted]"/' < inventory.yaml || true sed -e 's/password: .*/password: "[redacted]"/' < inventory.yaml || true
echo ::endgroup:: echo ::endgroup::
# The provision service hands out machines as soon as they're provisioned.
# The GCP VMs might still take a while to spool up and configure themselves fully.
# This retry loop spins until all agents have been installed successfully.
- name: Install agent - name: Install agent
uses: nick-invision/retry@v1 run: |
with: buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_agent ${{ matrix.collection }}' -- bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
timeout_minutes: 30
max_attempts: 5
retry_wait_seconds: 60
command: buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_agent ${{ matrix.collection }}' -- bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
# The agent installer on windows does not finish in time for this to work. To
# work around this for now, retry after a minute if installing the module failed.
- name: Install module - name: Install module
uses: nick-invision/retry@v1 run: |
with: buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
timeout_minutes: 30
max_attempts: 2
retry_wait_seconds: 60
command: buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
- name: "Honeycomb: Record deployment times" - name: "Honeycomb: Record deployment times"
if: ${{ always() }} if: ${{ always() }}
run: | run: |
echo ::group::honeycomb step echo ::group::honeycomb step
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system' buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-4 >> $GITHUB_ENV echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-3 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
echo ::endgroup:: echo ::endgroup::
@@ -193,11 +159,12 @@ jobs:
if: ${{ always() }} if: ${{ always() }}
run: | run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests' buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-5 >> $GITHUB_ENV echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-4 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Remove test environment - name: Remove test environment
if: ${{ always() }} if: ${{ always() }}
continue-on-error: true
run: | run: |
if [ -f inventory.yaml ]; then if [ -f inventory.yaml ]; then
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down' buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down'
@@ -220,7 +187,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- name: Slack Workflow Notification - name: Slack Workflow Notification
uses: Gamesight/slack-workflow-status@master uses: puppetlabs/Gamesight-slack-workflow-status@pdk-templates-v1
with: with:
# Required Input # Required Input
repo_token: ${{ secrets.GITHUB_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -15,7 +15,7 @@ jobs:
steps: steps:
- name: "Honeycomb: Start recording" - name: "Honeycomb: Start recording"
uses: kvrhdn/gha-buildevents@v1.0.2 uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
with: with:
apikey: ${{ env.HONEYCOMB_WRITEKEY }} apikey: ${{ env.HONEYCOMB_WRITEKEY }}
dataset: ${{ env.HONEYCOMB_DATASET }} dataset: ${{ env.HONEYCOMB_DATASET }}
@@ -23,7 +23,7 @@ jobs:
- name: "Honeycomb: Start first step" - name: "Honeycomb: Start first step"
run: | run: |
echo STEP_ID=0 >> $GITHUB_ENV echo STEP_ID=setup-environment >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Checkout Source - name: Checkout Source
@@ -31,48 +31,45 @@ jobs:
if: ${{ github.repository_owner == 'puppetlabs' }} if: ${{ github.repository_owner == 'puppetlabs' }}
- name: Activate Ruby 2.7 - name: Activate Ruby 2.7
uses: actions/setup-ruby@v1 uses: ruby/setup-ruby@v1
if: ${{ github.repository_owner == 'puppetlabs' }} if: ${{ github.repository_owner == 'puppetlabs' }}
with: with:
ruby-version: "2.7" ruby-version: "2.7"
bundler-cache: true
- name: Cache gems - name: Print bundle environment
uses: actions/cache@v2
if: ${{ github.repository_owner == 'puppetlabs' }}
with:
path: vendor/gems
key: ${{ runner.os }}-${{ github.event_name }}-${{ hashFiles('**/Gemfile') }}
restore-keys: |
${{ runner.os }}-${{ github.event_name }}-
${{ runner.os }}-
- name: Install gems
if: ${{ github.repository_owner == 'puppetlabs' }} if: ${{ github.repository_owner == 'puppetlabs' }}
run: | run: |
buildevents cmd $TRACE_ID $STEP_ID 'bundle config path vendor/gems' -- bundle config path vendor/gems echo ::group::bundler environment
buildevents cmd $TRACE_ID $STEP_ID 'bundle config jobs 8' -- bundle config jobs 8 buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
buildevents cmd $TRACE_ID $STEP_ID 'bundle config retry 3' -- bundle config retry 3 echo ::endgroup::
buildevents cmd $TRACE_ID $STEP_ID 'bundle install' -- bundle install
buildevents cmd $TRACE_ID $STEP_ID 'bundle clean' -- bundle clean - name: "Honeycomb: Record Setup Environment time"
if: ${{ github.repository_owner == 'puppetlabs' }}
run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Setup Acceptance Test Matrix - name: Setup Acceptance Test Matrix
id: get-matrix id: get-matrix
if: ${{ github.repository_owner == 'puppetlabs' }}
run: | run: |
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
else else
echo "::set-output name=matrix::{}" echo "::set-output name=matrix::{}"
fi fi
- name: "Honeycomb: Record setup time" - name: "Honeycomb: Record Setup Test Matrix time"
if: ${{ always() }} if: ${{ always() }}
run: | run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix' buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
Acceptance: Acceptance:
name: "${{matrix.platforms.label}}, ${{matrix.collection}}"
needs: needs:
- setup_matrix - setup_matrix
if: ${{ needs.setup_matrix.outputs.matrix != '{}' }}
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy: strategy:
@@ -84,67 +81,48 @@ jobs:
steps: steps:
- run: | - run: |
echo 'platform=${{ matrix.platform }}' >> $BUILDEVENT_FILE echo 'platform=${{ matrix.platforms.image }}' >> $BUILDEVENT_FILE
echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE
echo 'label=${{ matrix.platforms.label }}' >> $BUILDEVENT_FILE
- name: "Honeycomb: Start recording" - name: "Honeycomb: Start recording"
uses: kvrhdn/gha-buildevents@v1.0.2 uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
with: with:
apikey: ${{ env.HONEYCOMB_WRITEKEY }} apikey: ${{ env.HONEYCOMB_WRITEKEY }}
dataset: ${{ env.HONEYCOMB_DATASET }} dataset: ${{ env.HONEYCOMB_DATASET }}
job-status: ${{ job.status }} job-status: ${{ job.status }}
matrix-key: ${{ matrix.platform }}-${{ matrix.collection }} matrix-key: ${{ matrix.platforms.label }}-${{ matrix.collection }}
- name: "Honeycomb: start first step" - name: "Honeycomb: start first step"
run: | run: |
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-1 >> $GITHUB_ENV echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-1 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Checkout Source - name: Checkout Source
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Activate Ruby 2.7 - name: Activate Ruby 2.7
uses: actions/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
ruby-version: "2.7" ruby-version: "2.7"
bundler-cache: true
- name: Cache gems - name: Print bundle environment
uses: actions/cache@v2
with:
path: vendor/gems
key: ${{ runner.os }}-${{ github.event_name }}-${{ hashFiles('**/Gemfile') }}
restore-keys: |
${{ runner.os }}-${{ github.event_name }}-
${{ runner.os }}-
- name: "Honeycomb: Record cache setup time"
if: ${{ always() }}
run: | run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Cache retrieval'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Bundler Setup
run: |
buildevents cmd $TRACE_ID $STEP_ID 'bundle config path vendor/gems' -- bundle config path vendor/gems
buildevents cmd $TRACE_ID $STEP_ID 'bundle config jobs 8' -- bundle config jobs 8
buildevents cmd $TRACE_ID $STEP_ID 'bundle config retry 3' -- bundle config retry 3
buildevents cmd $TRACE_ID $STEP_ID 'bundle install' -- bundle install
buildevents cmd $TRACE_ID $STEP_ID 'bundle clean' -- bundle clean
echo ::group::bundler environment echo ::group::bundler environment
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
echo ::endgroup:: echo ::endgroup::
- name: "Honeycomb: Record Bundler Setup time" - name: "Honeycomb: Record Setup Environment time"
if: ${{ always() }} if: ${{ always() }}
run: | run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Bundler Setup' buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-3 >> $GITHUB_ENV echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Provision test environment - name: Provision test environment
run: | run: |
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platform }}' -- bundle exec rake 'litmus:provision[provision::provision_service,${{ matrix.platform }}]' buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platforms.image }}' -- bundle exec rake 'litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]'
echo ::group::=== REQUEST === echo ::group::=== REQUEST ===
cat request.json || true cat request.json || true
echo echo
@@ -153,33 +131,20 @@ jobs:
sed -e 's/password: .*/password: "[redacted]"/' < inventory.yaml || true sed -e 's/password: .*/password: "[redacted]"/' < inventory.yaml || true
echo ::endgroup:: echo ::endgroup::
# The provision service hands out machines as soon as they're provisioned.
# The GCP VMs might still take a while to spool up and configure themselves fully.
# This retry loop spins until all agents have been installed successfully.
- name: Install agent - name: Install agent
uses: nick-invision/retry@v1 run: |
with: buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_agent ${{ matrix.collection }}' -- bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
timeout_minutes: 30
max_attempts: 5
retry_wait_seconds: 60
command: buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_agent ${{ matrix.collection }}' -- bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
# The agent installer on windows does not finish in time for this to work. To
# work around this for now, retry after a minute if installing the module failed.
- name: Install module - name: Install module
uses: nick-invision/retry@v1 run: |
with: buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
timeout_minutes: 30
max_attempts: 2
retry_wait_seconds: 60
command: buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
- name: "Honeycomb: Record deployment times" - name: "Honeycomb: Record deployment times"
if: ${{ always() }} if: ${{ always() }}
run: | run: |
echo ::group::honeycomb step echo ::group::honeycomb step
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system' buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-4 >> $GITHUB_ENV echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-3 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
echo ::endgroup:: echo ::endgroup::
@@ -191,11 +156,12 @@ jobs:
if: ${{ always() }} if: ${{ always() }}
run: | run: |
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests' buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-5 >> $GITHUB_ENV echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-4 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV echo STEP_START=$(date +%s) >> $GITHUB_ENV
- name: Remove test environment - name: Remove test environment
if: ${{ always() }} if: ${{ always() }}
continue-on-error: true
run: | run: |
if [ -f inventory.yaml ]; then if [ -f inventory.yaml ]; then
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down' buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down'

View File

@@ -1,12 +1,12 @@
--- ---
require: require:
- rubocop-performance
- rubocop-rspec - rubocop-rspec
- rubocop-i18n
AllCops: AllCops:
DisplayCopNames: true DisplayCopNames: true
TargetRubyVersion: '2.1' TargetRubyVersion: '2.4'
Include: Include:
- "./**/*.rb" - "**/*.rb"
Exclude: Exclude:
- bin/* - bin/*
- ".vendor/**/*" - ".vendor/**/*"
@@ -18,16 +18,9 @@ AllCops:
- "**/Puppetfile" - "**/Puppetfile"
- "**/Vagrantfile" - "**/Vagrantfile"
- "**/Guardfile" - "**/Guardfile"
Metrics/LineLength: Layout/LineLength:
Description: People have wide screens, use them. Description: People have wide screens, use them.
Max: 200 Max: 200
GetText:
Enabled: false
GetText/DecorateString:
Description: We don't want to decorate test output.
Exclude:
- spec/**/*
Enabled: false
RSpec/BeforeAfterAll: RSpec/BeforeAfterAll:
Description: Beware of using after(:all) as it may cause state to leak between tests. Description: Beware of using after(:all) as it may cause state to leak between tests.
A necessary evil in acceptance testing. A necessary evil in acceptance testing.
@@ -36,14 +29,13 @@ RSpec/BeforeAfterAll:
RSpec/HookArgument: RSpec/HookArgument:
Description: Prefer explicit :each argument, matching existing module's style Description: Prefer explicit :each argument, matching existing module's style
EnforcedStyle: each EnforcedStyle: each
RSpec/DescribeSymbol:
Exclude:
- spec/unit/facter/**/*.rb
Style/BlockDelimiters: Style/BlockDelimiters:
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
be consistent then. be consistent then.
EnforcedStyle: braces_for_chaining EnforcedStyle: braces_for_chaining
Style/BracesAroundHashParameters:
Description: Braces are required by Ruby 2.7. Cop removed from RuboCop v0.80.0.
See https://github.com/rubocop-hq/rubocop/pull/7643
Enabled: false
Style/ClassAndModuleChildren: Style/ClassAndModuleChildren:
Description: Compact style reduces the required amount of indentation. Description: Compact style reduces the required amount of indentation.
EnforcedStyle: compact EnforcedStyle: compact
@@ -72,7 +64,7 @@ Style/TrailingCommaInArguments:
Description: Prefer always trailing comma on multiline argument lists. This makes Description: Prefer always trailing comma on multiline argument lists. This makes
diffs, and re-ordering nicer. diffs, and re-ordering nicer.
EnforcedStyleForMultiline: comma EnforcedStyleForMultiline: comma
Style/TrailingCommaInLiteral: Style/TrailingCommaInArrayLiteral:
Description: Prefer always trailing comma on multiline literals. This makes diffs, Description: Prefer always trailing comma on multiline literals. This makes diffs,
and re-ordering nicer. and re-ordering nicer.
EnforcedStyleForMultiline: comma EnforcedStyleForMultiline: comma
@@ -87,26 +79,170 @@ Style/Documentation:
- spec/**/* - spec/**/*
Style/WordArray: Style/WordArray:
EnforcedStyle: brackets EnforcedStyle: brackets
Performance/AncestorsInclude:
Enabled: true
Performance/BigDecimalWithNumericArgument:
Enabled: true
Performance/BlockGivenWithExplicitBlock:
Enabled: true
Performance/CaseWhenSplat:
Enabled: true
Performance/ConstantRegexp:
Enabled: true
Performance/MethodObjectAsBlock:
Enabled: true
Performance/RedundantSortBlock:
Enabled: true
Performance/RedundantStringChars:
Enabled: true
Performance/ReverseFirst:
Enabled: true
Performance/SortReverse:
Enabled: true
Performance/Squeeze:
Enabled: true
Performance/StringInclude:
Enabled: true
Performance/Sum:
Enabled: true
Style/CollectionMethods: Style/CollectionMethods:
Enabled: true Enabled: true
Style/MethodCalledOnDoEndBlock: Style/MethodCalledOnDoEndBlock:
Enabled: true Enabled: true
Style/StringMethods: Style/StringMethods:
Enabled: true Enabled: true
GetText/DecorateFunctionMessage: Bundler/InsecureProtocolSource:
Enabled: false Enabled: false
GetText/DecorateStringFormattingUsingInterpolation: Gemspec/DuplicatedAssignment:
Enabled: false Enabled: false
GetText/DecorateStringFormattingUsingPercent: Gemspec/OrderedDependencies:
Enabled: false
Gemspec/RequiredRubyVersion:
Enabled: false
Gemspec/RubyVersionGlobalsUsage:
Enabled: false
Layout/ArgumentAlignment:
Enabled: false
Layout/BeginEndAlignment:
Enabled: false
Layout/ClosingHeredocIndentation:
Enabled: false
Layout/EmptyComment:
Enabled: false
Layout/EmptyLineAfterGuardClause:
Enabled: false
Layout/EmptyLinesAroundArguments:
Enabled: false
Layout/EmptyLinesAroundAttributeAccessor:
Enabled: false Enabled: false
Layout/EndOfLine: Layout/EndOfLine:
Enabled: false Enabled: false
Layout/IndentHeredoc: Layout/FirstArgumentIndentation:
Enabled: false
Layout/HashAlignment:
Enabled: false
Layout/HeredocIndentation:
Enabled: false
Layout/LeadingEmptyLines:
Enabled: false
Layout/SpaceAroundMethodCallOperator:
Enabled: false
Layout/SpaceInsideArrayLiteralBrackets:
Enabled: false
Layout/SpaceInsideReferenceBrackets:
Enabled: false
Lint/BigDecimalNew:
Enabled: false
Lint/BooleanSymbol:
Enabled: false
Lint/ConstantDefinitionInBlock:
Enabled: false
Lint/DeprecatedOpenSSLConstant:
Enabled: false
Lint/DisjunctiveAssignmentInConstructor:
Enabled: false
Lint/DuplicateElsifCondition:
Enabled: false
Lint/DuplicateRequire:
Enabled: false
Lint/DuplicateRescueException:
Enabled: false
Lint/EmptyConditionalBody:
Enabled: false
Lint/EmptyFile:
Enabled: false
Lint/ErbNewArguments:
Enabled: false
Lint/FloatComparison:
Enabled: false
Lint/HashCompareByIdentity:
Enabled: false
Lint/IdentityComparison:
Enabled: false
Lint/InterpolationCheck:
Enabled: false
Lint/MissingCopEnableDirective:
Enabled: false
Lint/MixedRegexpCaptureTypes:
Enabled: false
Lint/NestedPercentLiteral:
Enabled: false
Lint/NonDeterministicRequireOrder:
Enabled: false
Lint/OrderedMagicComments:
Enabled: false
Lint/OutOfRangeRegexpRef:
Enabled: false
Lint/RaiseException:
Enabled: false
Lint/RedundantCopEnableDirective:
Enabled: false
Lint/RedundantRequireStatement:
Enabled: false
Lint/RedundantSafeNavigation:
Enabled: false
Lint/RedundantWithIndex:
Enabled: false
Lint/RedundantWithObject:
Enabled: false
Lint/RegexpAsCondition:
Enabled: false
Lint/ReturnInVoidContext:
Enabled: false
Lint/SafeNavigationConsistency:
Enabled: false
Lint/SafeNavigationWithEmpty:
Enabled: false
Lint/SelfAssignment:
Enabled: false
Lint/SendWithMixinArgument:
Enabled: false
Lint/ShadowedArgument:
Enabled: false
Lint/StructNewOverride:
Enabled: false
Lint/ToJSON:
Enabled: false
Lint/TopLevelReturnWithArgument:
Enabled: false
Lint/TrailingCommaInAttributeDeclaration:
Enabled: false
Lint/UnreachableLoop:
Enabled: false
Lint/UriEscapeUnescape:
Enabled: false
Lint/UriRegexp:
Enabled: false
Lint/UselessMethodDefinition:
Enabled: false
Lint/UselessTimes:
Enabled: false Enabled: false
Metrics/AbcSize: Metrics/AbcSize:
Enabled: false Enabled: false
Metrics/BlockLength: Metrics/BlockLength:
Enabled: false Enabled: false
Metrics/BlockNesting:
Enabled: false
Metrics/ClassLength: Metrics/ClassLength:
Enabled: false Enabled: false
Metrics/CyclomaticComplexity: Metrics/CyclomaticComplexity:
@@ -119,19 +255,265 @@ Metrics/ParameterLists:
Enabled: false Enabled: false
Metrics/PerceivedComplexity: Metrics/PerceivedComplexity:
Enabled: false Enabled: false
Migration/DepartmentName:
Enabled: false
Naming/AccessorMethodName:
Enabled: false
Naming/BlockParameterName:
Enabled: false
Naming/HeredocDelimiterCase:
Enabled: false
Naming/HeredocDelimiterNaming:
Enabled: false
Naming/MemoizedInstanceVariableName:
Enabled: false
Naming/MethodParameterName:
Enabled: false
Naming/RescuedExceptionsVariableName:
Enabled: false
Naming/VariableNumber:
Enabled: false
Performance/BindCall:
Enabled: false
Performance/DeletePrefix:
Enabled: false
Performance/DeleteSuffix:
Enabled: false
Performance/InefficientHashSearch:
Enabled: false
Performance/UnfreezeString:
Enabled: false
Performance/UriDefaultParser:
Enabled: false
RSpec/Be:
Enabled: false
RSpec/Capybara/CurrentPathExpectation:
Enabled: false
RSpec/Capybara/FeatureMethods:
Enabled: false
RSpec/Capybara/VisibilityMatcher:
Enabled: false
RSpec/ContextMethod:
Enabled: false
RSpec/ContextWording:
Enabled: false
RSpec/DescribeClass: RSpec/DescribeClass:
Enabled: false Enabled: false
RSpec/EmptyHook:
Enabled: false
RSpec/EmptyLineAfterExample:
Enabled: false
RSpec/EmptyLineAfterExampleGroup:
Enabled: false
RSpec/EmptyLineAfterHook:
Enabled: false
RSpec/ExampleLength: RSpec/ExampleLength:
Enabled: false Enabled: false
RSpec/MessageExpectation: RSpec/ExampleWithoutDescription:
Enabled: false
RSpec/ExpectChange:
Enabled: false
RSpec/ExpectInHook:
Enabled: false
RSpec/FactoryBot/AttributeDefinedStatically:
Enabled: false
RSpec/FactoryBot/CreateList:
Enabled: false
RSpec/FactoryBot/FactoryClassName:
Enabled: false
RSpec/HooksBeforeExamples:
Enabled: false
RSpec/ImplicitBlockExpectation:
Enabled: false
RSpec/ImplicitSubject:
Enabled: false
RSpec/LeakyConstantDeclaration:
Enabled: false
RSpec/LetBeforeExamples:
Enabled: false
RSpec/MissingExampleGroupArgument:
Enabled: false Enabled: false
RSpec/MultipleExpectations: RSpec/MultipleExpectations:
Enabled: false Enabled: false
RSpec/MultipleMemoizedHelpers:
Enabled: false
RSpec/MultipleSubjects:
Enabled: false
RSpec/NestedGroups: RSpec/NestedGroups:
Enabled: false Enabled: false
RSpec/PredicateMatcher:
Enabled: false
RSpec/ReceiveCounts:
Enabled: false
RSpec/ReceiveNever:
Enabled: false
RSpec/RepeatedExampleGroupBody:
Enabled: false
RSpec/RepeatedExampleGroupDescription:
Enabled: false
RSpec/RepeatedIncludeExample:
Enabled: false
RSpec/ReturnFromStub:
Enabled: false
RSpec/SharedExamples:
Enabled: false
RSpec/StubbedMock:
Enabled: false
RSpec/UnspecifiedException:
Enabled: false
RSpec/VariableDefinition:
Enabled: false
RSpec/VoidExpect:
Enabled: false
RSpec/Yield:
Enabled: false
Security/Open:
Enabled: false
Style/AccessModifierDeclarations:
Enabled: false
Style/AccessorGrouping:
Enabled: false
Style/AsciiComments: Style/AsciiComments:
Enabled: false Enabled: false
Style/BisectedAttrAccessor:
Enabled: false
Style/CaseLikeIf:
Enabled: false
Style/ClassEqualityComparison:
Enabled: false
Style/ColonMethodDefinition:
Enabled: false
Style/CombinableLoops:
Enabled: false
Style/CommentedKeyword:
Enabled: false
Style/Dir:
Enabled: false
Style/DoubleCopDisableDirective:
Enabled: false
Style/EmptyBlockParameter:
Enabled: false
Style/EmptyLambdaParameter:
Enabled: false
Style/Encoding:
Enabled: false
Style/EvalWithLocation:
Enabled: false
Style/ExpandPathArguments:
Enabled: false
Style/ExplicitBlockArgument:
Enabled: false
Style/ExponentialNotation:
Enabled: false
Style/FloatDivision:
Enabled: false
Style/FrozenStringLiteralComment:
Enabled: false
Style/GlobalStdStream:
Enabled: false
Style/HashAsLastArrayItem:
Enabled: false
Style/HashLikeCase:
Enabled: false
Style/HashTransformKeys:
Enabled: false
Style/HashTransformValues:
Enabled: false
Style/IfUnlessModifier: Style/IfUnlessModifier:
Enabled: false Enabled: false
Style/KeywordParametersOrder:
Enabled: false
Style/MinMax:
Enabled: false
Style/MixinUsage:
Enabled: false
Style/MultilineWhenThen:
Enabled: false
Style/NegatedUnless:
Enabled: false
Style/NumericPredicate:
Enabled: false
Style/OptionalBooleanParameter:
Enabled: false
Style/OrAssignment:
Enabled: false
Style/RandomWithOffset:
Enabled: false
Style/RedundantAssignment:
Enabled: false
Style/RedundantCondition:
Enabled: false
Style/RedundantConditional:
Enabled: false
Style/RedundantFetchBlock:
Enabled: false
Style/RedundantFileExtensionInRequire:
Enabled: false
Style/RedundantRegexpCharacterClass:
Enabled: false
Style/RedundantRegexpEscape:
Enabled: false
Style/RedundantSelfAssignment:
Enabled: false
Style/RedundantSort:
Enabled: false
Style/RescueStandardError:
Enabled: false
Style/SingleArgumentDig:
Enabled: false
Style/SlicingWithRange:
Enabled: false
Style/SoleNestedConditional:
Enabled: false
Style/StderrPuts:
Enabled: false
Style/StringConcatenation:
Enabled: false
Style/Strip:
Enabled: false
Style/SymbolProc: Style/SymbolProc:
Enabled: false Enabled: false
Style/TrailingBodyOnClass:
Enabled: false
Style/TrailingBodyOnMethodDefinition:
Enabled: false
Style/TrailingBodyOnModule:
Enabled: false
Style/TrailingCommaInHashLiteral:
Enabled: false
Style/TrailingMethodEndStatement:
Enabled: false
Style/UnpackFirst:
Enabled: false
Lint/DuplicateBranch:
Enabled: false
Lint/DuplicateRegexpCharacterClassElement:
Enabled: false
Lint/EmptyBlock:
Enabled: false
Lint/EmptyClass:
Enabled: false
Lint/NoReturnInBeginEndBlocks:
Enabled: false
Lint/ToEnumArguments:
Enabled: false
Lint/UnexpectedBlockArity:
Enabled: false
Lint/UnmodifiedReduceAccumulator:
Enabled: false
Performance/CollectionLiteralInLoop:
Enabled: false
Style/ArgumentsForwarding:
Enabled: false
Style/CollectionCompact:
Enabled: false
Style/DocumentDynamicEvalDefinition:
Enabled: false
Style/NegatedIfElseCondition:
Enabled: false
Style/NilLambda:
Enabled: false
Style/RedundantArgument:
Enabled: false
Style/SwapValues:
Enabled: false

View File

View File

@@ -21,11 +21,6 @@
- puppet6 - puppet6
provision_list: provision_list:
- travis_ub_6 - travis_ub_6
- collection:
puppet_collection:
- puppet5
provision_list:
- travis_ub_5
simplecov: true simplecov: true
notifications: notifications:
slack: slack:
@@ -36,16 +31,6 @@ Gemfile:
optional: optional:
":development": ":development":
- gem: github_changelog_generator - gem: github_changelog_generator
git: https://github.com/skywinder/github-changelog-generator
ref: 20ee04ba1234e9e83eb2ffb5056e23d641c7a018
condition: Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')
- gem: puppet_litmus
git: https://github.com/puppetlabs/puppet_litmus
ref: main
condition: Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.5.0')
- gem: bolt
version: '2.32.0'
condition: Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.5.0')
spec/spec_helper.rb: spec/spec_helper.rb:
mock_with: ":rspec" mock_with: ":rspec"
coverage_report: true coverage_report: true
@@ -57,3 +42,5 @@ spec/spec_helper.rb:
unmanaged: false unmanaged: false
.github/workflows/pr_test.yml: .github/workflows/pr_test.yml:
unmanaged: false unmanaged: false
.github/workflows/auto_release.yml:
unmanaged: false

View File

@@ -27,90 +27,46 @@ stages:
jobs: jobs:
fast_finish: true fast_finish: true
include: include:
- - before_script:
before_script:
- "bundle exec rake 'litmus:provision_list[travis_ub_6]'" - "bundle exec rake 'litmus:provision_list[travis_ub_6]'"
- "bundle exec rake 'litmus:install_agent[puppet6]'" - "bundle exec rake 'litmus:install_agent[puppet6]'"
- "bundle exec rake litmus:install_module" - "bundle exec rake litmus:install_module"
bundler_args: env:
env: PLATFORMS=travis_ub_6_puppet6 PLATFORMS: travis_ub_6_puppet6
BUNDLE_WITH: system_tests
rvm: 2.5.7 rvm: 2.5.7
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"] script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
services: docker services: docker
stage: acceptance stage: acceptance
- - before_script:
before_script:
- "bundle exec rake 'litmus:provision_list[travis_ub_5]'"
- "bundle exec rake 'litmus:install_agent[puppet5]'"
- "bundle exec rake litmus:install_module"
bundler_args:
env: PLATFORMS=travis_ub_5_puppet5
rvm: 2.5.7
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
services: docker
stage: acceptance
-
before_script:
- "bundle exec rake 'litmus:provision_list[travis_deb]'"
- "bundle exec rake 'litmus:install_agent[puppet5]'"
- "bundle exec rake litmus:install_module"
bundler_args:
env: PLATFORMS=travis_deb_puppet5
rvm: 2.5.7
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
services: docker
stage: acceptance
-
before_script:
- "bundle exec rake 'litmus:provision_list[travis_el7]'"
- "bundle exec rake 'litmus:install_agent[puppet5]'"
- "bundle exec rake litmus:install_module"
bundler_args:
env: PLATFORMS=travis_el7_puppet5
rvm: 2.5.7
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
services: docker
stage: acceptance
-
before_script:
- "bundle exec rake 'litmus:provision_list[travis_el8]'"
- "bundle exec rake 'litmus:install_agent[puppet5]'"
- "bundle exec rake litmus:install_module"
bundler_args:
env: PLATFORMS=travis_el8_puppet5
rvm: 2.5.7
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
services: docker
stage: acceptance
-
before_script:
- "bundle exec rake 'litmus:provision_list[travis_deb]'" - "bundle exec rake 'litmus:provision_list[travis_deb]'"
- "bundle exec rake 'litmus:install_agent[puppet6]'" - "bundle exec rake 'litmus:install_agent[puppet6]'"
- "bundle exec rake litmus:install_module" - "bundle exec rake litmus:install_module"
bundler_args: env:
env: PLATFORMS=travis_deb_puppet6 PLATFORMS: travis_deb_puppet6
BUNDLE_WITH: system_tests
rvm: 2.5.7 rvm: 2.5.7
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"] script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
services: docker services: docker
stage: acceptance stage: acceptance
- - before_script:
before_script:
- "bundle exec rake 'litmus:provision_list[travis_el7]'" - "bundle exec rake 'litmus:provision_list[travis_el7]'"
- "bundle exec rake 'litmus:install_agent[puppet6]'" - "bundle exec rake 'litmus:install_agent[puppet6]'"
- "bundle exec rake litmus:install_module" - "bundle exec rake litmus:install_module"
bundler_args: env:
env: PLATFORMS=travis_el7_puppet6 PLATFORMS: travis_el7_puppet6
BUNDLE_WITH: system_tests
rvm: 2.5.7 rvm: 2.5.7
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"] script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
services: docker services: docker
stage: acceptance stage: acceptance
- - before_script:
before_script:
- "bundle exec rake 'litmus:provision_list[travis_el8]'" - "bundle exec rake 'litmus:provision_list[travis_el8]'"
- "bundle exec rake 'litmus:install_agent[puppet6]'" - "bundle exec rake 'litmus:install_agent[puppet6]'"
- "bundle exec rake litmus:install_module" - "bundle exec rake litmus:install_module"
bundler_args: env:
env: PLATFORMS=travis_el8_puppet6 PLATFORMS: travis_el8_puppet6
BUNDLE_WITH: system_tests
rvm: 2.5.7 rvm: 2.5.7
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"] script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
services: docker services: docker
@@ -118,10 +74,6 @@ jobs:
- -
env: CHECK="check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop syntax lint metadata_lint" env: CHECK="check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop syntax lint metadata_lint"
stage: static stage: static
-
env: PUPPET_GEM_VERSION="~> 5.0" CHECK=parallel_spec
rvm: 2.4.5
stage: spec
- -
env: PUPPET_GEM_VERSION="~> 6.0" CHECK=parallel_spec env: PUPPET_GEM_VERSION="~> 6.0" CHECK=parallel_spec
rvm: 2.5.7 rvm: 2.5.7

View File

@@ -2,6 +2,18 @@
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org). All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
## [v7.0.0](https://github.com/puppetlabs/puppetlabs-java/tree/v7.0.0) (2021-03-01)
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.5.0...v7.0.0)
### Changed
- pdksync - Remove Puppet 5 from testing and bump minimal version to 6.0.0 [\#463](https://github.com/puppetlabs/puppetlabs-java/pull/463) ([carabasdaniel](https://github.com/carabasdaniel))
### Fixed
- \(MODULES-10935\) - Switch legacy operatingsystem fact to modern kernel one [\#461](https://github.com/puppetlabs/puppetlabs-java/pull/461) ([rjd1](https://github.com/rjd1))
## [v6.5.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.5.0) (2020-12-16) ## [v6.5.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.5.0) (2020-12-16)
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.4.0...v6.5.0) [Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.4.0...v6.5.0)
@@ -463,4 +475,4 @@ Jeff McCune <jeff@puppetlabs.com>
[2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0 [2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*

21
Gemfile
View File

@@ -17,21 +17,18 @@ ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
minor_version = ruby_version_segments[0..1].join('.') minor_version = ruby_version_segments[0..1].join('.')
group :development do group :development do
gem "fast_gettext", '1.1.0', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
gem "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
gem "json", '= 1.8.1', require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.1.9')
gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 2.8.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 2.8.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw] gem "puppet-module-posix-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
gem "puppet-module-posix-default-r#{minor_version}", '~> 0.4', require: false, platforms: [:ruby] gem "puppet-module-posix-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
gem "puppet-module-posix-dev-r#{minor_version}", '~> 0.4', require: false, platforms: [:ruby] gem "puppet-module-win-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "puppet-module-win-default-r#{minor_version}", '~> 0.4', require: false, platforms: [:mswin, :mingw, :x64_mingw] gem "puppet-module-win-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "puppet-module-win-dev-r#{minor_version}", '~> 0.4', require: false, platforms: [:mswin, :mingw, :x64_mingw] gem "github_changelog_generator", require: false
gem "github_changelog_generator", require: false, git: 'https://github.com/skywinder/github-changelog-generator', ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2') end
gem "puppet_litmus", require: false, git: 'https://github.com/puppetlabs/puppet_litmus', ref: 'main' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.5.0') group :system_tests do
gem "bolt", '2.32.0', require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.5.0') gem "puppet-module-posix-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
gem "puppet-module-win-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
end end
puppet_version = ENV['PUPPET_GEM_VERSION'] puppet_version = ENV['PUPPET_GEM_VERSION']

View File

@@ -25,15 +25,23 @@ options, even though those are not in the package repositories.
## Classes ## Classes
### `java` ### <a name="java"></a>`java`
This module manages the Java runtime package This module manages the Java runtime package
#### Parameters #### Parameters
The following parameters are available in the `java` class. The following parameters are available in the `java` class:
##### `distribution` * [`distribution`](#distribution)
* [`version`](#version)
* [`package`](#package)
* [`package_options`](#package_options)
* [`java_alternative`](#java_alternative)
* [`java_alternative_path`](#java_alternative_path)
* [`java_home`](#java_home)
##### <a name="distribution"></a>`distribution`
Data type: `String` Data type: `String`
@@ -43,7 +51,7 @@ implementations available (eg: OpenJDK vs Oracle JDK).
Default value: `'jdk'` Default value: `'jdk'`
##### `version` ##### <a name="version"></a>`version`
Data type: `Pattern[/present|installed|latest|^[.+_0-9a-zA-Z:~-]+$/]` Data type: `Pattern[/present|installed|latest|^[.+_0-9a-zA-Z:~-]+$/]`
@@ -52,7 +60,7 @@ that java is present, and does not require a specific version.
Default value: `'present'` Default value: `'present'`
##### `package` ##### <a name="package"></a>`package`
Data type: `Optional[String]` Data type: `Optional[String]`
@@ -61,7 +69,7 @@ java package is desired.
Default value: ``undef`` Default value: ``undef``
##### `package_options` ##### <a name="package_options"></a>`package_options`
Data type: `Optional[Array]` Data type: `Optional[Array]`
@@ -70,7 +78,7 @@ Options available depend on the 'package' provider for the target OS.
Default value: ``undef`` Default value: ``undef``
##### `java_alternative` ##### <a name="java_alternative"></a>`java_alternative`
Data type: `Optional[String]` Data type: `Optional[String]`
@@ -82,7 +90,7 @@ this, you also need to set the path below.
Default value: ``undef`` Default value: ``undef``
##### `java_alternative_path` ##### <a name="java_alternative_path"></a>`java_alternative_path`
Data type: `Optional[String]` Data type: `Optional[String]`
@@ -93,7 +101,7 @@ correct JVM is enabled.
Default value: ``undef`` Default value: ``undef``
##### `java_home` ##### <a name="java_home"></a>`java_home`
Data type: `Optional[String]` Data type: `Optional[String]`
@@ -104,15 +112,28 @@ Default value: ``undef``
## Defined types ## Defined types
### `java::adopt` ### <a name="javaadopt"></a>`java::adopt`
Defined Type java::adopt Defined Type java::adopt
#### Parameters #### Parameters
The following parameters are available in the `java::adopt` defined type. The following parameters are available in the `java::adopt` defined type:
##### `ensure` * [`ensure`](#ensure)
* [`version`](#version)
* [`version_major`](#version_major)
* [`version_minor`](#version_minor)
* [`java`](#java)
* [`proxy_server`](#proxy_server)
* [`proxy_type`](#proxy_type)
* [`basedir`](#basedir)
* [`manage_basedir`](#manage_basedir)
* [`package_type`](#package_type)
* [`manage_symlink`](#manage_symlink)
* [`symlink_name`](#symlink_name)
##### <a name="ensure"></a>`ensure`
Data type: `Any` Data type: `Any`
@@ -120,7 +141,7 @@ Install or remove the package.
Default value: `'present'` Default value: `'present'`
##### `version` ##### <a name="version"></a>`version`
Data type: `Any` Data type: `Any`
@@ -128,7 +149,7 @@ Version of Java to install, e.g. '8' or '9'. Default values for major and minor
Default value: `'8'` Default value: `'8'`
##### `version_major` ##### <a name="version_major"></a>`version_major`
Data type: `Any` Data type: `Any`
@@ -136,7 +157,7 @@ Major version which should be installed, e.g. '8u101' or '9.0.4'. Must be used t
Default value: ``undef`` Default value: ``undef``
##### `version_minor` ##### <a name="version_minor"></a>`version_minor`
Data type: `Any` Data type: `Any`
@@ -144,7 +165,7 @@ Minor version which should be installed, e.g. 'b12' (for version = '8') or '11'
Default value: ``undef`` Default value: ``undef``
##### `java` ##### <a name="java"></a>`java`
Data type: `Any` Data type: `Any`
@@ -152,7 +173,7 @@ Type of Java Standard Edition to install, jdk or jre.
Default value: `'jdk'` Default value: `'jdk'`
##### `proxy_server` ##### <a name="proxy_server"></a>`proxy_server`
Data type: `Any` Data type: `Any`
@@ -160,7 +181,7 @@ Specify a proxy server, with port number if needed. ie: https://example.com:8080
Default value: ``undef`` Default value: ``undef``
##### `proxy_type` ##### <a name="proxy_type"></a>`proxy_type`
Data type: `Any` Data type: `Any`
@@ -168,7 +189,7 @@ Proxy server type (none|http|https|ftp). (passed to archive)
Default value: ``undef`` Default value: ``undef``
##### `basedir` ##### <a name="basedir"></a>`basedir`
Data type: `Any` Data type: `Any`
@@ -177,7 +198,7 @@ Directory under which the installation will occur. If not set, defaults to
Default value: ``undef`` Default value: ``undef``
##### `manage_basedir` ##### <a name="manage_basedir"></a>`manage_basedir`
Data type: `Any` Data type: `Any`
@@ -186,7 +207,7 @@ Note: /usr/lib/jvm is managed for Debian by default, separate from this paramete
Default value: ``true`` Default value: ``true``
##### `package_type` ##### <a name="package_type"></a>`package_type`
Data type: `Any` Data type: `Any`
@@ -196,7 +217,7 @@ Optional forced package types: rpm, rpmbin, tar.gz
Default value: ``undef`` Default value: ``undef``
##### `manage_symlink` ##### <a name="manage_symlink"></a>`manage_symlink`
Data type: `Any` Data type: `Any`
@@ -204,7 +225,7 @@ Whether to manage a symlink that points to the installation directory. Defaults
Default value: ``false`` Default value: ``false``
##### `symlink_name` ##### <a name="symlink_name"></a>`symlink_name`
Data type: `Any` Data type: `Any`
@@ -212,15 +233,31 @@ The name for the optional symlink in the installation directory.
Default value: ``undef`` Default value: ``undef``
### `java::download` ### <a name="javadownload"></a>`java::download`
Defined Type java::download Defined Type java::download
#### Parameters #### Parameters
The following parameters are available in the `java::download` defined type. The following parameters are available in the `java::download` defined type:
##### `ensure` * [`ensure`](#ensure)
* [`version`](#version)
* [`version_major`](#version_major)
* [`version_minor`](#version_minor)
* [`java_se`](#java_se)
* [`proxy_server`](#proxy_server)
* [`proxy_type`](#proxy_type)
* [`url`](#url)
* [`jce`](#jce)
* [`jce_url`](#jce_url)
* [`basedir`](#basedir)
* [`manage_basedir`](#manage_basedir)
* [`package_type`](#package_type)
* [`manage_symlink`](#manage_symlink)
* [`symlink_name`](#symlink_name)
##### <a name="ensure"></a>`ensure`
Data type: `Any` Data type: `Any`
@@ -228,7 +265,7 @@ Install or remove the package.
Default value: `'present'` Default value: `'present'`
##### `version` ##### <a name="version"></a>`version`
Data type: `Any` Data type: `Any`
@@ -236,7 +273,7 @@ Version of Java to install, e.g. '7' or '8'. Default values for major and minor
Default value: `'8'` Default value: `'8'`
##### `version_major` ##### <a name="version_major"></a>`version_major`
Data type: `Any` Data type: `Any`
@@ -244,7 +281,7 @@ Major version which should be installed, e.g. '8u101'. Must be used together wit
Default value: ``undef`` Default value: ``undef``
##### `version_minor` ##### <a name="version_minor"></a>`version_minor`
Data type: `Any` Data type: `Any`
@@ -252,7 +289,7 @@ Minor version which should be installed, e.g. 'b12'. Must be used together with
Default value: ``undef`` Default value: ``undef``
##### `java_se` ##### <a name="java_se"></a>`java_se`
Data type: `Any` Data type: `Any`
@@ -260,7 +297,7 @@ Type of Java Standard Edition to install, jdk or jre.
Default value: `'jdk'` Default value: `'jdk'`
##### `proxy_server` ##### <a name="proxy_server"></a>`proxy_server`
Data type: `Any` Data type: `Any`
@@ -268,7 +305,7 @@ Specify a proxy server, with port number if needed. ie: https://example.com:8080
Default value: ``undef`` Default value: ``undef``
##### `proxy_type` ##### <a name="proxy_type"></a>`proxy_type`
Data type: `Any` Data type: `Any`
@@ -276,7 +313,7 @@ Proxy server type (none|http|https|ftp). (passed to archive)
Default value: ``undef`` Default value: ``undef``
##### `url` ##### <a name="url"></a>`url`
Data type: `Any` Data type: `Any`
@@ -284,7 +321,7 @@ Full URL
Default value: ``undef`` Default value: ``undef``
##### `jce` ##### <a name="jce"></a>`jce`
Data type: `Any` Data type: `Any`
@@ -292,7 +329,7 @@ Install Oracles Java Cryptographic Extensions into the JRE or JDK
Default value: ``false`` Default value: ``false``
##### `jce_url` ##### <a name="jce_url"></a>`jce_url`
Data type: `Any` Data type: `Any`
@@ -300,7 +337,7 @@ Full URL to the jce zip file
Default value: ``undef`` Default value: ``undef``
##### `basedir` ##### <a name="basedir"></a>`basedir`
Data type: `Any` Data type: `Any`
@@ -309,7 +346,7 @@ Directory under which the installation will occur. If not set, defaults to
Default value: ``undef`` Default value: ``undef``
##### `manage_basedir` ##### <a name="manage_basedir"></a>`manage_basedir`
Data type: `Any` Data type: `Any`
@@ -318,7 +355,7 @@ Note: /usr/lib/jvm is managed for Debian by default, separate from this paramete
Default value: ``false`` Default value: ``false``
##### `package_type` ##### <a name="package_type"></a>`package_type`
Data type: `Any` Data type: `Any`
@@ -328,7 +365,7 @@ Optional forced package types: rpm, rpmbin, tar.gz
Default value: ``undef`` Default value: ``undef``
##### `manage_symlink` ##### <a name="manage_symlink"></a>`manage_symlink`
Data type: `Any` Data type: `Any`
@@ -336,7 +373,7 @@ Whether to manage a symlink that points to the installation directory. Defaults
Default value: ``false`` Default value: ``false``
##### `symlink_name` ##### <a name="symlink_name"></a>`symlink_name`
Data type: `Any` Data type: `Any`
@@ -344,15 +381,26 @@ The name for the optional symlink in the installation directory.
Default value: ``undef`` Default value: ``undef``
### `java::sap` ### <a name="javasap"></a>`java::sap`
Defined Type java::sap Defined Type java::sap
#### Parameters #### Parameters
The following parameters are available in the `java::sap` defined type. The following parameters are available in the `java::sap` defined type:
##### `ensure` * [`ensure`](#ensure)
* [`version`](#version)
* [`version_full`](#version_full)
* [`java`](#java)
* [`proxy_server`](#proxy_server)
* [`proxy_type`](#proxy_type)
* [`basedir`](#basedir)
* [`manage_basedir`](#manage_basedir)
* [`manage_symlink`](#manage_symlink)
* [`symlink_name`](#symlink_name)
##### <a name="ensure"></a>`ensure`
Data type: `Any` Data type: `Any`
@@ -360,7 +408,7 @@ Install or remove the package.
Default value: `'present'` Default value: `'present'`
##### `version` ##### <a name="version"></a>`version`
Data type: `Any` Data type: `Any`
@@ -368,7 +416,7 @@ Version of Java to install, e.g. '8' or '9'. Default values for full versions wi
Default value: `'8'` Default value: `'8'`
##### `version_full` ##### <a name="version_full"></a>`version_full`
Data type: `Any` Data type: `Any`
@@ -376,7 +424,7 @@ Major version which should be installed, e.g. '8.1.063' or '11.0.7'. If used, "v
Default value: ``undef`` Default value: ``undef``
##### `java` ##### <a name="java"></a>`java`
Data type: `Any` Data type: `Any`
@@ -384,7 +432,7 @@ Type of Java Edition to install, jdk or jre.
Default value: `'jdk'` Default value: `'jdk'`
##### `proxy_server` ##### <a name="proxy_server"></a>`proxy_server`
Data type: `Any` Data type: `Any`
@@ -392,7 +440,7 @@ Specify a proxy server, with port number if needed. ie: https://example.com:8080
Default value: ``undef`` Default value: ``undef``
##### `proxy_type` ##### <a name="proxy_type"></a>`proxy_type`
Data type: `Any` Data type: `Any`
@@ -400,7 +448,7 @@ Proxy server type (none|http|https|ftp). (passed to archive)
Default value: ``undef`` Default value: ``undef``
##### `basedir` ##### <a name="basedir"></a>`basedir`
Data type: `Any` Data type: `Any`
@@ -409,7 +457,7 @@ Directory under which the installation will occur. If not set, defaults to
Default value: ``undef`` Default value: ``undef``
##### `manage_basedir` ##### <a name="manage_basedir"></a>`manage_basedir`
Data type: `Any` Data type: `Any`
@@ -418,7 +466,7 @@ Note: /usr/lib/jvm is managed for Debian by default, separate from this paramete
Default value: ``true`` Default value: ``true``
##### `manage_symlink` ##### <a name="manage_symlink"></a>`manage_symlink`
Data type: `Any` Data type: `Any`
@@ -426,7 +474,7 @@ Whether to manage a symlink that points to the installation directory. Defaults
Default value: ``false`` Default value: ``false``
##### `symlink_name` ##### <a name="symlink_name"></a>`symlink_name`
Data type: `Any` Data type: `Any`

View File

@@ -1,5 +1,6 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'bundler'
require 'puppet_litmus/rake_tasks' if Bundler.rubygems.find_name('puppet_litmus').any? require 'puppet_litmus/rake_tasks' if Bundler.rubygems.find_name('puppet_litmus').any?
require 'puppetlabs_spec_helper/rake_tasks' require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet-syntax/tasks/puppet-syntax' require 'puppet-syntax/tasks/puppet-syntax'

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# Fact: java_default_home # Fact: java_default_home
# #
# Purpose: get absolute path of java system home # Purpose: get absolute path of java system home
@@ -19,7 +21,7 @@ Facter.add(:java_default_home) do
nil nil
else else
java_path = File.realpath(java_bin) java_path = File.realpath(java_bin)
java_default_home = if java_path =~ %r{/jre/} java_default_home = if %r{/jre/}.match?(java_path)
File.dirname(File.dirname(File.dirname(java_path))) File.dirname(File.dirname(File.dirname(java_path)))
else else
File.dirname(File.dirname(java_path)) File.dirname(File.dirname(java_path))

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# Fact: java_libjvm_path # Fact: java_libjvm_path
# #
# Purpose: get path to libjvm.so # Purpose: get path to libjvm.so

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# Fact: java_major_version # Fact: java_major_version
# #
# Purpose: get Java's major version # Purpose: get Java's major version

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# Fact: java_patch_level # Fact: java_patch_level
# #
# Purpose: get Java's patch level # Purpose: get Java's patch level

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# Fact: java_version # Fact: java_version
# #
# Purpose: get full java version string # Purpose: get full java version string
@@ -21,7 +23,7 @@ Facter.add(:java_version) do
# Additionally, facter versions prior to 2.0.1 only support # Additionally, facter versions prior to 2.0.1 only support
# positive matches, so this needs to be done manually in setcode. # positive matches, so this needs to be done manually in setcode.
setcode do setcode do
unless ['darwin'].include? Facter.value(:operatingsystem).downcase unless ['darwin'].include? Facter.value(:kernel).downcase
version = nil version = nil
if Facter::Util::Resolution.which('java') if Facter::Util::Resolution.which('java')
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line } Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line }
@@ -32,10 +34,10 @@ Facter.add(:java_version) do
end end
Facter.add(:java_version) do Facter.add(:java_version) do
confine operatingsystem: 'Darwin' confine kernel: 'Darwin'
has_weight 100 has_weight 100
setcode do setcode do
unless %r{Unable to find any JVMs matching version} =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1') unless Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1').include?('Unable to find any JVMs matching version')
version = nil version = nil
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line } Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line }
version version

View File

@@ -1,6 +1,6 @@
{ {
"name": "puppetlabs-java", "name": "puppetlabs-java",
"version": "6.5.0", "version": "7.0.0",
"author": "puppetlabs", "author": "puppetlabs",
"summary": "Installs the correct Java package on various platforms.", "summary": "Installs the correct Java package on various platforms.",
"license": "Apache-2.0", "license": "Apache-2.0",
@@ -10,7 +10,7 @@
"dependencies": [ "dependencies": [
{ {
"name": "puppetlabs/stdlib", "name": "puppetlabs/stdlib",
"version_requirement": ">= 4.13.1 < 7.0.0" "version_requirement": ">= 4.13.1 < 8.0.0"
}, },
{ {
"name": "puppet/archive", "name": "puppet/archive",
@@ -21,7 +21,6 @@
{ {
"operatingsystem": "RedHat", "operatingsystem": "RedHat",
"operatingsystemrelease": [ "operatingsystemrelease": [
"5",
"6", "6",
"7", "7",
"8" "8"
@@ -30,7 +29,6 @@
{ {
"operatingsystem": "CentOS", "operatingsystem": "CentOS",
"operatingsystemrelease": [ "operatingsystemrelease": [
"5",
"6", "6",
"7", "7",
"8" "8"
@@ -69,7 +67,6 @@
{ {
"operatingsystem": "SLES", "operatingsystem": "SLES",
"operatingsystemrelease": [ "operatingsystemrelease": [
"11",
"12", "12",
"15" "15"
] ]
@@ -78,10 +75,10 @@
"requirements": [ "requirements": [
{ {
"name": "puppet", "name": "puppet",
"version_requirement": ">= 5.5.10 < 8.0.0" "version_requirement": ">= 6.0.0 < 8.0.0"
} }
], ],
"template-url": "https://github.com/puppetlabs/pdk-templates#main", "template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
"template-ref": "heads/main-0-g5afcd3d", "template-ref": "heads/main-0-g2bf2de6",
"pdk-version": "1.18.1" "pdk-version": "1.18.1"
} }

View File

@@ -14,12 +14,6 @@ travis_deb:
- litmusimage/debian:8 - litmusimage/debian:8
- litmusimage/debian:9 - litmusimage/debian:9
- litmusimage/debian:10 - litmusimage/debian:10
travis_ub_5:
provisioner: docker
images:
- litmusimage/ubuntu:14.04
- litmusimage/ubuntu:16.04
- litmusimage/ubuntu:18.04
travis_ub_6: travis_ub_6:
provisioner: docker provisioner: docker
images: images:
@@ -37,27 +31,6 @@ travis_el8:
provisioner: docker provisioner: docker
images: images:
- litmusimage/centos:8 - litmusimage/centos:8
release_checks_5:
provisioner: abs
images:
- redhat-6-x86_64
- redhat-7-x86_64
- redhat-8-x86_64
- centos-6-x86_64
- centos-7-x86_64
- centos-8-x86_64
- oracle-6-x86_64
- oracle-7-x86_64
- scientific-6-x86_64
- scientific-7-x86_64
- debian-8-x86_64
- debian-9-x86_64
- debian-10-x86_64
- ubuntu-1404-x86_64
- ubuntu-1604-x86_64
- ubuntu-1804-x86_64
- sles-12-x86_64
- sles-15-x86_64
release_checks_6: release_checks_6:
provisioner: abs provisioner: abs
images: images:

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper_acceptance' require 'spec_helper_acceptance'
require 'pry' require 'pry'
@@ -187,13 +189,14 @@ install_sap_jdk_jre = <<EOL
} }
EOL EOL
context 'installing java jre', unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do describe 'installing' do
context 'installing java jre' do
it 'installs jre' do it 'installs jre' do
idempotent_apply(java_class_jre) idempotent_apply(java_class_jre)
end end
end end
context 'installing java jdk', unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do context 'installing java jdk' do
it 'installs jdk' do it 'installs jdk' do
idempotent_apply(java_class) idempotent_apply(java_class)
end end
@@ -278,3 +281,4 @@ context 'java::adopt', if: sap_enabled && ['Sles'].include?(os[:family]), unless
idempotent_apply(install_sap_jdk_jre) idempotent_apply(install_sap_jdk_jre)
end end
end end
end

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
describe 'java', type: :class do describe 'java', type: :class do

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
describe 'java::adopt', type: :define do describe 'java::adopt', type: :define do

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
describe 'java::download', type: :define do describe 'java::download', type: :define do

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
describe 'java::sap', type: :define do describe 'java::sap', type: :define do

View File

@@ -1 +1,3 @@
# frozen_string_literal: true
UNSUPPORTED_PLATFORMS = ['darwin', 'windows'].freeze UNSUPPORTED_PLATFORMS = ['darwin', 'windows'].freeze

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
if ENV['COVERAGE'] == 'yes' if ENV['COVERAGE'] == 'yes'
require 'simplecov' require 'simplecov'
require 'simplecov-console' require 'simplecov-console'

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
java_7_path = '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java' java_7_path = '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
describe 'java_libjvm_path' do describe 'java_libjvm_path' do

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
describe 'java_major_version' do describe 'java_major_version' do

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
describe 'java_patch_level' do describe 'java_patch_level' do

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'spec_helper' require 'spec_helper'
openjdk_7_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\ openjdk_7_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
@@ -30,9 +32,9 @@ describe 'java_version' do
end end
context 'when on Darwin' do context 'when on Darwin' do
before(:each) do before(:each) do
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin') allow(Facter.fact(:kernel)).to receive(:value).and_return('Darwin')
end end
let(:facts) { { operatingsystem: 'Darwin' } } let(:facts) { { kernel: 'Darwin' } }
it do it do
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').and_return('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home') expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').and_return('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home')
@@ -69,9 +71,9 @@ describe 'java_version' do
end end
context 'when on Darwin' do context 'when on Darwin' do
before(:each) do before(:each) do
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin') allow(Facter.fact(:kernel)).to receive(:value).and_return('Darwin')
end end
let(:facts) { { operatingsystem: 'Darwin' } } let(:facts) { { kernel: 'Darwin' } }
it do it do
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').at_least(1).and_return('Unable to find any JVMs matching version "(null)".') expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').at_least(1).and_return('Unable to find any JVMs matching version "(null)".')