flamingo-run/rails-cloud-tasks

View on GitHub
.github/workflows/main.yaml

Summary

Maintainability
Test Coverage
name: Github CI

on:
  pull_request:
    branches:
      - '**'
  push:
    branches:
      - main

jobs:
  linter:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Set up Ruby 2.7
        uses: actions/setup-ruby@v1
        with:
          ruby-version: 2.7

      - name: Install bundler
        run: gem install bundler

      - name: Cache dependencies
        uses: actions/cache@v2
        with:
          path: vendor/bundle
          key: ${{ runner.os }}-gem-${{ hashFiles('**/rails-cloud-tasks.gemspec') }}

      - name: Install dependencies
        run: bundle install

      - name: Lint
        run: bundle exec rubocop

  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Set up Ruby 2.7
        uses: actions/setup-ruby@v1
        with:
          ruby-version: 2.7

      - name: Install bundler
        run: gem install bundler

      - name: Cache dependencies
        uses: actions/cache@v2
        with:
          path: vendor/bundle
          key: ${{ runner.os }}-gem-${{ hashFiles('**/rails-cloud-tasks.gemspec') }}

      - name: Install dependencies
        run: bundle install

      - name: Build the package
        run: bundle exec gem build

  unit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Set up Ruby 2.7
        uses: actions/setup-ruby@v1
        with:
          ruby-version: 2.7

      - name: Install bundler
        run: gem install bundler

      - name: Cache dependencies
        uses: actions/cache@v2
        with:
          path: vendor/bundle
          key: ${{ runner.os }}-gem-${{ hashFiles('**/rails-cloud-tasks.gemspec') }}

      - name: Install dependencies
        run: bundle install

      - name: Prepare 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

      - name: Run unit tests
        run: bundle exec rspec
        env:
          COVERAGE: true

      - name: Report coverage
        run: GIT_COMMIT_SHA=$(git rev-parse HEAD) GIT_BRANCH=`[[ -z "$GITHUB_HEAD_REF" ]] && echo ${GITHUB_REF/refs\/heads\/} || echo $GITHUB_HEAD_REF` ./cc-test-reporter after-build -t simplecov --exit-code $?
        env:
          CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}