From aa79efdcd7c22e86fd9a229031344562724d529c Mon Sep 17 00:00:00 2001 From: lnemsick-simp Date: Thu, 8 Nov 2018 11:12:46 -0500 Subject: [PATCH] (SIMP-5585) Update static assets (#20) - Update static assets - Update badges and contribution guide URL in README.md SIMP-5585 #comment pupmod-simp-site --- .gitlab-ci.yml | 340 ++++++++++++++++++++++++------------------------- .ruby-version | 2 +- .travis.yml | 69 +++++++--- CHANGELOG | 3 + Gemfile | 15 +-- README.md | 12 +- 6 files changed, 232 insertions(+), 209 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 70335d1..4f38024 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,214 +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 2016.4 4.7 2.1.9 2018-10 (LTS) -# SIMP6.0.0 4.8 2.1.9 TBD -# 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 - # 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[@]}") - - -.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.7 for PE 2016.4 LTS Support (EOL: 2018-10-21) -# See: https://puppet.com/misc/puppet-enterprise-lifecycle -# -------------------------------------- -pup4_7-validation: - stage: validation - tags: - - docker - image: ruby:2.1 - variables: - PUPPET_VERSION: '~> 4.7.0' - <<: *cache_bundler - <<: *setup_bundler_env - <<: *validation_checks +# Puppet Versions +#----------------------------------------------------------------------- -pup4_7-unit: - stage: unit - tags: - - docker - image: ruby:2.1 +.pup_4: &pup_4 + image: 'ruby:2.4' variables: - PUPPET_VERSION: '~> 4.7.0' - <<: *cache_bundler - <<: *setup_bundler_env - <<: *spec_tests - + PUPPET_VERSION: '~> 4.0' + MATRIX_RUBY_VERSION: '2.1' -# Puppet 4.8 for SIMP 6.0 + 6.1 support -# -------------------------------------- -pup4_8-validation: - stage: validation - tags: - - docker - image: ruby:2.1 +.pup_4_10: &pup_4_10 + image: 'ruby:2.1' variables: - PUPPET_VERSION: '~> 4.8.0' - <<: *cache_bundler - <<: *setup_bundler_env - <<: *validation_checks + PUPPET_VERSION: '~> 4.10.4' + MATRIX_RUBY_VERSION: '2.1' -pup4_8-unit: - stage: unit - tags: - - docker - image: ruby:2.1 +.pup_5: &pup_5 + image: 'ruby:2.4' variables: - PUPPET_VERSION: '~> 4.8.0' - <<: *cache_bundler - <<: *setup_bundler_env - <<: *spec_tests + PUPPET_VERSION: '~> 5.0' + BEAKER_PUPPET_COLLECTION: 'puppet5' + MATRIX_RUBY_VERSION: '2.4' +.pup_5_3: &pup_5_3 + image: 'ruby:2.4' + variables: + PUPPET_VERSION: '~> 5.3.0' + BEAKER_PUPPET_COLLECTION: 'puppet5' + MATRIX_RUBY_VERSION: '2.4' -# 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_5_5_7: &pup_5_5_7 + image: 'ruby:2.4' variables: - PUPPET_VERSION: '~> 4.10.0' - <<: *cache_bundler - <<: *setup_bundler_env - <<: *validation_checks + PUPPET_VERSION: '5.5.7' + BEAKER_PUPPET_COLLECTION: 'puppet5' + MATRIX_RUBY_VERSION: '2.4' -pup4_10-unit: - stage: unit - tags: - - docker - image: ruby:2.1 +.pup_6: &pup_6 + allow_failure: true + image: 'ruby:2.5' variables: - PUPPET_VERSION: '~> 4.10.0' - <<: *cache_bundler - <<: *setup_bundler_env - <<: *spec_tests + PUPPET_VERSION: '~> 6.0' + BEAKER_PUPPET_COLLECTION: 'puppet6' + MATRIX_RUBY_VERSION: '2.5' -# 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 - variables: - PUPPET_VERSION: '~> 5.3.0' - <<: *cache_bundler - <<: *setup_bundler_env - <<: *validation_checks +# Testing Environments +#----------------------------------------------------------------------- -pup5_3-unit: - stage: unit - tags: - - docker - image: ruby:2.4 - variables: - PUPPET_VERSION: '~> 5.3.0' - <<: *cache_bundler +.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' -# 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 - variables: - PUPPET_VERSION: '~> 5.5.0' - <<: *cache_bundler +.unit_tests: &unit_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 spec' + +.acceptance_base: &acceptance_base + stage: 'acceptance' + tags: ['beaker'] <<: *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 + +.compliance_base: &compliance_base + stage: 'compliance' + 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 + +# Pipeline / testing matrix +#======================================================================= + +sanity_checks: + <<: *pup_5 <<: *setup_bundler_env - <<: *spec_tests - allow_failure: true + 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. +# +# See: https://simp-project.atlassian.net/browse/SIMP-5632) diff --git a/.ruby-version b/.ruby-version index b88e500..79a6144 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.1.9 \ No newline at end of file +2.4.4 diff --git a/.travis.yml b/.travis.yml index f2634a3..dfaecdf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,31 @@ # The testing matrix considers ruby/puppet versions supported by SIMP and PE: +# +# 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/2018.1/overview/getting_support_for_pe.html # ------------------------------------------------------------------------------ -# release pup ruby eol -# PE 2016.4 4.7 2.1.9 TBD (LTS) -# PE 2016.5 4.8 2.1.9 2017-10-31 -# SIMP6.0.0 4.8 2.1.9 TBD -# PE 2017.1 4.9 2.1.9 2017-10-31 -# PE 2017.2 4.10 2.1.9 TBD +# Release Puppet Ruby EOL +# SIMP 6.2 4.10 2.1.9 TBD +# PE 2016.4 4.10 2.1.9 2018-12-31 (LTS) +# PE 2017.3 5.3 2.4.4 2018-12-31 +# SIMP 6.3 5.5 2.4.4 TBD*** +# PE 2018.1 5.5 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 + --- language: ruby cache: bundler sudo: false +stages: + - check + - spec + - name: deploy + if: 'fork = false AND tag = true' + bundler_args: --without development system_tests --path .vendor notifications: @@ -24,52 +39,65 @@ addons: before_install: - rm -f Gemfile.lock +global: + - STRICT_VARIABLES=yes + jobs: + allow_failures: + - name: 'Latest Puppet 6.x (allowed to fail)' + include: - stage: check - rvm: 2.4.1 + name: 'Syntax, style, and validation checks' + rvm: 2.4.4 + env: PUPPET_VERSION="~> 5" script: - bundle exec rake check:dot_underscore - bundle exec rake check:test_file - - bundle exec rake lint - - bundle exec rake metadata_lint - bundle exec rake pkg:check_version + - bundle exec rake metadata_lint - bundle exec rake pkg:compare_latest_tag - bundle exec rake pkg:create_tag_changelog + - bundle exec rake lint - bundle exec puppet module build - stage: spec - rvm: 2.4.1 - env: STRICT_VARIABLES=yes TRUSTED_NODE_DATA=yes PUPPET_VERSION="~> 5.0" + name: 'Puppet 4.10 (SIMP 6.2, PE 2016.4)' + rvm: 2.1.9 + env: PUPPET_VERSION="~> 4.10.0" script: - bundle exec rake spec - stage: spec - rvm: 2.1.9 - env: STRICT_VARIABLES=yes TRUSTED_NODE_DATA=yes PUPPET_VERSION="~> 4.10.0" + name: 'Puppet 5.3 (PE 2017.3)' + rvm: 2.4.4 + env: PUPPET_VERSION="~> 5.3.0" script: - bundle exec rake spec - stage: spec - rvm: 2.1.9 - env: STRICT_VARIABLES=yes TRUSTED_NODE_DATA=yes PUPPET_VERSION="~> 4.9.2" + rvm: 2.4.4 + name: 'Puppet 5.5 (SIMP 6.3, PE 2018.1)' + env: PUPPET_VERSION="~> 5.5.0" script: - bundle exec rake spec - stage: spec - rvm: 2.1.9 - env: STRICT_VARIABLES=yes TRUSTED_NODE_DATA=yes PUPPET_VERSION="~> 4.8.2" + name: 'Latest Puppet 5.x' + rvm: 2.4.4 + env: PUPPET_VERSION="~> 5.0" script: - bundle exec rake spec - stage: spec - rvm: 2.1.9 - env: STRICT_VARIABLES=yes TRUSTED_NODE_DATA=yes PUPPET_VERSION="~> 4.7.0" + name: 'Latest Puppet 6.x (allowed to fail)' + rvm: 2.5.1 + env: PUPPET_VERSION="~> 6.0" script: - bundle exec rake spec - stage: deploy - rvm: 2.4.1 + rvm: 2.4.4 script: - true before_deploy: @@ -89,5 +117,4 @@ jobs: secure: "Pwaif6lS+s3qapv9j69MRdmtdrSiZkBBkMfpPH/5BsAsNHwUis+i9h1+nWLqrk5I6q3NwVheO+IPdpvUXnWDqNz2JTd7Gt4frc9vsVbud1VmsNJzsvLbYqNAPxIYL6Rojl2soSK93Q/r83HzGTRBM/hFZeDE+r1+8QxGFkYikMYHbXF8+g9q2YVimCf80AmjC/679SuPHu8p3PhuFp5OKxMGa93T+2OdT2pL3xQ8CgjU0cO/2d2LfdLatdpxVSgBD+/TVsEPAzlGGCK446RxzmRmXTgdO0nzGYlbC1XcbJxz9PyjRlefZW0U+wpQqErZkemU3VdN2ChKkgFa8YxZwh1Xir8XDG16wJYDVPhKGu4ij+1v0319s37R4hJjWvOPvs1hAcGU+lYDGjYPknLfbiQodl29Qb5W2G614G0/0Ee4gEzDo2m/z4VA+1MpA4Qp4/jC/6qZRrFup53uVWrpK/6bagf1DOl6VLX98Q46d74KqtqgIxzuufF6q17CpJczMxXTkFl8G5YRUAgx45LpeSXWKj+TUfak5hVljIa8Kgxluf5MSQW69Qgc8zFvy+BrFDGqvQBzgXFwlPWuzOWUY8mMLR+BshJK6mVlYujrXYL8WqO9mniVvAL8PIjc6qjWS8c7XNyjsJz0x61F6laFY63aPPTL0Bb6nSYDTGtvTd4=" on: tags: true - rvm: 2.4.1 condition: '($SKIP_FORGE_PUBLISH != true)' diff --git a/CHANGELOG b/CHANGELOG index 9e0a6c0..5b24162 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +* Wed Nov 07 2018 Liz Nemsick - 2.0.5-0 +- Update badges and contribution guide URL in README.md + * Thu Sep 13 2018 Nicholas Markowski - 2.0.5-0 - Added support for Puppet 5 diff --git a/Gemfile b/Gemfile index 2d84b37..f328fea 100644 --- a/Gemfile +++ b/Gemfile @@ -1,23 +1,20 @@ -# ------------------------------------------------------------------------------ -# NOTE: SIMP Puppet rake tasks support ruby 2.1.9 -# ------------------------------------------------------------------------------ gem_sources = ENV.fetch('GEM_SERVERS','https://rubygems.org').split(/[, ]+/) gem_sources.each { |gem_source| source gem_source } group :test do gem 'rake' - gem 'puppet', ENV.fetch('PUPPET_VERSION', '~> 4.0') + gem 'puppet', ENV.fetch('PUPPET_VERSION', '~> 5.5') gem 'rspec' - gem 'rspec-puppet', ['>= 2.6.11', '< 3.0.0'] + gem 'rspec-puppet' gem 'hiera-puppet-helper' - gem 'puppetlabs_spec_helper', '~> 2.7.0' + gem 'puppetlabs_spec_helper' gem 'metadata-json-lint' gem 'puppet-strings' gem 'puppet-lint-empty_string-check', :require => false gem 'puppet-lint-trailing_comma-check', :require => false - gem 'simp-rspec-puppet-facts', ENV.fetch('SIMP_RSPEC_PUPPET_FACTS_VERSION', '~> 2.0.0') - gem 'simp-rake-helpers', ENV.fetch('SIMP_RAKE_HELPERS_VERSION', ['>= 5.2', '< 6.0']) + gem 'simp-rspec-puppet-facts', ENV.fetch('SIMP_RSPEC_PUPPET_FACTS_VERSION', '~> 2.2') + gem 'simp-rake-helpers', ENV.fetch('SIMP_RAKE_HELPERS_VERSION', '~> 5.6') gem 'facterdb' end @@ -29,5 +26,5 @@ end group :system_tests do gem 'beaker' gem 'beaker-rspec' - gem 'simp-beaker-helpers', ENV.fetch('SIMP_BEAKER_HELPERS_VERSION', '~> 1.10') + gem 'simp-beaker-helpers', ENV.fetch('SIMP_BEAKER_HELPERS_VERSION', '~> 1.12') end diff --git a/README.md b/README.md index 942498e..25a7cb6 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,16 @@ -[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) [![Build Status](https://travis-ci.org/simp/pupmod-simp-site.svg)](https://travis-ci.org/simp/pupmod-simp-site) [![SIMP compatibility](https://img.shields.io/badge/SIMP%20compatibility-4.2.*%2F5.1.*-orange.svg)](https://img.shields.io/badge/SIMP%20compatibility-4.2.*%2F5.1.*-orange.svg) +[![License](https://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/73/badge)](https://bestpractices.coreinfrastructure.org/projects/73) +[![Puppet Forge](https://img.shields.io/puppetforge/v/simp/site.svg)](https://forge.puppetlabs.com/simp/site) +[![Puppet Forge Downloads](https://img.shields.io/puppetforge/dt/simp/site.svg)](https://forge.puppetlabs.com/simp/site) +[![Build Status](https://travis-ci.org/simp/pupmod-simp-site.svg)](https://travis-ci.org/simp/pupmod-simp-site) ## This is a SIMP module -This module is a component of the [System Integrity Management Platform](https://github.com/NationalSecurityAgency/SIMP), a compliance-management framework built on Puppet. + +This module is a component of the [System Integrity Management Platform](https://simp-project.com), +a compliance-management framework built on Puppet. If you find any issues, they can be submitted to our [JIRA](https://simp-project.atlassian.net/). -Please read our [Contribution Guide](https://simp-project.atlassian.net/wiki/display/SD/Contributing+to+SIMP) and visit our [developer wiki](https://simp-project.atlassian.net/wiki/display/SD/SIMP+Development+Home). +Please read our [Contribution Guide](http://simp-doc.readthedocs.io/en/stable/contributors_guide/index.html). # This module is empty on purpose, and is intended to contain site-specific classes.