--- name: Test on: [push, pull_request] jobs: ruby: name: Ruby ${{ matrix.ruby }} / Rack ${{ matrix.rack }} ${{ matrix.rubyopt }} timeout-minutes: 15 strategy: fail-fast: false matrix: os: ["ubuntu-latest"] ruby: ["ruby-head", "3.3", "3.2", "3.1", "3.0", "2.7", "2.6"] rubyopt: [""] rack: ["~> 3.1"] include: - ruby: "3.3" rubyopt: "--enable-frozen-string-literal" rack: "~> 3.1" - ruby: "3.3" rack: "~> 3.0.0" - ruby: "3.3" rack: "~> 2.0" env: RACK_VERSION: "${{ matrix.rack }}" RUBYOPT: "${{ matrix.rubyopt }}" runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v4 - name: Set up Ruby ${{ matrix.ruby }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Install packages run: sudo apt-get install -y ragel socat netcat - name: Tests Rack ${{ matrix.rack }} ${{ matrix.rubyopt }} run: bundle exec rake - name: Ensure ragel output is up-to-date run: git diff --exit-code