Skip to content

⬆️ kettle-family v1.2.55 #3

⬆️ kettle-family v1.2.55

⬆️ kettle-family v1.2.55 #3

Workflow file for this run

# Targets enabled evergreen Ruby engines and tests against the HEAD of runtime dependencies
name: Runtime Deps @ HEAD
permissions:
contents: read
env:
K_SOUP_COV_DO: false
on:
push:
branches:
- 'main'
- '*-stable'
tags:
- '!*' # Do not execute on tags
pull_request:
branches:
- '*'
# Allow manually triggering the workflow.
workflow_dispatch:
# Cancels all previous workflow runs for the same branch that have not yet completed.
concurrency:
# The concurrency group contains the workflow name and the branch name.
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
jobs:
ruby:
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}
strategy:
fail-fast: true
matrix:
include:
# Ruby 3.4
- ruby: "ruby"
appraisal: "dep-heads"
exec_cmd: "kettle-test"
# Run directly from the generated appraisal Gemfile so setup-ruby
# does not bootstrap Appraisal.root.gemfile against dependency
# sources before this dep-heads appraisal is selected.
# This makes gemfiles/dep_heads.gemfile required checked-in output
# for repositories using this generated workflow.
bundle_gemfile: "gemfiles/dep_heads.gemfile"
direct_bundle: true
rubygems: latest
bundler: latest
steps:
- name: Checkout
if: ${{ !env.ACT }}
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Setup Ruby & RubyGems
if: ${{ !env.ACT }}
uses: appraisal-rb/setup-ruby-flash@b22cb587431e9611d9e0a624a43872e2bbfbcd66 # v2.0
with:
ruby-version: ${{ matrix.ruby }}
rubygems: ${{ matrix.rubygems }}
bundler: ${{ matrix.bundler }}
bundler-cache: ${{ matrix.ruby != 'jruby' }}
manual-compatibility-bundle: true
gem-install-retries: 7
# Direct appraisal Gemfiles can contain Bundler GIT/PATH lockfile
# sections that rv clean-install does not currently parse.
use-setup-ruby: "3.2 3.3 3.4 4.0"
- name: Prepare engine-specific lockfile
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
run: |
BUNDLE_LOCKFILE="${RUNNER_TEMP}/kettle-jem-lockfiles/${{ matrix.appraisal }}-${{ matrix.ruby }}.lock"
echo "BUNDLE_LOCKFILE=${BUNDLE_LOCKFILE}" >> "$GITHUB_ENV"
mkdir -p "$(dirname "$BUNDLE_LOCKFILE")"
if [ "${{ matrix.ruby }}" = "jruby" ]; then
bundle lock --lockfile="$BUNDLE_LOCKFILE" --add-platform=universal-java --update
fi
- name: Bundle install
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
run: bundle install --jobs 4
- name: Restore RSpec status log
if: "${{!env.ACT}}"
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: .rspec_status
key: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
restore-keys: |
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
if: ${{ !env.ACT }}
run: bundle exec ${{ matrix.exec_cmd }}
truffleruby:
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release'))"
name: Specs truffleruby@dep-heads
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
env:
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}
strategy:
fail-fast: true
matrix:
include:
- ruby: "truffleruby"
appraisal: "dep-heads"
exec_cmd: "kettle-test"
# Run directly from the generated appraisal Gemfile so setup-ruby
# does not bootstrap Appraisal.root.gemfile against dependency
# sources before this dep-heads appraisal is selected.
# This makes gemfiles/dep_heads.gemfile required checked-in output
# for repositories using this generated workflow.
bundle_gemfile: "gemfiles/dep_heads.gemfile"
direct_bundle: true
rubygems: latest
bundler: latest
steps:
- name: Checkout
if: ${{ !env.ACT }}
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Setup Ruby & RubyGems
if: ${{ !env.ACT }}
uses: appraisal-rb/setup-ruby-flash@b22cb587431e9611d9e0a624a43872e2bbfbcd66 # v2.0
with:
ruby-version: ${{ matrix.ruby }}
rubygems: ${{ matrix.rubygems }}
bundler: ${{ matrix.bundler }}
bundler-cache: ${{ matrix.ruby != 'jruby' }}
manual-compatibility-bundle: true
gem-install-retries: 7
# Direct appraisal Gemfiles can contain Bundler GIT/PATH lockfile
# sections that rv clean-install does not currently parse.
use-setup-ruby: "3.2 3.3 3.4 4.0"
- name: Prepare engine-specific lockfile
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
run: |
BUNDLE_LOCKFILE="${RUNNER_TEMP}/kettle-jem-lockfiles/${{ matrix.appraisal }}-${{ matrix.ruby }}.lock"
echo "BUNDLE_LOCKFILE=${BUNDLE_LOCKFILE}" >> "$GITHUB_ENV"
mkdir -p "$(dirname "$BUNDLE_LOCKFILE")"
if [ "${{ matrix.ruby }}" = "jruby" ]; then
bundle lock --lockfile="$BUNDLE_LOCKFILE" --add-platform=universal-java --update
fi
- name: Bundle install
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
run: bundle install --jobs 4
- name: Restore RSpec status log
if: "${{!env.ACT}}"
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: .rspec_status
key: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
restore-keys: |
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
if: ${{ !env.ACT }}
run: bundle exec ${{ matrix.exec_cmd }}
jruby:
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'jruby/') || startsWith(github.head_ref, 'feature/release'))"
name: Specs jruby@dep-heads
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
env:
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}
strategy:
fail-fast: true
matrix:
include:
- ruby: "jruby"
appraisal: "dep-heads"
exec_cmd: "kettle-test"
# Run directly from the generated appraisal Gemfile so setup-ruby
# does not bootstrap Appraisal.root.gemfile against dependency
# sources before this dep-heads appraisal is selected.
# This makes gemfiles/dep_heads.gemfile required checked-in output
# for repositories using this generated workflow.
bundle_gemfile: "gemfiles/dep_heads.gemfile"
direct_bundle: true
rubygems: default
bundler: default
experimental: true
steps:
- name: Checkout
if: ${{ !env.ACT }}
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Setup Ruby & RubyGems
if: ${{ !env.ACT }}
uses: appraisal-rb/setup-ruby-flash@b22cb587431e9611d9e0a624a43872e2bbfbcd66 # v2.0
with:
ruby-version: ${{ matrix.ruby }}
rubygems: ${{ matrix.rubygems }}
bundler: ${{ matrix.bundler }}
bundler-cache: ${{ matrix.ruby != 'jruby' }}
manual-compatibility-bundle: true
gem-install-retries: 7
# Direct appraisal Gemfiles can contain Bundler GIT/PATH lockfile
# sections that rv clean-install does not currently parse.
use-setup-ruby: "3.2 3.3 3.4 4.0"
- name: Prepare engine-specific lockfile
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
run: |
BUNDLE_LOCKFILE="${RUNNER_TEMP}/kettle-jem-lockfiles/${{ matrix.appraisal }}-${{ matrix.ruby }}.lock"
echo "BUNDLE_LOCKFILE=${BUNDLE_LOCKFILE}" >> "$GITHUB_ENV"
mkdir -p "$(dirname "$BUNDLE_LOCKFILE")"
if [ "${{ matrix.ruby }}" = "jruby" ]; then
bundle lock --lockfile="$BUNDLE_LOCKFILE" --add-platform=universal-java --update
fi
- name: Bundle install
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
run: bundle install --jobs 4
- name: Restore RSpec status log
if: "${{!env.ACT}}"
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: .rspec_status
key: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
restore-keys: |
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
if: ${{ !env.ACT }}
run: bundle exec ${{ matrix.exec_cmd }}