ci.yml 1.3 KB

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