Skip to content

Commit 9b96f89

Browse files
authored
Publish packages based on tags step
- update publish-packages workflow
1 parent dcd81e2 commit 9b96f89

1 file changed

Lines changed: 34 additions & 21 deletions

File tree

.github/workflows/publish-packages.yaml

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -35,31 +35,44 @@ jobs:
3535
run: |
3636
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
3737
38-
- name: Detect changed packages dynamically
39-
id: changes
40-
run: |
41-
echo "Detecting changed packages..."
42-
ALL_PACKAGES=$(ls packages | grep -v '^$')
43-
CHANGED_PACKAGES=$(git diff --name-only HEAD~1 HEAD | grep "^packages/" | cut -d/ -f2 | sort -u)
44-
PACKAGES=""
45-
for pkg in $CHANGED_PACKAGES; do
46-
if echo "$ALL_PACKAGES" | grep -qw "$pkg"; then
47-
PACKAGES="$PACKAGES $pkg"
48-
fi
49-
done
50-
echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV
51-
echo "Packages to publish: $PACKAGES"
52-
53-
- name: Publish packages
54-
if: env.PACKAGES != ''
38+
- name: Publish packages based on tags
5539
run: |
5640
set -e
57-
read -r -a PACKAGE_ARRAY <<< "$PACKAGES"
5841
59-
for PACKAGE in "${PACKAGE_ARRAY[@]}"; do
60-
PACKAGE_DIR="packages/$PACKAGE"
42+
echo "Fetching tags..."
43+
git fetch --tags
44+
45+
TAGS=$(git tag -l "packages/*/v*")
46+
echo "Found tags:"
47+
echo "$TAGS"
48+
49+
for TAG in $TAGS; do
6150
echo "-----------------------------"
62-
echo "Publishing $PACKAGE"
51+
echo "Processing tag: $TAG"
6352
53+
PACKAGE=$(echo "$TAG" | cut -d/ -f2)
54+
VERSION=$(echo "$TAG" | cut -d/ -f3 | sed 's/^v//')
55+
56+
PACKAGE_DIR="packages/$PACKAGE"
57+
58+
if [ ! -f "$PACKAGE_DIR/package.json" ]; then
59+
echo "⏭ Skipping $PACKAGE (package.json not found)"
60+
continue
61+
fi
62+
63+
PACKAGE_NAME=$(node -p "require('./$PACKAGE_DIR/package.json').name")
64+
65+
echo "Package: $PACKAGE_NAME"
66+
echo "Version: $VERSION"
67+
68+
# Check if version exists in npm
69+
if npm view "$PACKAGE_NAME@$VERSION" version >/dev/null 2>&1; then
70+
echo "⏭ Already published: $PACKAGE_NAME@$VERSION"
71+
continue
72+
fi
73+
74+
echo "🚀 Publishing $PACKAGE_NAME@$VERSION"
6475
pnpm publish "$PACKAGE_DIR" --access public
6576
done
77+
78+
echo "✅ Publish step completed"

0 commit comments

Comments
 (0)