name: ci

jobs:
  specs:
    needs:
      - diffend
      - coditsu

    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby:
          - '3.0'
          - '2.7'
          - '2.6'
          - '2.5'
          - 'jruby-9.2.14.0'
        bundler:
          - '2.1.4'
          - '2.2.5'
        include:
          - ruby: '2.7'
            coverage: 'true'

    steps:
      - uses: actions/checkout@v2
      - uses: actions/cache@v2
        with:
          path: vendor/bundle
          key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
          restore-keys: |
            ${{ runner.os }}-gems-
      - name: Install package dependencies
        run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{matrix.ruby}}
          bundler: ${{matrix.bundler}}
      - name: Bundle install
        env:
          DIFFEND_DEVELOPMENT: true
        run: |
          bundle _${{matrix.bundler}}_ config path vendor/bundle
          bundle _${{matrix.bundler}}_ install --jobs 4 --retry 3
      - name: Run all tests
        env:
          GITHUB_COVERAGE: ${{matrix.coverage}}
        run: bundle _${{matrix.bundler}}_ exec rspec

  diffend:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.0
      - name: Install latest bundler
        run: gem install bundler --no-document
      - name: Install Diffend plugin
        run: bundle plugin install diffend
      - name: Bundle Secure
        run: bundle secure

  coditsu:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Run Coditsu
        env:
          CODITSU_API_KEY: ${{ secrets.CODITSU_API_KEY }}
          CODITSU_API_SECRET: ${{ secrets.CODITSU_API_SECRET }}
        run: \curl -sSL https://api.coditsu.io/run/ci | bash

on:
  push:
  schedule:
    - cron:  '0 1 * * *'