Skip to content

image VMs without fileserver #2369

image VMs without fileserver

image VMs without fileserver #2369

Workflow file for this run

name: CI
on:
push:
branches:
- production
pull_request:
jobs:
setup_tests:
name: _setup
runs-on: ubuntu-24.04-arm
outputs:
os: ${{ steps.define_matrix.outputs.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: cache fixtures
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
id: cache-fixtures
with:
path: spec/fixtures/modules
key: cache-fixtures-modules-${{ hashFiles('.fixtures.yml') }}
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
with:
bundler-cache: true
- name: Define test matrix
id: define_matrix
run: bundle exec rake supported_os >> "$GITHUB_OUTPUT"
- if: ${{ steps.cache-fixtures.outputs.cache-hit != 'true' }}
name: rake fixtures:prep
run: bundle exec rake fixtures:prep
standardrb:
name: standardrb
runs-on: ubuntu-24.04-arm
env:
BUNDLE_GEMFILE: ${{ github.workspace }}/standard.gemfile
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
with:
bundler-cache: true
- name: standardrb
run: bundle exec standardrb
validate:
name: lint
needs: setup_tests
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
with:
bundler-cache: true
# `rake test`, minus rspec
- name: rake validate:ruby
run: bundle exec rake validate:ruby
- name: rake syntax
run: bundle exec rake syntax
- name: lint metadata.json
run: bundle exec rake metadata_lint
- name: rake metadata.json
run: bundle exec rake validate:strings
- name: lint puppet syntax
run: bundle exec rake lint
# Forbid gems that we've seen show up as useless recursive dependencies,
# especially if they have a history of security vulnerabilities.
# Gems may be removed from this list if we decide to use them intentionally.
- name: Check for forbidden gems
run: |
for gem in mcp; do
if bundle list | grep -q "\b$gem\b"; then
echo "❌ Forbidden gem '$gem' found in bundle!"
exit 1
fi
done
spec:
name: "${{ matrix.os }}"
needs: setup_tests
runs-on: ubuntu-24.04-arm
strategy:
fail-fast: false
matrix:
os: ${{ fromJSON(needs.setup_tests.outputs.os) }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
with:
bundler-cache: true
- name: Restore fixtures cache
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: spec/fixtures/modules
key: cache-fixtures-modules-${{ hashFiles('.fixtures.yml') }}
- name: rake fixtures:prep
run: bundle exec rake fixtures:prep
- name: "Run SUPPORTED_OS=\"${{ matrix.os }}\" rake ci:spec"
env:
SUPPORTED_OS: ${{ matrix.os }}
run: bundle exec rake ci:spec