diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecb285f8..afd96368 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,14 +4,31 @@ on: branches: [main] pull_request: jobs: + versions: + name: Get latest versions + runs-on: ubuntu-latest + strategy: + matrix: + product: ["ruby", "rails"] + outputs: + ruby: ${{ steps.supported.outputs.ruby }} + rails: ${{ steps.supported.outputs.rails }} + steps: + - id: supported + run: | + product="${{ matrix.product }}" + data=$(curl https://endoflife.date/api/$product.json) + supported=$(echo $data | jq '[.[] | select(.eol > (now | strftime("%Y-%m-%d")))]') + echo "${product}=$(echo $supported | jq -c 'map(.latest)')" >> $GITHUB_OUTPUT test: - name: Test on Ruby ${{ matrix.ruby }} and Rails ${{ matrix.rails }} + needs: versions runs-on: ubuntu-latest + name: Test on Ruby ${{ matrix.ruby }} and Rails ${{ matrix.rails }} strategy: fail-fast: false matrix: - ruby: ['3.0', '3.1', '3.2', '3.3'] - rails: ['6.1.0', '7.0.0', '7.1.0'] + ruby: ${{ fromJSON(needs.versions.outputs.ruby) }} + rails: ${{ fromJSON(needs.versions.outputs.rails) }} env: RAILS_VERSION: ${{ matrix.rails }} steps: