diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9567e31c..3e78ba99a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -71,7 +71,7 @@ jobs: run: ./scripts/ensure-nats.sh - name: Start pgserve - run: bunx pgserve --port 8432 --data .pgserve-data --no-cluster & + run: bunx pgserve postmaster --port 8432 --data .pgserve-data & - name: Start NATS run: ./bin/nats-server -js -p 4222 & @@ -80,9 +80,13 @@ jobs: run: | for i in $(seq 1 30); do pg_isready -h localhost -p 8432 >/dev/null 2>&1 && \ - echo "Database ready" && exit 0 || sleep 1 + echo "Database server ready" && break || sleep 1 done - echo "Database failed to start" && exit 1 + pg_isready -h localhost -p 8432 >/dev/null 2>&1 || \ + (echo "Database failed to start" && exit 1) + createdb -h localhost -p 8432 -U postgres omni 2>/dev/null || true + pg_isready -h localhost -p 8432 -d omni >/dev/null 2>&1 && \ + echo "Database ready" || (echo "Database omni failed readiness" && exit 1) - name: Build run: bun run build @@ -146,7 +150,7 @@ jobs: run: ./scripts/ensure-nats.sh - name: Start pgserve - run: bunx pgserve --port 8432 --data .pgserve-data --no-cluster & + run: bunx pgserve postmaster --port 8432 --data .pgserve-data & - name: Start NATS run: ./bin/nats-server -js -p 4222 & @@ -155,9 +159,13 @@ jobs: run: | for i in $(seq 1 30); do pg_isready -h localhost -p 8432 >/dev/null 2>&1 && \ - echo "Database ready" && exit 0 || sleep 1 + echo "Database server ready" && break || sleep 1 done - echo "Database failed to start" && exit 1 + pg_isready -h localhost -p 8432 >/dev/null 2>&1 || \ + (echo "Database failed to start" && exit 1) + createdb -h localhost -p 8432 -U postgres omni 2>/dev/null || true + pg_isready -h localhost -p 8432 -d omni >/dev/null 2>&1 && \ + echo "Database ready" || (echo "Database omni failed readiness" && exit 1) - name: Build all packages run: bun run build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5b815bcfa..cb5347f84 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,6 +74,12 @@ jobs: echo "Previous release tag: ${PREV:-none}" - name: Generate changelog + # git-cliff-action can fail after writing the requested file when the + # generated multi-line changelog trips GitHub output delimiter parsing + # ("Invalid value. Matching delimiter not found 'EOF'"). The release + # artifact should not go red for that wrapper-output bug; use the file + # when present and otherwise fall back to a small release note. + continue-on-error: true uses: orhun/git-cliff-action@e16f179f0be49ecdfe63753837f20b9531642772 # v4.7.0 if: steps.exists.outputs.skip != 'true' with: @@ -84,6 +90,15 @@ jobs: env: GITHUB_REPO: ${{ github.repository }} + - name: Ensure release notes file exists + if: steps.exists.outputs.skip != 'true' + run: | + if [[ ! -s /tmp/release-notes.md ]]; then + TAG="${{ steps.pkg.outputs.tag }}" + printf 'Release %s\n' "${TAG}" > /tmp/release-notes.md + echo "::warning::git-cliff produced no notes file; using fallback release body" + fi + - name: Create release if: steps.exists.outputs.skip != 'true' env: