48 lines
1.1 KiB
YAML
48 lines
1.1 KiB
YAML
name: Integration Tests
|
|
|
|
on:
|
|
workflow_dispatch: # Manual trigger only
|
|
|
|
jobs:
|
|
integration-test:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: golang:1.25
|
|
options: --privileged
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
env:
|
|
POSTGRES_USER: testuser
|
|
POSTGRES_PASSWORD: testpass
|
|
POSTGRES_DB: music_server_test
|
|
ports:
|
|
- 5432:5432
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install dependencies
|
|
run: go mod download
|
|
|
|
- name: Install testcontainers
|
|
run: go install github.com/testcontainers/testcontainers-go@latest
|
|
|
|
- name: Run integration tests
|
|
env:
|
|
DB_HOST: postgres
|
|
DB_PORT: 5432
|
|
DB_USERNAME: testuser
|
|
DB_PASSWORD: testpass
|
|
DB_NAME: music_server_test
|
|
MUSIC_PATH: ./testMusic
|
|
CHARACTERS_PATH: ./testCharacters
|
|
run: go test -v -timeout 30m ./...
|