add docker-compose file and control service start-up order #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will build a golang project | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go | |
name: ci-test | |
# events that can trigger this workflow | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
# Service containers to run with `container-job` | |
# `services` specify external services | |
services: | |
# Label used to access the service container | |
postgres: | |
# Docker Hub image | |
image: postgres:12 | |
# Provide the password for postgres | |
env: | |
POSTGRES_USER: root | |
POSTGRES_PASSWORD: secret | |
POSTGRES_DB: simple_bank | |
ports: | |
# need expose local port to external host | |
# Maps tcp port 5432 on service container to the host | |
- 5432:5432 | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- name: Set up Go 1.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.23' | |
# go-version: ^1.23 | |
id: go # unique identifier of this step | |
# missing libraries will be automatically downloaded | |
# when building or testing | |
# app will be built automatically when run `go test` | |
# - name: Build | |
# run: go build -v ./... | |
- name: Install golang-migrate | |
run: | | |
curl -L https://github.com/golang-migrate/migrate/releases/download/v4.18.1/migrate.linux-amd64.tar.gz | tar xvz | |
sudo mv migrate /usr/bin/migrate | |
which migrate | |
- name: Run migrations | |
run: make migrateup | |
- name: Test | |
# run: go test -v ./... | |
run: make test |