82 lines
1.6 KiB
YAML
82 lines
1.6 KiB
YAML
|
|
name: Test
|
|
|
|
on: [ push, workflow_dispatch ]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres
|
|
env:
|
|
POSTGRES_USER: alice
|
|
POSTGRES_PASSWORD: alice
|
|
POSTGRES_DB: alice
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 5432:5432
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
# Install development dependencies
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v3
|
|
with:
|
|
go-version: '1.21.x'
|
|
|
|
- name: Setup NodeJS
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 16
|
|
|
|
- name: Add UI build stub
|
|
working-directory: ./ui
|
|
run: |
|
|
mkdir -p ./build
|
|
touch ./build/UI_BUILD_STUB
|
|
|
|
# Formatting
|
|
- name: Check formatting
|
|
run: |
|
|
test -z $(gofmt -l ./pkg)
|
|
test -z $(gofmt -l ./cmd)
|
|
|
|
# Vet
|
|
- name: Vet
|
|
run: |
|
|
go vet ./pkg/...
|
|
go vet ./cmd/...
|
|
|
|
# Lint
|
|
- name: Lint
|
|
run: |
|
|
go install golang.org/x/lint/golint@latest
|
|
golint -set_exit_status ./pkg/...
|
|
golint -set_exit_status ./cmd/...
|
|
|
|
# Test environment
|
|
- name: Setup Test Database
|
|
env:
|
|
PGHOST: localhost
|
|
PGPORT: 5432
|
|
PGUSER: alice
|
|
PGPASSWORD: alice
|
|
working-directory: ./db
|
|
run: |
|
|
./init.sh -c -t
|
|
|
|
# Run Tests
|
|
- name: UI Tests
|
|
run: make ui_test
|
|
|
|
- name: Backend Tests
|
|
run: make backend_test
|
|
|