dry-rb/dry-web

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
# this file is managed by dry-rb/devtools project

name: ci

"on":
  push:
    paths:
      - ".github/workflows/ci.yml"
      - "lib/**"
      - "*.gemspec"
      - "spec/**"
      - "Rakefile"
      - "Gemfile"
      - "Gemfile.devtools"
      - ".rubocop.yml"
      - "project.yml"
  pull_request:
    branches:
      - master
  create:

jobs:
  tests:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby:
          - "2.7.0"
          - "2.6"
          - "2.5"
          - "2.4"
          - "jruby"
        include:
          - ruby: "2.6"
            coverage: "true"
    env:
      COVERAGE: ${{matrix.coverage}}
      COVERAGE_TOKEN: ${{secrets.CODACY_PROJECT_TOKEN}}
    steps:
      - uses: actions/checkout@v1
      - 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}}
      - name: Install latest bundler
        run: |
          gem install bundler --no-document
          bundle config set without 'tools benchmarks docs'
      - name: Bundle install
        run: bundle install --jobs 4 --retry 3
      - name: Run all tests
        run: bundle exec rake
      - name: Run codacy-coverage-reporter
        uses: codacy/codacy-coverage-reporter-action@master
        if: env.COVERAGE == 'true' && env.COVERAGE_TOKEN != ''
        with:
          project-token: ${{secrets.CODACY_PROJECT_TOKEN}}
          coverage-reports: coverage/coverage.xml
  release:
    runs-on: ubuntu-latest
    if: contains(github.ref, 'tags') && github.event_name == 'create'
    needs: tests
    env:
      GITHUB_LOGIN: dry-bot
      GITHUB_TOKEN: ${{secrets.GH_PAT}}
    steps:
      - uses: actions/checkout@v1
      - 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: 2.6
      - name: Install dependencies
        run: gem install ossy --no-document
      - name: Trigger release workflow
        run: |
          tag=$(echo $GITHUB_REF | cut -d / -f 3)
          ossy gh w dry-rb/devtools release --payload "{\"tag\":\"$tag\",\"tag_creator\":\"$GITHUB_ACTOR\",\"repo\":\"$GITHUB_REPOSITORY\"}"