diff --git a/.github/workflows/reports.yml b/.github/workflows/reports.yml deleted file mode 100644 index 2d37ac2..0000000 --- a/.github/workflows/reports.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: reports - -on: - workflow_run: - workflows: ["tests"] - types: - - completed - -permissions: - contents: read - actions: read - checks: write - -jobs: - report: - name: Report test results - - runs-on: ubuntu-latest - - steps: - - uses: dorny/test-reporter@v1 - with: - name: rspec - path: spec/reports/*.json - artifact: test-results - reporter: rspec-json - - coverage: - name: Report code coverage - runs-on: ubuntu-latest - - steps: - - uses: actions/download-artifact@v4 - with: - name: code-coverage - path: coverage - run-id: ${{ github.event.workflow_run.id }} - - - uses: paambaati/codeclimate-action@v6 - env: - CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} diff --git a/.github/workflows/test-results.yml b/.github/workflows/test-results.yml new file mode 100644 index 0000000..0f97f84 --- /dev/null +++ b/.github/workflows/test-results.yml @@ -0,0 +1,26 @@ +name: test-results + +on: + workflow_run: + workflows: ["tests"] + types: + - completed + +permissions: + contents: read + actions: read + checks: write + +jobs: + report: + name: Report test results + + runs-on: ubuntu-latest + + steps: + - uses: dorny/test-reporter@v1 + with: + name: rspec + path: "*.json" + artifact: test-results + reporter: rspec-json diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 02ed428..2c2cf91 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,57 +11,55 @@ permissions: contents: read jobs: - test-matrix: - name: Test against Ruby ${{ matrix.ruby }} and Rails ${{ matrix.rails }} + test-current: + name: Run specs against current Ruby and Rails runs-on: ubuntu-latest - strategy: - matrix: - ruby: ['3.0', '3.1', '3.2', '3.3'] - rails: ['6.1', '7.0', '7.1'] - - env: - BUNDLE_LOCKFILE: rails-${{ matrix.rails }} - steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: - ruby-version: ${{ matrix.ruby }} rubygems: latest bundler-cache: true - - name: Run specs + - name: Run tests and upload code coverage to Code Climate + uses: paambaati/codeclimate-action@v6 env: CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} - run: bin/rspec --no-profile + with: + coverageCommand: bin/rspec --format json --out spec/reports/rspec.json - test-current: - name: Run specs against current Ruby and Rails - needs: test-matrix + - name: Upload test results + uses: actions/upload-artifact@v4 + if: success() || failure() + with: + name: test-results + path: spec/reports/rspec.json + + test-matrix: + name: Test against Ruby ${{ matrix.ruby }} and Rails ${{ matrix.rails }} + needs: test-current runs-on: ubuntu-latest + strategy: + matrix: + ruby: ['3.0', '3.1', '3.2', '3.3'] + rails: ['6.1', '7.0', '7.1'] + + env: + BUNDLE_LOCKFILE: rails-${{ matrix.rails }} + steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: + ruby-version: ${{ matrix.ruby }} rubygems: latest bundler-cache: true - - run: bin/rspec --format json --out spec/reports/rspec.json - - - name: Upload test reports - uses: actions/upload-artifact@v4 - with: - name: test-results - path: spec/reports - - - name: Upload code coverage - uses: actions/upload-artifact@v4 - with: - name: code-coverage - path: coverage + - name: Run specs + run: bin/rspec --no-profile