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-latest timeout-minutes: 40 name: Docker Build steps: - name: Checkout code uses: actions/checkout@v4 - 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: ${{ matrix.os }} 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: - '3.0' - '3.1' - '3.2' - '3.3.0-preview3' os: - ubuntu-20.04 - ubuntu-latest exclude: - { os: ubuntu-latest, ruby: '3.0' } include: - os: ubuntu-latest ruby: '3.1' test_cmd: 'bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content" MSF_FEATURE_DEFER_MODULE_LOADS=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: ${{ matrix.os }} - Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }} steps: - name: Install system dependencies run: sudo apt-get install -y --no-install-recommends libpcap-dev graphviz - name: Checkout code uses: actions/checkout@v4 - name: Setup Ruby env: BUNDLE_WITHOUT: "coverage development pcap" # Nokogiri doesn't release pre-compiled binaries for preview versions of Ruby; So force compilation with BUNDLE_FORCE_RUBY_PLATFORM BUNDLE_FORCE_RUBY_PLATFORM: "${{ contains(matrix.ruby, 'preview') && 'true' || 'false' }}" 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 }}