ci.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. name: CI Workflow
  2. on:
  3. pull_request:
  4. branches:
  5. - master
  6. jobs:
  7. linters:
  8. name: Linter Check
  9. runs-on: ubuntu-latest
  10. steps:
  11. - name: Set up Go
  12. uses: actions/setup-go@v1
  13. with:
  14. go-version: 1.15
  15. env:
  16. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  17. - name: Checkout
  18. uses: actions/checkout@v1
  19. with:
  20. fetch-depth: 3
  21. env:
  22. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  23. - name: Install linters
  24. run: |
  25. cd /tmp && go get -u golang.org/x/lint/golint
  26. sudo npm install -g jshint
  27. env:
  28. GO111MODULE: off
  29. - name: Run golint
  30. run: |
  31. export PATH=/home/runner/go/bin:$PATH
  32. make lint
  33. - name: Run jshint
  34. run: jshint ui/static/js/*.js
  35. unit-tests:
  36. name: Unit Tests
  37. runs-on: ${{ matrix.os }}
  38. strategy:
  39. max-parallel: 4
  40. matrix:
  41. os: [ubuntu-latest, windows-latest, macOS-latest]
  42. go-version: [1.14, 1.15]
  43. steps:
  44. - name: Set up Go
  45. uses: actions/setup-go@v1
  46. with:
  47. go-version: ${{ matrix.go-version }}
  48. env:
  49. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  50. - name: Checkout
  51. uses: actions/checkout@v1
  52. with:
  53. fetch-depth: 3
  54. env:
  55. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  56. - name: Run unit tests
  57. run: make test
  58. integration-tests:
  59. name: Integration Tests
  60. runs-on: ubuntu-latest
  61. services:
  62. postgres:
  63. image: postgres:9.5
  64. env:
  65. POSTGRES_USER: postgres
  66. POSTGRES_PASSWORD: postgres
  67. POSTGRES_DB: postgres
  68. ports:
  69. - 5432:5432
  70. options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
  71. steps:
  72. - name: Set up Go
  73. uses: actions/setup-go@v1
  74. with:
  75. go-version: 1.15
  76. env:
  77. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  78. - name: Checkout
  79. uses: actions/checkout@v1
  80. with:
  81. fetch-depth: 3
  82. env:
  83. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  84. - name: Install Postgres client
  85. run: sudo apt-get install -y postgresql-client
  86. - name: Run integration tests
  87. run: make integration-test
  88. env:
  89. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  90. PGHOST: 127.0.0.1
  91. PGPASSWORD: postgres