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