---
name: CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: '2.7'
          bundler-cache: true
      - name: Run rubocop
        run: bundle exec rubocop
  test:
    needs: lint
    runs-on: ubuntu-latest
    strategy:
      matrix:
        ruby-version:
          - '2.6'
          - '2.7'
          - '3.0'
          - '3.1'
          - '3.2'
    steps:
      - uses: actions/checkout@v3
      - name: Setup Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby-version }}
          bundler-cache: true
      - name: Install riemann
        run: |
          wget --quiet https://github.com/riemann/riemann/releases/download/0.3.8/riemann_0.3.8_all.deb
          sudo dpkg -i riemann_0.3.8_all.deb

          sudo systemctl stop riemann

          sudo openssl genrsa -out /etc/riemann/riemann_server.key 4096
          sudo openssl pkcs8 -topk8 -nocrypt -in /etc/riemann/riemann_server.key -out /etc/riemann/riemann_server.pkcs8
          sudo openssl req -x509 -new -nodes -key /etc/riemann/riemann_server.key -days 7 -out /etc/riemann/riemann_server.crt -subj '/CN=localhost'
          sudo chmod +r /etc/riemann/riemann_server.pkcs8
          sudo cp -v spec/riemann.config /etc/riemann/

          sudo systemctl start riemann

          while ! nc -z localhost 5555; do sleep 1; done
      - name: Run the test suite
        run: bundle exec rspec