Skip to content

Build(deps): Bump dita-ot/dita-ot-action from 4.3.5 to 4.4 #928

Build(deps): Bump dita-ot/dita-ot-action from 4.3.5 to 4.4

Build(deps): Bump dita-ot/dita-ot-action from 4.3.5 to 4.4 #928

Workflow file for this run

---
name: Tests
on:
pull_request: {}
push:
branches:
- main
permissions:
contents: read
# those variables are used by the majority of jobs and we don't want to repeat them in each job
env:
BOLT_WINRM_USER: roddypiper
BOLT_WINRM_HOST: localhost
BOLT_WINRM_PORT: 5985
BOLT_WINRM_SSL_PORT: 5986
BOLT_WINRM_SMB_PORT: 445
jobs:
rubocop_and_matrix:
runs-on: ubuntu-24.04
outputs:
ruby: ${{ steps.ruby.outputs.versions }}
steps:
- uses: actions/checkout@v6
- name: Install Ruby ${{ matrix.ruby }}
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Run Rubocop
run: bundle exec rake rubocop
- id: ruby
uses: voxpupuli/ruby-version@v1
cache_modules_linux:
name: 'Linux: Generate module cache'
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- name: Install modules
if: steps.modules.outputs.cache-hit != 'true'
run: bundle exec r10k puppetfile install
- name: list modules
run: bundle exec puppet module list --modulepath=modules/
cache_modules_windows:
name: 'Windows: Generate module cache'
runs-on: 'windows-2025'
steps:
- uses: actions/checkout@v6
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- name: Install modules
if: steps.modules.outputs.cache-hit != 'true'
run: bundle exec r10k puppetfile install
- name: list modules
run: bundle exec puppet module list --modulepath=modules/
unit:
needs:
- rubocop_and_matrix
- cache_modules_linux
- cache_modules_windows
name: "Unit tests ${{ matrix.ruby }} ${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-2025]
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Output Ruby Environment
run: bundle env
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- name: Unit tests
run: bundle exec rake tests:unit
run-dita:
runs-on: ubuntu-24.04
steps:
- name: Initialize
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true
- name: Generate docs
run: bundle exec rake docs:all
- name: Docs test
uses: dita-ot/dita-ot-action@4.4
with:
build: dita -i documentation/bolt.ditamap -o out -f html5 --processing-mode=strict
local_transports:
name: "local transport ${{ matrix.ruby }} ${{ matrix.os }}"
needs:
- rubocop_and_matrix
- cache_modules_linux
- cache_modules_windows
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-2025]
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- if: runner.os == 'Linux'
uses: ./.github/actions/sudo_setup
- if: runner.os == 'Windows'
uses: ./.github/actions/windows_agent_setup
- if: runner.os == 'Linux'
name: Run tests
run: bundle exec rake ci:local_transport:linux
- if: runner.os == 'Windows'
name: Run tests
run: bundle exec rake ci:local_transport:windows
winrm_transport:
needs:
- rubocop_and_matrix
- cache_modules_windows
name: WinRM Transport
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- name: Configure WinRM and use Puppet's Ruby
shell: powershell
run: |
. scripts\ci.ps1
Set-ActiveRubyFromPuppet
- name: WinRM transport tests
run: bundle exec rake ci:winrm_transport
apply:
name: bolt apply
needs:
- rubocop_and_matrix
- cache_modules_linux
- cache_modules_windows
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-2025]
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- if: runner.os == 'Linux'
uses: ./.github/actions/sudo_setup
- if: runner.os == 'Windows'
uses: ./.github/actions/windows_agent_setup
- if: runner.os == 'Linux'
name: Run tests
run: bundle exec rake ci:apply:linux
- name: Show tasks
run: bundle exec bolt task show
- if: runner.os == 'Windows'
name: Run tests
run: bundle exec rake ci:apply:windows
boltspec:
name: BoltSpec
needs:
- rubocop_and_matrix
- cache_modules_windows
- cache_modules_linux
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-2025]
# currently fails on Ruby 3.4
#ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
ruby: ['3.2', '3.3']
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- if: runner.os == 'Linux'
uses: ./.github/actions/docker_setup
- if: runner.os == 'Windows'
uses: ./.github/actions/windows_agentless_setup
- name: Run tests
if: runner.os == 'Windows'
run: bundle exec rake ci:boltspec:windows
- name: Run tests
if: runner.os == 'Linux'
run: bundle exec rake ci:boltspec:linux
check_dependencies:
name: Check mod deps
needs:
- cache_modules_linux
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- name: Validate all module dependencies
run: bundle exec ./scripts/check_dependencies.rb
integration_windows:
needs:
- rubocop_and_matrix
- cache_modules_windows
name: Windows Integration
runs-on: windows-2025
strategy:
fail-fast: false
matrix:
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
env:
WINDOWS_AGENTS: true
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- uses: ./.github/actions/windows_agent_setup
- name: Run tests
run: bundle exec rake ci:windows:integration
agentless:
needs:
- rubocop_and_matrix
- cache_modules_windows
name: Windows Agentless
runs-on: windows-2025
strategy:
fail-fast: false
matrix:
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
env:
BOLT_WINDOWS: true
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- uses: ./.github/actions/windows_agentless_setup
- name: Run tests
run: bundle exec rake ci:windows:agentless
ssh_transport:
needs:
- rubocop_and_matrix
- cache_modules_linux
name: SSH Transport
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
ruby: ['3.2', '3.3']
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- uses: ./.github/actions/sudo_setup
- name: Run tests
run: bundle exec rake ci:ssh_transport
docker_transport:
needs:
- rubocop_and_matrix
- cache_modules_linux
name: Docker Transport
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- uses: ./.github/actions/sudo_setup
- name: Run tests
run: bundle exec rake ci:docker_transport
integration_linux:
needs:
- rubocop_and_matrix
- cache_modules_linux
name: Linux Integration
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache modules
id: modules
uses: actions/cache@v5
with:
path: modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/Puppetfile') }}
- uses: ./.github/actions/sudo_setup
- name: Run tests
run: bundle exec rake ci:linux:integration
modules_ci:
name: Test vendored Modules - ${{ matrix.runs-on }}
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
runs-on:
- ubuntu-24.04
- windows-2025
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2
bundler-cache: true
- name: Run module tests
run: bundle exec rake ci:modules
tests:
if: always()
needs:
- rubocop_and_matrix
- cache_modules_linux
- cache_modules_windows
- unit
- run-dita
- local_transports
- winrm_transport
- apply
- boltspec
- check_dependencies
- integration_windows
- agentless
- ssh_transport
- docker_transport
- integration_linux
- modules_ci
runs-on: ubuntu-24.04
name: Test suite
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}