| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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]
- go-version: ["1.24.x"]
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Set up Go
- uses: actions/setup-go@v5
- with:
- go-version: ${{ matrix.go-version }}
- - 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@v4
- - name: Set up Go
- uses: actions/setup-go@v5
- with:
- go-version: "1.24.x"
- - name: Install Postgres client
- run: sudo apt update && sudo apt 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
|