-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
(SIMP-5585) Test assets support Puppet 5 (#30)
* Update test assets to support Puppet 5 * Update to onyxpoint OEL boxes in acceptance tests * Update badges and contribution guide URL in README.md SIMP-5585 #comment Added pup5 test assets to libvirt
- Loading branch information
1 parent
c4525fc
commit 0b913a1
Showing
10 changed files
with
300 additions
and
238 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,192 +1,239 @@ | ||
# The testing matrix considers ruby/puppet versions supported by SIMP and PE: | ||
# | ||
# https://puppet.com/docs/pe/2017.3/overview/component_versions_in_recent_pe_releases.html | ||
# https://puppet.com/docs/pe/2018.1/component_versions_in_recent_pe_releases.html | ||
# https://puppet.com/misc/puppet-enterprise-lifecycle | ||
# https://puppet.com/docs/pe/2017.3/overview/getting_support_for_pe.html#standard-releases-and-long-term-support-releases | ||
# https://puppet.com/docs/pe/2018.1/overview/getting_support_for_pe.html | ||
# ------------------------------------------------------------------------------ | ||
# release pup ruby eol | ||
# PE 2017.2 4.10 2.1.9 2018-02-21 | ||
# PE 2017.3 5.3 2.4.1 2018-07 | ||
# PE 2018.1 ??? ????? ????-?? (LTS) | ||
# Release Puppet Ruby EOL | ||
# SIMP 6.1 4.10.6 2.1.9 TBD | ||
# SIMP 6.2 4.10.12 2.1.9 TBD | ||
# PE 2016.4.15 4.10.12 2.1.9 2018-12 (LTS) | ||
# PE 2017.3.10 5.3.8 2.4.4 2018-12 (STS) | ||
# SIMP 6.3 5.5.7 2.4.4 TBD*** | ||
# PE 2018.1 5.5.6 2.4.4 2020-05 (LTS)*** | ||
# PE 2019.0 6.0 2.5.1 2019-08-31^^^ | ||
# | ||
# *** = Modules created for SIMP 6.3+ are not required to support Puppet < 5.5 | ||
# ^^^ = SIMP doesn't support 6 yet; tests are info-only and allowed to fail | ||
--- | ||
.cache_bundler: &cache_bundler | ||
stages: | ||
- 'sanity' | ||
- 'validation' | ||
- 'acceptance' | ||
- 'compliance' | ||
- 'deployment' | ||
|
||
image: 'ruby:2.4' | ||
|
||
variables: | ||
PUPPET_VERSION: 'UNDEFINED' # <- Matrixed jobs MUST override this (or fail) | ||
BUNDLER_VERSION: '1.16.1' | ||
|
||
# Force dependencies into a path the gitlab-runner user can write to. | ||
# (This avoids some failures on Runners with misconfigured ruby environments.) | ||
GEM_HOME: .vendor/gem_install | ||
BUNDLE_CACHE_PATH: .vendor/bundle | ||
BUNDLE_PATH: .vendor/bundle | ||
BUNDLE_BIN: .vendor/gem_install/bin | ||
BUNDLE_NO_PRUNE: 'true' | ||
|
||
|
||
# bundler dependencies and caching | ||
# | ||
# - Cache bundler gems between pipelines foreach Ruby version | ||
# - Try to use cached and local resources before downloading dependencies | ||
# -------------------------------------- | ||
.setup_bundler_env: &setup_bundler_env | ||
cache: | ||
untracked: true | ||
# A broad attempt at caching between runs (ala Travis CI) | ||
key: "${CI_PROJECT_NAMESPACE}__bundler" | ||
key: "${CI_PROJECT_NAMESPACE}_ruby-${MATRIX_RUBY_VERSION}_bundler" | ||
paths: | ||
- '.vendor' | ||
- 'vendor' | ||
|
||
.setup_bundler_env: &setup_bundler_env | ||
before_script: | ||
- 'echo Files in cache: $(find .vendor | wc -l) || :' | ||
- 'export GEM_HOME=.vendor/gem_install' | ||
- 'export BUNDLE_CACHE_PATH=.vendor/bundler' | ||
- 'declare GEM_BUNDLER_VER=(-v ''~> ${BUNDLER_VERSION:-1.16.0}'')' | ||
- declare GEM_INSTALL=(gem install --no-document) | ||
- declare BUNDLER_INSTALL=(bundle install --no-binstubs --jobs $(nproc) --path=.vendor "${FLAGS[@]}") | ||
- gem list -ie "${GEM_BUNDLE_VER[@]}" --silent bundler || "${GEM_INSTALL[@]}" --local "${GEM_BUNDLE_VER[@]}" bundler || "${GEM_INSTALL[@]}" "${GEM_BUNDLE_VER[@]}" bundler | ||
- 'ruby -e "puts %(Environment Variables:\n * #{ENV.keys.grep(/PUPPET|SIMP|BEAKER|MATRIX/).map{|v| %(#{v} = #{ENV[v]})}.join(%(\n * ))})"' | ||
- 'declare GEM_BUNDLER_VER=(-v "~> ${BUNDLER_VERSION:-1.16.0}")' | ||
- 'declare GEM_INSTALL_CMD=(gem install --no-document)' | ||
- 'declare BUNDLER_INSTALL_CMD=(bundle install --no-binstubs --jobs $(nproc) "${FLAGS[@]}")' | ||
- 'mkdir -p ${GEM_HOME} ${BUNDLER_BIN}' | ||
- 'gem list -ie "${GEM_BUNDLER_VER[@]}" --silent bundler || "${GEM_INSTALL_CMD[@]}" --local "${GEM_BUNDLER_VER[@]}" bundler || "${GEM_INSTALL_CMD[@]}" "${GEM_BUNDLER_VER[@]}" bundler' | ||
- 'rm -rf pkg/ || :' | ||
- bundle check || rm -f Gemfile.lock && ("${BUNDLER_INSTALL[@]}" --local || "${BUNDLER_INSTALL[@]}") | ||
|
||
- 'bundle check || rm -f Gemfile.lock && ("${BUNDLER_INSTALL_CMD[@]}" --local || "${BUNDLER_INSTALL_CMD[@]}" || bundle pristine || "${BUNDLER_INSTALL_CMD[@]}") || { echo "PIPELINE: Bundler could not install everything (see log output above)" && exit 99 ; }' | ||
|
||
.validation_checks: &validation_checks | ||
script: | ||
- bundle exec rake syntax | ||
- bundle exec rake check:dot_underscore | ||
- bundle exec rake check:test_file | ||
- bundle exec rake pkg:check_version | ||
- bundle exec rake pkg:compare_latest_tag | ||
- bundle exec rake lint | ||
- bundle exec rake clean | ||
- bundle exec puppet module build | ||
|
||
.spec_tests: &spec_tests | ||
script: | ||
- bundle exec rake spec | ||
# To avoid running a prohibitive number of tests every commit, | ||
# don't set this env var in your gitlab instance | ||
.only_with_SIMP_FULL_MATRIX: &only_with_SIMP_FULL_MATRIX | ||
only: | ||
variables: | ||
- $SIMP_FULL_MATRIX == "yes" | ||
|
||
stages: | ||
- validation | ||
- unit | ||
- acceptance | ||
- deploy | ||
# Puppet Versions | ||
#----------------------------------------------------------------------- | ||
|
||
# Puppet 4.10 for PE 2017.2 support (EOL:2018-02-21) | ||
# See: https://puppet.com/misc/puppet-enterprise-lifecycle | ||
# -------------------------------------- | ||
pup4_10-validation: | ||
stage: validation | ||
tags: | ||
- docker | ||
image: ruby:2.1 | ||
.pup_4: &pup_4 | ||
image: 'ruby:2.4' | ||
variables: | ||
PUPPET_VERSION: '~> 4.10.0' | ||
<<: *cache_bundler | ||
<<: *setup_bundler_env | ||
<<: *validation_checks | ||
PUPPET_VERSION: '~> 4.0' | ||
MATRIX_RUBY_VERSION: '2.1' | ||
|
||
pup4_10-unit: | ||
stage: unit | ||
tags: | ||
- docker | ||
image: ruby:2.1 | ||
.pup_4_10: &pup_4_10 | ||
image: 'ruby:2.1' | ||
variables: | ||
PUPPET_VERSION: '~> 4.10.0' | ||
<<: *cache_bundler | ||
<<: *setup_bundler_env | ||
<<: *spec_tests | ||
PUPPET_VERSION: '~> 4.10.4' | ||
MATRIX_RUBY_VERSION: '2.1' | ||
|
||
.pup_5: &pup_5 | ||
image: 'ruby:2.4' | ||
variables: | ||
PUPPET_VERSION: '~> 5.0' | ||
BEAKER_PUPPET_COLLECTION: 'puppet5' | ||
MATRIX_RUBY_VERSION: '2.4' | ||
|
||
# Puppet 5.3 for PE 2017.3 support (EOL: 2018-07) | ||
# See: https://puppet.com/misc/puppet-enterprise-lifecycle | ||
# -------------------------------------- | ||
pup5_3-validation: | ||
stage: validation | ||
tags: | ||
- docker | ||
image: ruby:2.4 | ||
.pup_5_3: &pup_5_3 | ||
image: 'ruby:2.4' | ||
variables: | ||
PUPPET_VERSION: '~> 5.3.0' | ||
<<: *cache_bundler | ||
<<: *setup_bundler_env | ||
<<: *validation_checks | ||
BEAKER_PUPPET_COLLECTION: 'puppet5' | ||
MATRIX_RUBY_VERSION: '2.4' | ||
|
||
pup5_3-unit: | ||
stage: unit | ||
tags: | ||
- docker | ||
image: ruby:2.4 | ||
.pup_5_5_7: &pup_5_5_7 | ||
image: 'ruby:2.4' | ||
variables: | ||
PUPPET_VERSION: '~> 5.3.0' | ||
<<: *cache_bundler | ||
PUPPET_VERSION: '5.5.7' | ||
BEAKER_PUPPET_COLLECTION: 'puppet5' | ||
MATRIX_RUBY_VERSION: '2.4' | ||
|
||
.pup_6: &pup_6 | ||
allow_failure: true | ||
image: 'ruby:2.5' | ||
variables: | ||
PUPPET_VERSION: '~> 6.0' | ||
BEAKER_PUPPET_COLLECTION: 'puppet6' | ||
MATRIX_RUBY_VERSION: '2.5' | ||
|
||
|
||
# Testing Environments | ||
#----------------------------------------------------------------------- | ||
|
||
.lint_tests: &lint_tests | ||
stage: 'validation' | ||
tags: ['docker'] | ||
<<: *setup_bundler_env | ||
<<: *spec_tests | ||
script: | ||
- 'bundle exec rake syntax' | ||
- 'bundle exec rake lint' | ||
- 'bundle exec rake metadata_lint' | ||
|
||
.unit_tests: &unit_tests | ||
stage: 'validation' | ||
tags: ['docker'] | ||
<<: *setup_bundler_env | ||
script: | ||
- 'bundle exec rake spec' | ||
|
||
# Keep an eye on the latest puppet 5 | ||
# ---------------------------------- | ||
pup5_latest-validation: | ||
stage: validation | ||
tags: | ||
- docker | ||
image: ruby:2.4 | ||
variables: | ||
PUPPET_VERSION: '~> 5.0' | ||
<<: *cache_bundler | ||
.acceptance_base: &acceptance_base | ||
stage: 'acceptance' | ||
tags: ['beaker'] | ||
<<: *setup_bundler_env | ||
<<: *validation_checks | ||
|
||
pup5_latest-unit: | ||
stage: unit | ||
tags: | ||
- docker | ||
image: ruby:2.4 | ||
variables: | ||
PUPPET_VERSION: '~> 5.0' | ||
<<: *cache_bundler | ||
.compliance_base: &compliance_base | ||
stage: 'compliance' | ||
tags: ['beaker'] | ||
<<: *setup_bundler_env | ||
|
||
|
||
# Pipeline / testing matrix | ||
#======================================================================= | ||
|
||
sanity_checks: | ||
<<: *pup_5 | ||
<<: *setup_bundler_env | ||
<<: *spec_tests | ||
stage: 'sanity' | ||
tags: ['docker'] | ||
script: | ||
- 'if `hash apt-get`; then apt-get update; fi' | ||
- 'if `hash apt-get`; then apt-get install -y rpm; fi' | ||
- 'bundle exec rake check:dot_underscore' | ||
- 'bundle exec rake check:test_file' | ||
- 'bundle exec rake pkg:check_version' | ||
- 'bundle exec rake pkg:compare_latest_tag' | ||
- 'bundle exec rake pkg:create_tag_changelog' | ||
- 'bundle exec puppet module build' | ||
|
||
# Linting | ||
#----------------------------------------------------------------------- | ||
|
||
pup4-lint: | ||
<<: *pup_4 | ||
<<: *lint_tests | ||
|
||
pup5-lint: | ||
<<: *pup_5 | ||
<<: *lint_tests | ||
|
||
pup6-lint: | ||
<<: *pup_6 | ||
<<: *lint_tests | ||
|
||
# Unit Tests | ||
#----------------------------------------------------------------------- | ||
|
||
pup5-unit: | ||
<<: *pup_5 | ||
<<: *unit_tests | ||
|
||
pup5.3-unit: | ||
<<: *pup_5_3 | ||
<<: *unit_tests | ||
|
||
pup5.5.7-unit: | ||
<<: *pup_5_5_7 | ||
<<: *unit_tests | ||
|
||
pup4.10-unit: | ||
<<: *pup_4_10 | ||
<<: *unit_tests | ||
|
||
pup6-unit: | ||
<<: *pup_6 | ||
<<: *unit_tests | ||
|
||
# Acceptance tests | ||
# ============================================================================== | ||
default-acceptance: | ||
stage: acceptance | ||
tags: | ||
- beaker | ||
<<: *cache_bundler | ||
<<: *setup_bundler_env | ||
variables: | ||
PUPPET_VERSION: '~> 4.10.0' | ||
|
||
pup4.10: | ||
<<: *pup_4_10 | ||
<<: *acceptance_base | ||
script: | ||
- bundle exec rake spec_clean | ||
- bundle exec rake beaker:suites[default] | ||
|
||
fips-acceptance: | ||
stage: acceptance | ||
tags: | ||
- beaker | ||
<<: *cache_bundler | ||
<<: *setup_bundler_env | ||
variables: | ||
PUPPET_VERSION: '~> 4.10.0' | ||
BEAKER_fips: 'yes' | ||
- 'bundle exec rake beaker:suites' | ||
|
||
pup4.10-fips: | ||
<<: *pup_4_10 | ||
<<: *acceptance_base | ||
<<: *only_with_SIMP_FULL_MATRIX | ||
script: | ||
- bundle exec rake spec_clean | ||
- bundle exec rake beaker:suites[default] | ||
|
||
acceptance-puppet5-default: | ||
stage: acceptance | ||
tags: | ||
- beaker | ||
<<: *cache_bundler | ||
<<: *setup_bundler_env | ||
- 'BEAKER_fips=yes bundle exec rake beaker:suites' | ||
|
||
pup5.5.7: | ||
<<: *pup_5_5_7 | ||
<<: *acceptance_base | ||
script: | ||
- bundle exec rake spec_clean | ||
- bundle exec rake beaker:suites[default,puppet5] | ||
|
||
acceptance-fips-puppet5-default: | ||
stage: acceptance | ||
tags: | ||
- beaker | ||
<<: *cache_bundler | ||
<<: *setup_bundler_env | ||
variables: | ||
BEAKER_fips: 'yes' | ||
- 'bundle exec rake beaker:suites' | ||
|
||
pup5.5.7-fips: | ||
<<: *pup_5_5_7 | ||
<<: *acceptance_base | ||
script: | ||
- bundle exec rake spec_clean | ||
- bundle exec rake beaker:suites[default,puppet5] | ||
|
||
acceptance-oel-puppet5-default: | ||
stage: acceptance | ||
tags: | ||
- beaker | ||
<<: *cache_bundler | ||
<<: *setup_bundler_env | ||
variables: | ||
PUPPET_VERSION: '~> 5.4' | ||
- 'BEAKER_fips=yes bundle exec rake beaker:suites' | ||
|
||
pup5.5.7-oel: | ||
<<: *pup_5_5_7 | ||
<<: *acceptance_base | ||
script: | ||
- 'bundle exec rake beaker:suites[default,oel]' | ||
|
||
pup5.5.7-oel-fips: | ||
<<: *pup_5_5_7 | ||
<<: *acceptance_base | ||
<<: *only_with_SIMP_FULL_MATRIX | ||
script: | ||
- bundle exec rake spec_clean | ||
- bundle exec rake beaker:suites[default,oel_p5] | ||
- 'BEAKER_fips=yes bundle exec rake beaker:suites[default,oel]' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
2.1.9 | ||
2.4.4 |
Oops, something went wrong.