Updates for Ruby 3 #82
Workflow file for this run
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
# Run checks and test matrix on Pull Requests | |
# ============================================================================== | |
# | |
# The testing matrix considers ruby/puppet versions supported by SIMP and PE: | |
# ------------------------------------------------------------------------------ | |
# Release Puppet Ruby EOL | |
# PE 2021.Y 7.x 2.7 Quarterly updates | |
# PE 2023.Y 8.x 3.2 Quarterly updates | |
# | |
# https://www.puppet.com/docs/pe/latest/component_versions_in_recent_pe_releases.html | |
# https://www.puppet.com/products/puppet-enterprise/support-lifecycle | |
# https://www.puppet.com/docs/pe/latest/getting_support_for_pe | |
# ============================================================================== | |
# | |
# https://docs.github.com/en/actions/reference/events-that-trigger-workflows | |
# | |
name: PR Tests | |
on: | |
push: | |
branches: | |
# A test branch for seeing if your tests will pass in your personal fork | |
- test_me_github | |
pull_request: | |
types: [opened, reopened, synchronize] | |
jobs: | |
ruby-style: | |
if: false # TODO Modules will need: rubocop in Gemfile, .rubocop.yml | |
name: 'Ruby Style (experimental)' | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: "Install Ruby ${{matrix.puppet.ruby_version}}" | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 2.7 | |
bundler-cache: true | |
- run: | | |
bundle show | |
bundle exec rake rubocop | |
releng-checks: | |
name: 'RELENG checks' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: 'Install Ruby ${{matrix.puppet.ruby_version}}' | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 2.7 | |
bundler-cache: true | |
- name: 'Ensure executables are installed' | |
run: | | |
command -v rpm || if command -v apt-get; then sudo apt-get update; sudo apt-get install -y rpm; fi ||: | |
command -v rpm || { >&2 echo "FATAL: Cannot find executable: ''rpm''"; exit 1 ;} | |
- name: 'Tags and changelogs' | |
run: | | |
bundle exec rake pkg:check_version | |
bundle exec rake pkg:compare_latest_tag | |
bundle exec rake pkg:create_tag_changelog | |
- name: 'Validate Ruby version' | |
run: 'bundle exec rake pkg:validate_ruby_version' | |
- name: 'Test-build the RubyGem' | |
run: 'bundle exec rake pkg:gem' | |
spec-tests: | |
name: 'RSpec' | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
puppet: | |
- label: 'Puppet 7.x' | |
puppet_version: '~> 7.0' | |
ruby_version: '2.7' | |
- label: 'Puppet 8.x' | |
puppet_version: '~> 8.0' | |
ruby_version: '3.2' | |
env: | |
PUPPET_VERSION: '${{matrix.puppet.puppet_version}}' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: 'Install Ruby ${{matrix.puppet.ruby_version}}' | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{matrix.puppet.ruby_version}} | |
bundler-cache: true | |
# simp cli code uses libpwquality or cracklib to validate passwords and | |
# rsync in simp environment commands | |
- run: | | |
sudo apt-get update | |
sudo apt-get install -y rpm cracklib-runtime libicu-dev rsync | |
# simp config uses grub2-mkpasswd-pbkdf2 when encrypting a GRUB password, | |
# but the command has a different name on Ubuntu | |
- run: | | |
sudo ln -s /usr/bin/grub-mkpasswd-pbkdf2 /usr/bin/grub2-mkpasswd-pbkdf2 | |
ls -l /usr/bin | grep grub | |
# simp cli code fetches USER env variable. In the docker container USER is | |
# not available, but the process is running as root. | |
- run: 'USER=root SIMP_SKIP_NON_SIMPOS_TESTS=1 bundle exec rake spec' | |
env: | |
SKIP_COVERAGE: yes | |
# dump_contexts: | |
# name: 'Examine Context contents' | |
# runs-on: ubuntu-16.04 | |
# steps: | |
# - name: Dump contexts | |
# env: | |
# GITHUB_CONTEXT: ${{ toJson(github) }} | |
# run: echo "$GITHUB_CONTEXT" | |
# |