(MAINT) test vmpooler #1004
This file contains hidden or 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
| --- | |
| name: Install test matrix | |
| on: | |
| pull_request: | |
| paths: | |
| - .github/workflows/**/* | |
| - spec/**/* | |
| - lib/**/* | |
| - tasks/**/* | |
| - functions/**/* | |
| - types/**/* | |
| - plans/**/* | |
| - hiera/**/* | |
| - manifests/**/* | |
| - templates/**/* | |
| - files/**/* | |
| - metadata.json | |
| - Rakefile | |
| - Gemfile | |
| - provision.yaml | |
| - .rspec | |
| - .rubocop.yml | |
| - .puppet-lint.rc | |
| - .fixtures.yml | |
| branches: [main] | |
| workflow_dispatch: {} | |
| jobs: | |
| test-install: | |
| name: PE ${{ matrix.version }} ${{ matrix.architecture }} on ${{ matrix.image }} | |
| runs-on: ubuntu-latest | |
| env: | |
| BOLT_GEM: true | |
| BOLT_DISABLE_ANALYTICS: true | |
| LANG: en_US.UTF-8 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| architecture: [standard-with-dr] | |
| version: [2025.6.0] | |
| image: [litmusimage/ubuntu:24.04] | |
| steps: | |
| - name: Checkout Source | |
| uses: actions/checkout@v4 | |
| - name: Activate Ruby 3.1 | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '3.1' | |
| bundler-cache: true | |
| - name: Print bundle environment | |
| if: ${{ github.repository_owner == 'puppetlabs' }} | |
| run: | | |
| echo ::group::info:bundler | |
| bundle env | |
| echo ::endgroup:: | |
| - name: Provision test cluster | |
| timeout-minutes: 15 | |
| run: | | |
| echo ::group::prepare | |
| mkdir -p $HOME/.ssh | |
| echo 'Host *' > $HOME/.ssh/config | |
| echo ' ServerAliveInterval 150' >> $HOME/.ssh/config | |
| echo ' ServerAliveCountMax 2' >> $HOME/.ssh/config | |
| bundle exec rake spec_prep | |
| echo ::endgroup:: | |
| echo ::group::provision | |
| bundle exec bolt plan run peadm_spec::provision_test_cluster \ | |
| --modulepath spec/fixtures/modules \ | |
| provider=docker \ | |
| image=${{ matrix.image }} \ | |
| architecture=${{ matrix.architecture }} \ | |
| --log-level trace | |
| echo ::endgroup:: | |
| echo ::group::list modules | |
| ls -l ./spec/fixtures/modules || true; echo | |
| echo ::endgroup:: | |
| echo ::group::update every 'ssh:' tag in ./inventory.yaml file to add 'native-ssh: true' under install_test_cluster and indent correctly | |
| sed -i -e '/ssh:/a\ native-ssh: true' ./inventory.yaml || true; echo | |
| echo ::endgroup:: | |
| echo ::group::list contents of ./inventory.yaml | |
| ls -l ./inventory.yaml || true; echo | |
| cat ./inventory.yaml || true; echo | |
| echo ::endgroup:: | |
| echo ::group::list contents of spec/docker/inventory.yaml | |
| ls -l ./spec/docker/inventory.yaml || true; echo | |
| cat ./spec/docker/inventory.yaml || true; echo | |
| echo ::endgroup:: | |
| echo ::group::info:request | |
| cat request.json || true; echo | |
| echo ::endgroup:: | |
| echo ::group::info:inventory | |
| sed -e 's/password: .*/password: "[redacted]"/' < ./inventory.yaml || true | |
| echo ::endgroup:: | |
| - name: Debug SSH connectivity | |
| run: | | |
| echo ::group::debug_ssh_connectivity | |
| # Check if containers are running | |
| docker ps | |
| # Try to connect manually to each container | |
| for container in $(docker ps --format "table {{.Names}}" | tail -n +2); do | |
| echo "Testing SSH to container: $container" | |
| timeout 30 docker exec $container systemctl status sshd || echo "SSH service check failed for $container" | |
| timeout 30 docker exec $container ps aux | grep sshd || echo "No sshd processes found in $container" | |
| done | |
| echo ::endgroup:: | |
| - name: Install PE on test cluster | |
| timeout-minutes: 120 | |
| run: | | |
| bundle exec bolt plan run peadm_spec::install_test_cluster \ | |
| --inventoryfile ./inventory.yaml \ | |
| --modulepath spec/fixtures/modules \ | |
| architecture=${{ matrix.architecture }} \ | |
| version=${{ matrix.version }} \ | |
| console_password=${{ secrets.CONSOLE_PASSWORD }} | |
| - name: Tear down test cluster | |
| if: ${{ always() }} | |
| continue-on-error: true | |
| run: |- | |
| if [ -f spec/fixtures/litmus_inventory.yaml ]; then | |
| echo ::group::tear_down | |
| bundle exec rake 'litmus:tear_down' | |
| echo ::endgroup:: | |
| echo ::group::info:request | |
| cat request.json || true; echo | |
| echo ::endgroup:: | |
| fi |