# Auto-generated by Cimas: Do not edit it manually!
# See https://github.com/metanorma/cimas
name: rake

on:
  push:
    branches: [ master, main ]
    tags: [ v* ]
  pull_request:

jobs:
  rake:
    name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      fail-fast: false
      matrix:
        ruby: [ '2.6', '2.5', '2.4' ]
        os: [ ubuntu-latest, windows-latest, macos-latest ]
        experimental: [ false ]
        include:
          - ruby: '2.7'
            os: 'ubuntu-latest'
            experimental: true
          - ruby: '2.7'
            os: 'windows-latest'
            experimental: true
          - ruby: '2.7'
            os: 'macos-latest'
            experimental: true
    steps:
      - uses: actions/checkout@master

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}

      - uses: actions/cache@v2
        with:
          path: vendor/bundle
          key: bundle-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}
          restore-keys: bundle-${{ matrix.os }}-${{ matrix.ruby }}

      - run: bundle config set path 'vendor/bundle'

      - run: bundle install --jobs 4 --retry 3

      - name: Install Inkscape macOS
        if: matrix.os == 'macos-latest'
        run: |
          brew cask install inkscape
          inkscape --version

      - name: Install Inkscape Ubuntu
        if: matrix.os == 'ubuntu-latest'
        run: |
          sudo add-apt-repository ppa:inkscape.dev/stable
          sudo apt update
          sudo apt install inkscape
          inkscape --version

      - name: Install Inkscape Windows
        if: matrix.os == 'windows-latest'
        run: |
          choco install --no-progress -y inkscape
          inkscape --version

      - run: bundle exec rake

  tests-passed:
    needs: rake
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
      - name: Trigger tests passed event
        uses: Sibz/github-status-action@v1
        with:
          authToken: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
          context: 'tests-passed-successfully'
          description: 'Tests passed successfully'
          state: 'success'
          sha: ${{ github.event.pull_request.head.sha || github.sha }}