update readme #20
This file contains hidden or 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
| name: Docker Compose CI | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Create .env | |
| run: cp .env.example .env | |
| - name: Create .test.env | |
| run: cp .test.env.example .test.env | |
| - name: Create pems | |
| run: go run .tools/rsa/keygen.go | |
| - name: Build docker images | |
| run: docker compose build | |
| - name: Run docker images | |
| run: docker compose up -d | |
| - name: Wait for API health | |
| run: | | |
| echo "Waiting for API to become healthy..." | |
| for i in {1..30}; do | |
| STATUS=$(docker inspect --format='{{.State.Health.Status}}' goserver-mongo) | |
| if [ "$STATUS" = "healthy" ]; then | |
| echo "API is healthy" | |
| exit 0 | |
| fi | |
| sleep 2 | |
| done | |
| echo "API did not become healthy in time" | |
| docker logs goserver-mongo | |
| exit 1 | |
| - name: Run tests | |
| run: docker exec -t goserver-mongo go test -v ./... | |
| - name: Clean up | |
| if: success() || failure() | |
| run: docker compose down --rmi all -v --remove-orphans |