pcaprub/pcaprub

View on GitHub
.github/workflows/verify.yml

Summary

Maintainability
Test Coverage
name: verify

# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
  actions: none
  checks: none
  contents: none
  deployments: none
  id-token: none
  issues: none
  discussions: none
  packages: none
  pages: none
  pull-requests: none
  repository-projects: none
  security-events: none
  statuses: none

on: [push, pull_request]

jobs:
  verify:
    strategy:
      fail-fast: false
      matrix:
        os:
          - macos-latest
          - windows-latest
          - ubuntu-latest
        ruby:
          - '2.7'
          - '3.0'
          - '3.1'
          - '3.2'
    runs-on: ${{ matrix.os }}
    timeout-minutes: 25

    name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }}

    steps:
      - name: Checkout code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
          ref: ${{ github.event.pull_request.head.ref }}

      - name: Setup Ruby
        env:
          BUNDLE_WITHOUT: "coverage development"
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: false

      - name: Install system dependencies (Linux)
        if: runner.os == 'Linux'
        run: |
          sudo apt-get install libpcap-dev

      - name: Install system dependencies (Windows)
        if: runner.os == 'Windows'
        shell: pwsh
        run: |
          $script = "$(Get-Location)\script\installwinpcap.ps1"
          Write-Host $script
          . $script

      - name: build
        run: |
          bundle install
          rake gem

      - name: test (Windows)
        if: runner.os == 'Windows'
        run: |
          bundle exec rake

      - name: test (Unix)
        if: runner.os != 'Windows'
        run: |
          sudo --preserve-env=PATH env bundle exec rake