| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- name: Tests
- permissions: read-all
- on:
- pull_request:
- branches:
- - main
- workflow_dispatch:
- jobs:
- unit-tests:
- name: Unit Tests
- runs-on: ${{ matrix.os }}
- strategy:
- max-parallel: 4
- matrix:
- os: [ubuntu-latest, windows-latest, macOS-latest]
- steps:
- - name: Checkout
- uses: actions/checkout@v6
- - name: Set up Go
- uses: actions/setup-go@v6
- with:
- go-version: stable
- - name: Run unit tests with coverage and race conditions checking
- if: matrix.os == 'ubuntu-latest'
- run: make test
- - name: Run unit tests without coverage and race conditions checking
- if: matrix.os != 'ubuntu-latest'
- run: go 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: Checkout
- uses: actions/checkout@v6
- - name: Set up Go
- uses: actions/setup-go@v6
- with:
- go-version: stable
- - name: Install Postgres client
- run: sudo apt update && sudo apt install -y postgresql-client
- - name: Run integration tests
- run: make integration-test
- env:
- PGHOST: 127.0.0.1
- PGPASSWORD: postgres
|