haru/redmine_code_review

View on GitHub
.github/workflows/build.yml

Summary

Maintainability
Test Coverage
name: build
on: [push, pull_request]
env:
  SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        db: [sqlite3, mysql, postgres]
        ruby_version: ["2.7", "3.0", "3.1", "3.2"]
        redmine_version: [5.0-stable, 5.1-stable, master]
        exclude:
          - ruby_version: "3.2"
            redmine_version: 5.0-stable
    services:
      mysql:
        image: mysql:5.7
        options: --health-cmd "mysqladmin ping -h localhost" --health-interval 20s --health-timeout 10s --health-retries 10
        env:
          MYSQL_ROOT_PASSWORD: dbpassword
      postgres:
        image: postgres
        env:
          POSTGRES_USER: root
          POSTGRES_PASSWORD: dbpassword
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
    container:
      image: ruby:${{ matrix.ruby_version }}
      env:
        DB: ${{ matrix.db }}
        DB_USERNAME: root
        DB_PASSWORD: dbpassword
        DB_HOST: ${{ matrix.db }}
        REDMINE_VER: ${{ matrix.redmine_version }}
    steps:
      - uses: actions/checkout@v4
      - name: Install
        run: bash -x ./build-scripts/install.sh
      - name: Build
        run: bash -x ./build-scripts/build.sh
      - name: Clean
        run: bash -x ./build-scripts/cleanup.sh
      - uses: codecov/codecov-action@v3
      - name: Slack Notification on Failure
        uses: rtCamp/action-slack-notify@v2.0.2
        if: failure()
        env:
          SLACK_CHANNEL: plugin-code_review
          SLACK_TITLE: Test Failure
          SLACK_COLOR: danger