From 26cc073048d5cf503ffe25c7c77bc83771c50b82 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Wed, 18 Mar 2026 12:45:05 +0900 Subject: [PATCH] fix: use dual-check outputs for opencode/openagent publish conditions --- .github/workflows/publish-platform.yml | 45 ++++++++++++++++++-------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/.github/workflows/publish-platform.yml b/.github/workflows/publish-platform.yml index 195bb4602..b2214dd64 100644 --- a/.github/workflows/publish-platform.yml +++ b/.github/workflows/publish-platform.yml @@ -59,20 +59,39 @@ jobs: - name: Check if already published id: check run: | - PKG_NAME="oh-my-opencode-${{ matrix.platform }}" VERSION="${{ inputs.version }}" - STATUS=$(curl -s -o /dev/null -w "%{http_code}" "https://registry.npmjs.org/${PKG_NAME}/${VERSION}") - # Convert platform name for output (replace - with _) PLATFORM_KEY="${{ matrix.platform }}" PLATFORM_KEY="${PLATFORM_KEY//-/_}" - if [ "$STATUS" = "200" ]; then + + # Check oh-my-opencode + OC_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "https://registry.npmjs.org/oh-my-opencode-${{ matrix.platform }}/${VERSION}") + # Check oh-my-openagent + OA_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "https://registry.npmjs.org/oh-my-openagent-${{ matrix.platform }}/${VERSION}") + + echo "oh-my-opencode-${{ matrix.platform }}@${VERSION}: ${OC_STATUS}" + echo "oh-my-openagent-${{ matrix.platform }}@${VERSION}: ${OA_STATUS}" + + if [ "$OC_STATUS" = "200" ]; then + echo "skip_opencode=true" >> $GITHUB_OUTPUT + echo "✓ oh-my-opencode-${{ matrix.platform }}@${VERSION} already published" + else + echo "skip_opencode=false" >> $GITHUB_OUTPUT + echo "→ oh-my-opencode-${{ matrix.platform }}@${VERSION} needs publishing" + fi + + if [ "$OA_STATUS" = "200" ]; then + echo "skip_openagent=true" >> $GITHUB_OUTPUT + echo "✓ oh-my-openagent-${{ matrix.platform }}@${VERSION} already published" + else + echo "skip_openagent=false" >> $GITHUB_OUTPUT + echo "→ oh-my-openagent-${{ matrix.platform }}@${VERSION} needs publishing" + fi + + # Skip build only if BOTH are already published + if [ "$OC_STATUS" = "200" ] && [ "$OA_STATUS" = "200" ]; then echo "skip=true" >> $GITHUB_OUTPUT - echo "skip_${PLATFORM_KEY}=true" >> $GITHUB_OUTPUT - echo "✓ ${PKG_NAME}@${VERSION} already published" else echo "skip=false" >> $GITHUB_OUTPUT - echo "skip_${PLATFORM_KEY}=false" >> $GITHUB_OUTPUT - echo "→ ${PKG_NAME}@${VERSION} needs publishing" fi - name: Update version in package.json @@ -225,7 +244,7 @@ jobs: fi - name: Check if oh-my-opencode already published - id: check-openagent + id: check-opencode run: | PKG_NAME="oh-my-opencode-${{ matrix.platform }}" VERSION="${{ inputs.version }}" @@ -239,7 +258,7 @@ jobs: - name: Download artifact id: download - if: steps.check.outputs.skip != 'true' || steps.check-openagent.outputs.skip != 'true' + if: steps.check.outputs.skip != 'true' || steps.check-opencode.outputs.skip != 'true' continue-on-error: true uses: actions/download-artifact@v4 with: @@ -247,7 +266,7 @@ jobs: path: . - name: Extract artifact - if: (steps.check.outputs.skip != 'true' || steps.check-openagent.outputs.skip != 'true') && steps.download.outcome == 'success' + if: (steps.check.outputs.skip != 'true' || steps.check-opencode.outputs.skip != 'true') && steps.download.outcome == 'success' run: | PLATFORM="${{ matrix.platform }}" mkdir -p packages/${PLATFORM} @@ -263,7 +282,7 @@ jobs: ls -la packages/${PLATFORM}/bin/ - uses: actions/setup-node@v4 - if: (steps.check.outputs.skip != 'true' || steps.check-openagent.outputs.skip != 'true') && steps.download.outcome == 'success' + if: (steps.check.outputs.skip != 'true' || steps.check-opencode.outputs.skip != 'true') && steps.download.outcome == 'success' with: node-version: "24" registry-url: "https://registry.npmjs.org" @@ -285,7 +304,7 @@ jobs: timeout-minutes: 15 - name: Publish oh-my-opencode-${{ matrix.platform }} (alias) - if: steps.check.outputs.skip != 'true' && steps.download.outcome == 'success' + if: steps.check-opencode.outputs.skip != 'true' && steps.download.outcome == 'success' run: | cd packages/${{ matrix.platform }}