HEX
Server: LiteSpeed
System: Linux premium221.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User: madepabj (2566)
PHP: 8.3.26
Disabled: NONE
Upload Files
File: //proc/self/root/opt/cpanel/ea-ruby27/src/passenger-release-6.0.27/.github/workflows/main.yml
name: Passenger CI tests

env:
  FORCE_COLOR: 1
  RUST_LOG_STYLE: always
  DEFAULT_RUBY_VERSION: 3.1
  BUNDLE_CLEAN: true
  USE_ASAN: true

on:
  push: {}

jobs:
  cxx-linux:
    name: C++ tests on Linux
    runs-on: ubuntu-24.04
    timeout-minutes: 30
    env:
      EXTRA_CFLAGS: '-fdiagnostics-color'
      EXTRA_CXXFLAGS: '-fdiagnostics-color'
      SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
      SCCACHE_AZURE_KEY_PREFIX: sccache/cxx-ubuntu
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Setup sccache
        run: ./dev/ci/setup-sccache
        timeout-minutes: 1
        env:
          ARCH_AND_OS: x86_64-unknown-linux-musl
          SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}

      - name: Setup library dependencies
        run: >
          sudo apt update &&
          sudo apt install -y libcurl4-openssl-dev

      - name: Setup misc
        run: |
          set -x
          sudo chmod 755 "$HOME"
          cp test/config.json.github-ci-linux test/config.json

      - name: Build C++ tests
        run: bundle exec drake -j4 test:cxx:build

      - name: Run C++ tests
        run: >
          sudo env
          PATH="$PATH"
          GEM_PATH="$GEM_PATH"
          ../buildout/test/cxx/main
        working-directory: test

      - name: Archive logs
        uses: actions/upload-artifact@v4
        with:
          name: cxx-test-logs-macos
          path: 'buildout/testlogs/*'
          if-no-files-found: ignore
        if: '!cancelled()'

      - name: Teardown sccache
        run: ./dev/ci/teardown-sccache
        if: '!cancelled()'

  cxx-macos:
    name: C++ tests on macOS
    runs-on: macos-14
    timeout-minutes: 30
    env:
      EXTRA_CFLAGS: '-I/opt/homebrew/opt/openssl@3/include -fcolor-diagnostics'
      EXTRA_CXXFLAGS: '-I/opt/homebrew/opt/openssl@3/include -fcolor-diagnostics'
      SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
      SCCACHE_AZURE_KEY_PREFIX: sccache/cxx-macos-14-arm
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Setup sccache
        run: ./dev/ci/setup-sccache
        timeout-minutes: 1
        env:
          ARCH_AND_OS: aarch64-apple-darwin
          SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}

      - name: Setup dependencies
        run: brew install coreutils

      - name: Setup misc
        run: |
          sudo chmod 755 "$HOME"
          sed "s|_USER_|$(whoami)|" test/config.json.github-ci-macos > test/config.json

      - name: Build C++ tests
        run: bundle exec drake -j4 test:cxx:build

      - name: Run C++ tests
        # The AbortHandler doesn't work so well on Github's macOS runners:
        # - crash-watch invocation freezes the runner, so we disable this.
        # - resuming the parent process after SIGSTOP doesn't work, so we force kill the parent.
        # - force killing the parent may not work, so we enforce a low timeout to prevent
        #   the test from haging for a long time. We enforce this primarily using the 'timeout'
        #   command from coreutils instead of Github Actions' timeout,  because the latter
        #   could put the entire job in the "skipped" state and refuse to show logs.
        timeout-minutes: 11
        run: >
          sudo env
          PATH="$PATH"
          GEM_PATH="$GEM_PATH"
          PASSENGER_DUMP_WITH_CRASH_WATCH=false
          PASSENGER_FORCE_TERMINATE_ON_ABORT=true
          gtimeout --signal KILL --verbose 600
          ../buildout/test/cxx/main
        working-directory: test

      - name: Archive logs
        uses: actions/upload-artifact@v4
        with:
          name: cxx-test-logs-macos
          path: 'buildout/testlogs/*'
          if-no-files-found: ignore
        if: '!cancelled()'

      - name: Teardown sccache
        run: ./dev/ci/teardown-sccache
        if: '!cancelled()'

  apache2:
    name: "Apache2 tests on ${{ matrix.name }}"
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: Linux
            os: ubuntu-24.04
            config_file: test/config.json.github-ci-linux
            extra_cflags: '-fdiagnostics-color'
            address_sanitizer: true
            sccache_arch_and_os: x86_64-unknown-linux-musl
            sccache_azure_key_prefix: sccache/cxx-ubuntu-24.04-x86_64
          - name: macOS
            os: macos-14
            config_file: test/config.json.github-ci-macos
            extra_cflags: '-I/opt/homebrew/opt/openssl@3/include -fcolor-diagnostics'
            # Using AddressSanitizer on dynamically loaded modules (like Apache modules)
            # requires loading Apache with the AddressSanitizer runtime using DYLD_INSERT_LIBRARIES.
            # That in turn requires disabling SIP, which is not possible on Github Actions.
            address_sanitizer: false
            sccache_arch_and_os: aarch64-apple-darwin
            sccache_azure_key_prefix: sccache/cxx-macos-14-arm
    runs-on: ${{ matrix.os }}
    env:
      EXTRA_CFLAGS: ${{ matrix.extra_cflags }}
      EXTRA_CXXFLAGS: ${{ matrix.extra_cflags }}
      USE_ASAN: ${{ matrix.address_sanitizer }}
      SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
      SCCACHE_AZURE_KEY_PREFIX: ${{ matrix.sccache_azure_key_prefix }}
      SCCACHE_CACHE_MULTIARCH: true
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - uses: actions/setup-node@v4
        with:
          node-version: 18
          cache: npm

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Setup misc
        run: |
          sudo chmod 755 "$HOME"
          sed "s|_USER_|$(whoami)|; s|_SOURCE_ROOT_|$(pwd)|" ${{ matrix.config_file }} > test/config.json

      - name: Setup Linux dependencies
        run: >
          sudo apt update &&
          sudo apt install -y libcurl4-openssl-dev apache2-dev libapr1-dev libaprutil1-dev
        if: matrix.name == 'Linux'

      - name: Setup macOS code signing
        run: |
          exec 2>&1
          set -x

          echo "$OPENSSL_CONFIG" > cert_config.cnf
          openssl req -new -newkey rsa:2048 -nodes -keyout github-ci.key -out github-ci.csr -config cert_config.cnf
          openssl x509 -req -in github-ci.csr -signkey github-ci.key -out github-ci.crt -days 3650 -extensions req_ext -extfile cert_config.cnf

          sudo security authorizationdb write com.apple.trust-settings.admin allow
          security create-keychain -p mypassword mykeychain.keychain
          security set-keychain-settings -lut 21600 mykeychain.keychain
          security unlock-keychain -p mypassword mykeychain.keychain

          security import github-ci.key -k mykeychain.keychain -A
          security set-key-partition-list -S apple-tool:,apple: -k mypassword mykeychain.keychain
          security add-trusted-cert -d -r trustRoot -k mykeychain.keychain github-ci.crt
          security list-keychain -d user -s mykeychain.keychain
        if: matrix.name == 'macOS'
        env:
          OPENSSL_CONFIG: |
            [ req ]
            default_bits = 2048
            prompt = no
            default_md = sha256
            distinguished_name = req_distinguished_name
            req_extensions = req_ext

            [ req_distinguished_name ]
            CN = Github CI

            [ req_ext ]
            keyUsage = critical, digitalSignature, keyEncipherment
            extendedKeyUsage = codeSigning

      - name: Setup hosts entries
        run: |
          echo 127.0.0.1 passenger.test | sudo tee -a /etc/hosts
          echo 127.0.0.1 1.passenger.test 2.passenger.test 3.passenger.test | sudo tee -a /etc/hosts
          echo 127.0.0.1 4.passenger.test 5.passenger.test 6.passenger.test | sudo tee -a /etc/hosts
          echo 127.0.0.1 7.passenger.test 8.passenger.test 9.passenger.test | sudo tee -a /etc/hosts

      - run: npm ci


      - name: Setup sccache
        run: ./dev/ci/setup-sccache
        timeout-minutes: 1
        env:
          ARCH_AND_OS: ${{ matrix.sccache_arch_and_os }}
          SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}

      - name: Test module installation as normal user
        run: ./bin/passenger-install-apache2-module --auto --force-colors

      - name: Teardown sccache
        run: ./dev/ci/teardown-sccache
        if: '!cancelled()'


      - name: Setup sccache as root
        run: ./dev/ci/setup-sccache
        timeout-minutes: 1
        env:
          SUDO: true
          ARCH_AND_OS: ${{ matrix.sccache_arch_and_os }}
          SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}

      - name: Test module installation as root
        run: sudo -E ./bin/passenger-install-apache2-module --auto --force-colors --no-compile

      - name: Teardown sccache as root
        run: ./dev/ci/teardown-sccache
        if: '!cancelled()'
        env:
          SUDO: true


      - name: Integration tests
        run: bundle exec rake test:integration:apache2

      - name: Archive logs
        uses: actions/upload-artifact@v4
        with:
          name: apache-test-logs-${{ matrix.os }}
          path: 'buildout/testlogs/*'
          if-no-files-found: ignore
        if: '!cancelled()'

  nginx:
    name: "Nginx tests on ${{ matrix.name }}"
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: Linux
            os: ubuntu-24.04
            config_file: test/config.json.github-ci-linux
            extra_cflags: '-fdiagnostics-color'
            sccache_arch_and_os: x86_64-unknown-linux-musl
            sccache_azure_key_prefix: sccache/cxx-ubuntu-24.04-x86_64
          - name: macOS
            os: macos-14
            config_file: test/config.json.github-ci-macos
            extra_cflags: '-I/opt/homebrew/opt/openssl@3/include -fcolor-diagnostics'
            sccache_arch_and_os: aarch64-apple-darwin
            sccache_azure_key_prefix: sccache/cxx-macos-14-arm
    runs-on: ${{ matrix.os }}
    env:
      EXTRA_CFLAGS: ${{ matrix.extra_cflags }}
      EXTRA_CXXFLAGS: ${{ matrix.extra_cflags }}
      SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
      SCCACHE_AZURE_KEY_PREFIX: ${{ matrix.sccache_azure_key_prefix }}
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - uses: actions/setup-node@v4
        with:
          node-version: 18
          cache: npm

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Setup sccache
        run: ./dev/ci/setup-sccache
        timeout-minutes: 1
        env:
          ARCH_AND_OS: ${{ matrix.sccache_arch_and_os }}
          SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}

      - name: Setup misc
        run: |
          sudo chmod 755 "$HOME"
          sed "s|_USER_|$(whoami)|" ${{ matrix.config_file }} > test/config.json

      - name: Setup Linux dependencies
        run: >
          sudo apt update &&
          sudo apt install -y libcurl4-openssl-dev
        if: matrix.name == 'Linux'

      - name: Setup hosts entries
        run: |
          echo 127.0.0.1 passenger.test | sudo tee -a /etc/hosts
          echo 127.0.0.1 1.passenger.test 2.passenger.test 3.passenger.test | sudo tee -a /etc/hosts
          echo 127.0.0.1 4.passenger.test 5.passenger.test 6.passenger.test | sudo tee -a /etc/hosts
          echo 127.0.0.1 7.passenger.test 8.passenger.test 9.passenger.test | sudo tee -a /etc/hosts

      - run: npm ci

      - name: Test installation
        run: ./bin/passenger-install-nginx-module --auto --force-colors --prefix=/tmp/nginx --auto-download

      - name: Integration tests
        run: bundle exec rake test:integration:nginx

      - name: Archive logs
        uses: actions/upload-artifact@v4
        with:
          name: nginx-test-logs-${{ matrix.os }}
          path: 'buildout/testlogs/*'
          if-no-files-found: ignore
        if: '!cancelled()'

      - name: Teardown sccache
        run: ./dev/ci/teardown-sccache
        if: '!cancelled()'

  nginx_dynamic:
    name: "Nginx dynamic module tests on ${{ matrix.name }}"
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: Linux
            os: ubuntu-24.04
            extra_cflags: '-fdiagnostics-color'
            sccache_arch_and_os: x86_64-unknown-linux-musl
            sccache_azure_key_prefix: sccache/cxx-ubuntu-24.04-x86_64
          - name: macOS
            os: macos-14
            extra_cflags: '-I/opt/homebrew/opt/openssl@3/include -fcolor-diagnostics'
            sccache_arch_and_os: aarch64-apple-darwin
            sccache_azure_key_prefix: sccache/cxx-macos-14-arm
    runs-on: ${{ matrix.os }}
    env:
      EXTRA_CFLAGS: ${{ matrix.extra_cflags }}
      EXTRA_CXXFLAGS: ${{ matrix.extra_cflags }}
      SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
      SCCACHE_AZURE_KEY_PREFIX: ${{ matrix.sccache_azure_key_prefix }}
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Setup sccache
        run: ./dev/ci/setup-sccache
        timeout-minutes: 1
        env:
          ARCH_AND_OS: ${{ matrix.sccache_arch_and_os }}
          SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}

      - name: Setup Linux dependencies
        run: >
          sudo apt update &&
          sudo apt install -y libcurl4-openssl-dev
        if: matrix.name == 'Linux'

      - name: Setup parameters
        run: |
          TEST_DYNAMIC_WITH_NGINX_VERSION=$(ruby -r "./src/ruby_supportlib/phusion_passenger.rb" -e 'puts PhusionPassenger::PREFERRED_NGINX_VERSION')
          NGINX_ADDON_DIR=$(./bin/passenger-config --nginx-addon-dir)
          echo "TEST_DYNAMIC_WITH_NGINX_VERSION=$TEST_DYNAMIC_WITH_NGINX_VERSION" >> "$GITHUB_ENV"
          echo "NGINX_ADDON_DIR=$NGINX_ADDON_DIR" >> "$GITHUB_ENV"

      - name: Compile module
        run: bundle exec drake -j4 nginx:as_dynamic_module

      - name: Download Nginx source
        run: curl -sSLO "https://www.nginx.org/download/nginx-$TEST_DYNAMIC_WITH_NGINX_VERSION.tar.gz"

      - name: Extract Nginx source
        run: tar -xzf "nginx-$TEST_DYNAMIC_WITH_NGINX_VERSION.tar.gz"

      - name: Configure Nginx source
        run: ./configure --with-cc-opt='-Wno-error' --add-dynamic-module="$NGINX_ADDON_DIR"
        working-directory: "nginx-${{ env.TEST_DYNAMIC_WITH_NGINX_VERSION }}"

      - name: Compile Nginx with dynamic module
        run: make -j4
        working-directory: "nginx-${{ env.TEST_DYNAMIC_WITH_NGINX_VERSION }}"

      - name: Teardown sccache
        run: ./dev/ci/teardown-sccache
        if: '!cancelled()'

  standalone:
    name: "Passenger Standalone tests on ${{ matrix.name }}"
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: Linux
            os: ubuntu-24.04
            extra_cflags: '-fdiagnostics-color'
            sccache_arch_and_os: x86_64-unknown-linux-musl
            sccache_azure_key_prefix: sccache/cxx-ubuntu-24.04-x86_64
          - name: macOS
            os: macos-14
            extra_cflags: '-I/opt/homebrew/opt/openssl@3/include -fcolor-diagnostics'
            sccache_arch_and_os: aarch64-apple-darwin
            sccache_azure_key_prefix: sccache/cxx-macos-14-arm
    runs-on: ${{ matrix.os }}
    env:
      EXTRA_CFLAGS: ${{ matrix.extra_cflags }}
      EXTRA_CXXFLAGS: ${{ matrix.extra_cflags }}
      SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
      SCCACHE_AZURE_KEY_PREFIX: ${{ matrix.sccache_azure_key_prefix }}
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Setup sccache
        run: ./dev/ci/setup-sccache
        timeout-minutes: 1
        env:
          ARCH_AND_OS: ${{ matrix.sccache_arch_and_os }}
          SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}

      - name: Setup Linux dependencies
        run: >
          sudo apt update &&
          sudo apt install -y libcurl4-openssl-dev
        if: matrix.name == 'Linux'

      - name: Compile prerequisites
        run: bundle exec drake -j4 nginx

      - name: Integration test
        run: bundle exec drake -j4 test:integration:standalone

      - name: Teardown sccache
        run: ./dev/ci/teardown-sccache
        if: '!cancelled()'

  ruby:
    name: "Ruby tests on ${{ matrix.name }}"
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: Linux
            os: ubuntu-24.04
            config_file: test/config.json.github-ci-linux
            extra_cflags: '-fdiagnostics-color'
            sccache_arch_and_os: x86_64-unknown-linux-musl
            sccache_azure_key_prefix: sccache/cxx-ubuntu-24.04-x86_64
          - name: macOS
            os: macos-14
            config_file: test/config.json.github-ci-macos
            extra_cflags: '-I/opt/homebrew/opt/openssl@3/include -fcolor-diagnostics'
            sccache_arch_and_os: aarch64-apple-darwin
            sccache_azure_key_prefix: sccache/cxx-macos-14-arm
    runs-on: ${{ matrix.os }}
    env:
      EXTRA_CFLAGS: ${{ matrix.extra_cflags }}
      EXTRA_CXXFLAGS: ${{ matrix.extra_cflags }}
      SCCACHE_AZURE_BLOB_CONTAINER: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
      SCCACHE_AZURE_KEY_PREFIX: ${{ matrix.sccache_azure_key_prefix }}
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Setup sccache
        run: ./dev/ci/setup-sccache
        timeout-minutes: 1
        env:
          ARCH_AND_OS: ${{ matrix.sccache_arch_and_os }}
          SCCACHE_AZURE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}

      - name: Setup misc
        run: |
          sudo chmod 755 "$HOME"
          sed "s|_USER_|$(whoami)|" ${{ matrix.config_file }} > test/config.json

      - name: Setup Linux dependencies
        run: >
          sudo apt update &&
          sudo apt install -y libcurl4-openssl-dev
        if: matrix.name == 'Linux'

      - name: Compile
        run: bundle exec drake -j4 agent

      - name: Test
        run: bundle exec rake test:ruby

      - name: Teardown sccache
        run: ./dev/ci/teardown-sccache
        if: '!cancelled()'

  nodejs:
    name: "Node.js tests on ${{ matrix.name }}"
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: Linux
            os: ubuntu-24.04
          - name: macOS
            os: macos-14
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - uses: actions/setup-node@v4
        with:
          node-version: 18
          cache: npm

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - run: npm ci

      - name: Test
        run: bundle exec rake test:node

  homebrew_packaging:
    name: Homebrew packaging tests
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Create tarball
        run: bundle exec rake package:set_official package:tarball

      - name: Check whether formula is up-to-date
        run: >
          ./packaging/homebrew/verify-oss-formula-uptodate
          -c homebrew-core.git
          -r upstream

      - name: Modify formula
        run: >
          ./packaging/homebrew/modify-formula
          --passenger-dir .
          --formula packaging/homebrew/Formula/passenger.rb
          --tarball pkg/*.tar.gz
          --output pkg/passenger.rb

      - name: Test formula
        run: >
          ./packaging/homebrew/test-formula
          -p .
          -f pkg/passenger.rb
          -t pkg/*.tar.gz

  source_packaging:
    name: Source packaging tests
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.DEFAULT_RUBY_VERSION }}
          bundler-cache: true

      - name: Setup bundle gem path
        run: ./dev/ci/setup-bundle-gem-path

      - name: Test
        run: bundle exec rake test:source_packaging