This repository has been archived by the owner on Sep 28, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
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 (#32)
* Update test assets to support Puppet 5 * Update badges and contribution guide URL in README.md SIMP-5585 #comment Added pup5 test assets to upstart (no acceptance test) SIMP-5632 #comment Added pup5 test assets to upstart (no acceptance test)
- Loading branch information
1 parent
18c1bb6
commit eb810f4
Showing
6 changed files
with
235 additions
and
167 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,189 +1,204 @@ | ||
# 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 5.5 2.4.4 ????-?? (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 | ||
# An 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: | ||
- '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[@]}") | ||
|
||
.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 | ||
|
||
stages: | ||
- validation | ||
- unit | ||
- acceptance | ||
- deploy | ||
- '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 ; }' | ||
|
||
# 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 | ||
- $SIMP_FULL_MATRIX == "yes" | ||
|
||
# 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 | ||
# Puppet Versions | ||
#----------------------------------------------------------------------- | ||
|
||
.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 | ||
allow_failure: true | ||
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 | ||
<<: *setup_bundler_env | ||
<<: *spec_tests | ||
PUPPET_VERSION: '5.5.7' | ||
BEAKER_PUPPET_COLLECTION: 'puppet5' | ||
MATRIX_RUBY_VERSION: '2.4' | ||
|
||
# Puppet 5.5 for PE 2018.1 support (EOL: 2018-07) | ||
# See: https://puppet.com/misc/puppet-enterprise-lifecycle | ||
# -------------------------------------- | ||
pup5_5-validation: | ||
stage: validation | ||
tags: | ||
- docker | ||
image: ruby:2.4 | ||
.pup_6: &pup_6 | ||
allow_failure: true | ||
image: 'ruby:2.5' | ||
variables: | ||
PUPPET_VERSION: '~> 5.5.0' | ||
<<: *cache_bundler | ||
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 | ||
<<: *validation_checks | ||
pup5_5-unit: | ||
stage: unit | ||
tags: | ||
- docker | ||
image: ruby:2.4 | ||
variables: | ||
PUPPET_VERSION: '~> 5.5.0' | ||
<<: *cache_bundler | ||
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 | ||
<<: *spec_tests | ||
|
||
# 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 | ||
script: | ||
- 'bundle exec rake spec' | ||
|
||
.acceptance_base: &acceptance_base | ||
stage: 'acceptance' | ||
tags: ['beaker'] | ||
<<: *setup_bundler_env | ||
<<: *validation_checks | ||
allow_failure: true | ||
|
||
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 | ||
<<: *spec_tests | ||
allow_failure: true | ||
|
||
|
||
# Pipeline / testing matrix | ||
#======================================================================= | ||
|
||
## Acceptance tests | ||
## ============================================================================== | ||
#default: | ||
# stage: acceptance | ||
# tags: | ||
# - beaker | ||
# <<: *cache_bundler | ||
# <<: *setup_bundler_env | ||
# variables: | ||
# PUPPET_VERSION: '~> 4.10.0' | ||
# script: | ||
# - bundle exec rake spec_clean | ||
# - bundle exec rake beaker:suites[default] | ||
sanity_checks: | ||
<<: *pup_5 | ||
<<: *setup_bundler_env | ||
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 | ||
# ============================================================================== | ||
# This module does not have acceptance tests yet. | ||
# | ||
#default-fips: | ||
# stage: acceptance | ||
# tags: | ||
# - beaker | ||
# <<: *cache_bundler | ||
# <<: *setup_bundler_env | ||
# variables: | ||
# PUPPET_VERSION: '~> 4.10.0' | ||
# BEAKER_fips: 'yes' | ||
# script: | ||
# - bundle exec rake spec_clean | ||
# - bundle exec rake beaker:suites[default] | ||
# See: https://simp-project.atlassian.net/browse/SIMP-5632) |
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.