|
|
@@ -0,0 +1,95 @@
|
|
|
+name: CI Workflow
|
|
|
+on:
|
|
|
+ pull_request:
|
|
|
+ branches:
|
|
|
+ - master
|
|
|
+
|
|
|
+jobs:
|
|
|
+
|
|
|
+ linters:
|
|
|
+ name: Linter Check
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ steps:
|
|
|
+ - name: Set up Go
|
|
|
+ uses: actions/setup-go@v1
|
|
|
+ with:
|
|
|
+ go-version: 1.13
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/checkout@v1
|
|
|
+ with:
|
|
|
+ fetch-depth: 3
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ - name: Install linters
|
|
|
+ run: |
|
|
|
+ cd /tmp && go get -u golang.org/x/lint/golint
|
|
|
+ sudo npm install -g jshint
|
|
|
+ env:
|
|
|
+ GO111MODULE: off
|
|
|
+ - name: Run golint
|
|
|
+ run: |
|
|
|
+ export PATH=/home/runner/go/bin:$PATH
|
|
|
+ make lint
|
|
|
+ - name: Run jshint
|
|
|
+ run: jshint ui/static/js/*.js
|
|
|
+
|
|
|
+ unit-tests:
|
|
|
+ name: Unit Tests
|
|
|
+ runs-on: ${{ matrix.os }}
|
|
|
+ strategy:
|
|
|
+ max-parallel: 4
|
|
|
+ matrix:
|
|
|
+ os: [ubuntu-latest, windows-latest, macOS-latest]
|
|
|
+ go-version: [1.11, 1.12, 1.13]
|
|
|
+ steps:
|
|
|
+ - name: Set up Go
|
|
|
+ uses: actions/setup-go@v1
|
|
|
+ with:
|
|
|
+ go-version: ${{ matrix.go-version }}
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/checkout@v1
|
|
|
+ with:
|
|
|
+ fetch-depth: 3
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ - name: Run unit tests
|
|
|
+ run: make 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: Set up Go
|
|
|
+ uses: actions/setup-go@v1
|
|
|
+ with:
|
|
|
+ go-version: 1.13
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/checkout@v1
|
|
|
+ with:
|
|
|
+ fetch-depth: 3
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ - name: Install Postgres client
|
|
|
+ run: sudo apt-get 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
|