activescaffold/active_scaffold

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: activescaffold/active_scaffold
on:
  push:
  pull_request:
concurrency:
  group: "${{ github.ref }}"
  cancel-in-progress: true
jobs:
  lint-brakeman:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    env:
      BUNDLE_CLEAN: true
      BUNDLE_DEPLOYMENT: true
      BUNDLE_WITHOUT: 'default deployment development production test performance'
    steps:
      - uses: actions/checkout@v4.1.0
        with:
          lfs: true
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.3'
          bundler-cache: true
      - run: bundle exec brakeman --exit-on-warn --output brakeman/index.html
      - uses: actions/upload-artifact@v4.1.0
        if: always()
        with:
          name: "${{ github.job }}"
          retention-days: 1
          path: brakeman
  lint-bundler-audit:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    env:
      BUNDLE_CLEAN: true
      BUNDLE_DEPLOYMENT: true
      BUNDLE_WITHOUT: 'default deployment development production test performance'
    steps:
      - uses: actions/checkout@v4.1.0
        with:
          lfs: true
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.3'
          bundler-cache: true
      - run: bundle exec bundle-audit check --update --verbose
  lint-i18n:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    continue-on-error: true
    env:
      BUNDLE_CLEAN: true
      BUNDLE_DEPLOYMENT: true
      BUNDLE_WITHOUT: 'default deployment development production test performance'
    steps:
      - uses: actions/checkout@v4.1.0
        with:
          lfs: true
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.3'
          bundler-cache: true
      - run: bundle exec i18n-tasks health
  lint-rubocop:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    env:
      BUNDLE_CLEAN: true
      BUNDLE_DEPLOYMENT: true
      BUNDLE_WITHOUT: 'default deployment development production test performance'
    steps:
      - uses: actions/checkout@v4.1.0
        with:
          lfs: true
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.3'
          bundler-cache: true
      - run: bundle exec rubocop
  test:
    name: Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }}
    needs:
      - lint-brakeman
      - lint-bundler-audit
      - lint-i18n
      - lint-rubocop
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby: [ "3.3", "3.2", "3.1" ]
        rails: [ "7.1", "7.0", "6.1" ] # TODO test 7.2
        include:
          - ruby: jruby-9.4
            rails: '6.1'
          - ruby: '3.0'
            rails: '6.1'
          - ruby: '3.0'
            rails: '7.0'
          - ruby: '3.3'
            rails: '7.1'
            coverage: true
    timeout-minutes: 60
    env:
      JRUBY_OPTS: "--debug"
      LC_ALL: C.UTF-8
      RAILS_ENV: test
      BUNDLE_GEMFILE: gemfiles/Gemfile.rails-${{ matrix.rails }}.x
      BUNDLE_CLEAN: true
      BUNDLE_DEPLOYMENT: true
      BUNDLE_WITHOUT: 'deployment development lint production performance'
    steps:
      - uses: actions/checkout@v4.1.0
        with:
          lfs: true
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true
      - name: Setup Code Climate test-reporter
        if: ${{ matrix.coverage }}
        run: |
          curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
          chmod +x ./cc-test-reporter
          ./cc-test-reporter before-build
      - run: COVERAGE=${{ matrix.coverage}} bundle exec rake
      - run: "./cc-test-reporter after-build -t simplecov -r ${{secrets.CC_TEST_REPORTER_ID}}"
        if: ${{ matrix.coverage }}
      - uses: actions/upload-artifact@v4.1.0
        if: success()
        with:
          name: "${{ github.job }}-coverage"
          retention-days: 1
          path: coverage