diff --git a/.github/workflows/deploy-renderer.yml b/.github/workflows/deploy-renderer.yml index 142a46e1..e6d88153 100644 --- a/.github/workflows/deploy-renderer.yml +++ b/.github/workflows/deploy-renderer.yml @@ -29,10 +29,11 @@ jobs: id: package-version uses: martinbeentjes/npm-get-version-action@main - - uses: cloudflare/wrangler-action@2.0.0 + - uses: cloudflare/wrangler-action@v3 name: Publish Release if: startsWith(github.ref, 'refs/tags/v') with: + wranglerVersion: "2.0.0" apiToken: ${{ secrets.CF_API_TOKEN }} accountId: ${{ secrets.CF_ACCOUNT_ID }} workingDirectory: './build/hosted-renderer' @@ -42,10 +43,11 @@ jobs: node directory-to-kv.js --prefix version/${{ steps.package-version.outputs.current-version }} --source ../../renderer/dist --destination renderer.json wrangler kv:bulk put renderer.json --binding=SCENELESS_KV - - uses: cloudflare/wrangler-action@2.0.0 + - uses: cloudflare/wrangler-action@v3 name: Publish latest if: ${{github.ref == 'refs/heads/main' }} with: + wranglerVersion: "2.0.0" apiToken: ${{ secrets.CF_API_TOKEN }} accountId: ${{ secrets.CF_ACCOUNT_ID }} workingDirectory: './build/hosted-renderer' diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e43cccf4..b99377e1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,7 +8,6 @@ on: push: branches: - main - name: Tag and release package jobs: publish: @@ -27,8 +26,29 @@ jobs: id: package-version uses: martinbeentjes/npm-get-version-action@main + - name: Check if version already exists on npm + id: check_version_exists + run: | + PACKAGE_NAME="@api.stream/studio-kit" + PACKAGE_VERSION="${{ steps.package-version.outputs.current-version }}" + + echo "Checking if version $PACKAGE_VERSION of $PACKAGE_NAME already exists on npm..." + + # Fetch all published versions as a JSON array + NPM_VERSIONS_JSON=$(npm view "$PACKAGE_NAME" versions --json || echo "[]") + + # Check if the current version exists in the JSON array using jq + if echo "$NPM_VERSIONS_JSON" | jq -e ".[] == \"$PACKAGE_VERSION\"" > /dev/null; then + echo "✅ Version $PACKAGE_VERSION already exists on npm. Skipping publish." + echo "version_exists=true" >> "$GITHUB_OUTPUT" + else + echo "🚀 Version $PACKAGE_VERSION does not exist on npm. Proceeding with publish." + echo "version_exists=false" >> "$GITHUB_OUTPUT" + fi + - name: Tag commit with release version id: tag_version + if: steps.check_version_exists.outputs.version_exists != 'true' uses: mathieudutour/github-tag-action@v6.0 with: # Due to a quirk of GitHub actions, we must use an access token of a real user to create @@ -38,6 +58,7 @@ jobs: custom_tag: ${{ steps.package-version.outputs.current-version}} - name: Create a GitHub release + if: steps.check_version_exists.outputs.version_exists != 'true' uses: ncipollo/release-action@v1 with: tag: ${{ steps.tag_version.outputs.new_tag }} @@ -45,6 +66,7 @@ jobs: body: ${{ steps.tag_version.outputs.changelog }} - name: Publish package to NPM + if: steps.check_version_exists.outputs.version_exists != 'true' uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }}