rapid7/metasploit-framework

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:
    branches-ignore:
      - gh-pages
      - metakitty
      - weekly-dependency-updates
  pull_request:
    branches-ignore:
      - weekly-dependency-updates

jobs:
  build:
    runs-on: ubuntu-18.04
    timeout-minutes: 40
    name: Docker Build
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: docker-compose build
        run: |
          curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > docker-compose
          chmod +x docker-compose
          sudo mv docker-compose /usr/bin

          /usr/bin/docker-compose build

  test:
    runs-on: ubuntu-18.04
    timeout-minutes: 40

    services:
      postgres:
        image: postgres:9.6
        ports: ["5432:5432"]
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    strategy:
      fail-fast: true
      matrix:
        ruby:
          - 2.6
          - 2.7
          - 3.0.3
          - 3.1.1
        test_cmd:
          - bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content"
          - bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag ~content"
          # Used for testing the remote data service
          - bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content" REMOTE_DB=1
          - bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag ~content" REMOTE_DB=1

    env:
      RAILS_ENV: test

    name: Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }}
    steps:
      - name: Install system dependencies
        run: sudo apt-get install libpcap-dev graphviz

      - name: Checkout code
        uses: actions/checkout@v2

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

      - name: Create database
        run: |
          cp config/database.yml.github_actions config/database.yml
          bundle exec rake --version
          bundle exec rake db:create
          bundle exec rake db:migrate
          # fail build if db/schema.rb update is not committed
          git diff --exit-code db/schema.rb

      - name: ${{ matrix.test_cmd }}
        run: |
          echo "${CMD}"
          bash -c "${CMD}"
        env:
          CMD: ${{ matrix.test_cmd }}