tests.yml 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. name: Tests
  2. permissions: read-all
  3. on:
  4. pull_request:
  5. branches:
  6. - main
  7. workflow_dispatch:
  8. jobs:
  9. unit-tests:
  10. name: Unit Tests
  11. runs-on: ${{ matrix.os }}
  12. strategy:
  13. max-parallel: 4
  14. matrix:
  15. os: [ubuntu-latest, windows-latest, macOS-latest]
  16. go-version: ["1.23.x"]
  17. steps:
  18. - name: Set up Go
  19. uses: actions/setup-go@v5
  20. with:
  21. go-version: ${{ matrix.go-version }}
  22. - name: Checkout
  23. uses: actions/checkout@v4
  24. - name: Run unit tests
  25. run: make test
  26. integration-tests:
  27. name: Integration Tests
  28. runs-on: ubuntu-latest
  29. services:
  30. postgres:
  31. image: postgres:9.5
  32. env:
  33. POSTGRES_USER: postgres
  34. POSTGRES_PASSWORD: postgres
  35. POSTGRES_DB: postgres
  36. ports:
  37. - 5432:5432
  38. options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
  39. steps:
  40. - name: Set up Go
  41. uses: actions/setup-go@v5
  42. with:
  43. go-version: "1.23.x"
  44. - name: Checkout
  45. uses: actions/checkout@v4
  46. - name: Install Postgres client
  47. run: sudo apt update && sudo apt install -y postgresql-client
  48. - name: Run integration tests
  49. run: make integration-test
  50. env:
  51. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  52. PGHOST: 127.0.0.1
  53. PGPASSWORD: postgres