name: Test
on:
  push:
    branches:
      - master
  pull_request:

jobs:
  go-test:
    name: Go Test
    runs-on: ubuntu-latest
    steps:
      - name: Set up Go
        uses: actions/setup-go@v5
        with:
          go-version: 1.18

      - name: Check out source
        uses: actions/checkout@v4

      - name: Build
        run: |
          go get -t ./...
          make

      - name: Test
        run: |
          make test

  integration-test:
    name: Integration Test
    runs-on: ubuntu-latest
    steps:
      - name: Set up Go
        uses: actions/setup-go@v5
        with:
          go-version: 1.18

      - name: Check out source
        uses: actions/checkout@v4

      - name: Install dependencies
        run: |
          set -e
          sudo wget https://github.com/jmespath/jp/releases/download/0.2.1/jp-linux-amd64 -O /usr/local/bin/jp
          sudo chmod +x /usr/local/bin/jp
          # Install Python 2.7
          sudo apt update
          sudo apt install -y python2
          curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
          sudo python2 get-pip.py
          # Install Python dependencies
          pip2 install --user zschema
          pip2 install --user -r requirements.txt

      - name: Run tests
        run: |
          make integration-test