name: CI Workflow on: pull_request: branches: - master jobs: unit-tests: name: Unit Tests runs-on: ${{ matrix.os }} strategy: max-parallel: 4 matrix: os: [ubuntu-latest, windows-latest, macOS-latest] go-version: [1.16] steps: - name: Set up Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: Checkout uses: actions/checkout@v2 - name: Run unit tests run: make test integration-tests: name: Integration Tests runs-on: ubuntu-latest services: postgres: image: postgres:9.5 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres ports: - 5432:5432 options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - name: Set up Go uses: actions/setup-go@v2 with: go-version: 1.16 - name: Checkout uses: actions/checkout@v2 - name: Install Postgres client run: sudo apt-get install -y postgresql-client - name: Run integration tests run: make integration-test env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} PGHOST: 127.0.0.1 PGPASSWORD: postgres