Skip to content

Commit bafd538

Browse files
authored
Merge pull request #52 from geolonia/fix-publish-race
fix: publish ワークフローの CI レースコンディションを修正
2 parents f6af10f + 09506e4 commit bafd538

2 files changed

Lines changed: 24 additions & 6 deletions

File tree

.github/workflows/publish.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,29 @@ jobs:
1414
verify-ci:
1515
runs-on: ubuntu-latest
1616
steps:
17-
- name: Verify CI workflow passed for this commit
17+
- name: Wait for CI workflow and verify it passed
1818
env:
1919
GH_TOKEN: ${{ github.token }}
2020
run: |
21-
echo "Checking CI status for commit ${{ github.sha }}..."
21+
echo "Waiting for CI workflow to complete for commit ${{ github.sha }}..."
2222
23-
CONCLUSION=$(gh api "repos/${{ github.repository }}/actions/workflows/ci.yml/runs?head_sha=${{ github.sha }}&status=completed&event=push&branch=main" \
24-
--jq '.workflow_runs[0].conclusion')
23+
MAX_ATTEMPTS=30
24+
INTERVAL=10
25+
26+
for i in $(seq 1 $MAX_ATTEMPTS); do
27+
CONCLUSION=$(gh api "repos/${{ github.repository }}/actions/workflows/ci.yml/runs?head_sha=${{ github.sha }}&event=push&branch=main" \
28+
--jq '.workflow_runs[0].conclusion')
29+
30+
if [ -n "$CONCLUSION" ] && [ "$CONCLUSION" != "null" ]; then
31+
break
32+
fi
33+
34+
echo "Attempt $i/$MAX_ATTEMPTS: CI not yet completed, waiting ${INTERVAL}s..."
35+
sleep $INTERVAL
36+
done
2537
2638
if [ -z "$CONCLUSION" ] || [ "$CONCLUSION" = "null" ]; then
27-
echo "::error::No completed CI workflow run found for commit ${{ github.sha }}. Push to main and wait for CI to pass before tagging."
39+
echo "::error::CI workflow did not complete within $((MAX_ATTEMPTS * INTERVAL))s for commit ${{ github.sha }}."
2840
exit 1
2941
fi
3042

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77

88
## [Unreleased]
99

10+
### 2026-03-05
11+
- **Fix**: publish ワークフローで CI 完了をポーリング待機するよう修正(レースコンディション対策)(#52)
12+
13+
## [0.4.0] - 2026-03-05
14+
1015
### 2026-03-05
1116
- **Feat**: `geonic me oauth-clients` コマンドを追加 — ユーザー自身が OAuth Client Credentials をセルフサービスで発行・管理 (#51)
1217
- **Feat**: `--save` オプションで credentials を config に保存し、自動再認証を有効化 (#51)
@@ -70,7 +75,8 @@
7075
### 2026-02-26
7176
- **Docs**: README にインストール手順・使い方・コマンドリファレンスを追加 (#1)
7277

73-
[Unreleased]: https://github.com/geolonia/geonicdb-cli/compare/v0.3.0...HEAD
78+
[Unreleased]: https://github.com/geolonia/geonicdb-cli/compare/v0.4.0...HEAD
79+
[0.4.0]: https://github.com/geolonia/geonicdb-cli/compare/v0.3.0...v0.4.0
7480
[0.3.0]: https://github.com/geolonia/geonicdb-cli/compare/v0.2.0...v0.3.0
7581
[0.2.0]: https://github.com/geolonia/geonicdb-cli/compare/v0.1.0...v0.2.0
7682
[0.1.0]: https://github.com/geolonia/geonicdb-cli/releases/tag/v0.1.0

0 commit comments

Comments
 (0)