diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ce3a9184..eb10d2c3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,4 +20,25 @@ jobs: - uses: volta-cli/action@v4 - run: yarn install --frozen-lockfile - - run: npm publish \ No newline at end of file + - run: npm publish + + - name: Setup Deno + uses: denoland/setup-deno@v2 + with: + deno-version: v2.x + continue-on-error: true + + - name: Clone small-things + uses: actions/checkout@v6 + with: + repository: smallcase/small-things + path: small-things + token: ${{ secrets.GH_PAT }} + continue-on-error: true + + - name: Track release + env: + SMALL_THINGS_PATH: small-things + NOTIFY_WEBHOOK_URL: ${{ secrets.NOTIFY_WEBHOOK_URL }} + run: bash scripts/track-release.sh --version $(node -p "require('./package.json').version") + continue-on-error: true \ No newline at end of file diff --git a/scripts/track-release.sh b/scripts/track-release.sh new file mode 100755 index 00000000..482f2d6d --- /dev/null +++ b/scripts/track-release.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# Tracks an npm release in small-things (Slack notification). +# Non-critical: failures are logged but do not affect the release. +# +# Usage: track-release.sh --version +set -o pipefail + +while [[ $# -gt 0 ]]; do + case "$1" in + --version) VERSION="$2"; shift 2 ;; + *) echo "Unknown argument: $1"; exit 1 ;; + esac +done + +if [[ -z "$VERSION" ]]; then + echo "Warning: No version provided. Skipping release tracking." + exit 0 +fi + +SDK_NAME="react-native-smallcase-gateway" +RELEASE_TYPE="${RELEASE_TYPE:-prod}" + +echo "Tracking release: $SDK_NAME v$VERSION (type: $RELEASE_TYPE)" + +TRACK_ARGS=( + --platform react-native + --sdkName "$SDK_NAME" + --version "$VERSION" + --publishTarget "npm" + --releaseType "$RELEASE_TYPE" +) +[ -n "${NOTIFY_WEBHOOK_URL:-}" ] && TRACK_ARGS+=( --webhookUrl "$NOTIFY_WEBHOOK_URL" ) + +small-things gw track-release "${TRACK_ARGS[@]}" 2>&1 || { + echo "Warning: Failed to track release in small-things (non-critical - release was successful)" +}