Skip to content

Commit de3c314

Browse files
authored
fix(ci): retry alpha dist-tag verification on registry propagation delay (#83)
1 parent eb46298 commit de3c314

2 files changed

Lines changed: 30 additions & 6 deletions

File tree

.github/workflows/publish-alpha.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,24 @@ jobs:
8686
for dir in packages/core packages/dom packages/router packages/testing; do
8787
name=$(node -p "require('./$dir/package.json').name")
8888
expected=$(node -p "require('./$dir/package.json').version")
89-
actual=$(npm view "$name" dist-tags.alpha)
89+
attempt=0
90+
max_attempts=25
91+
while [ $attempt -lt $max_attempts ]; do
92+
attempt=$((attempt + 1))
93+
actual=$(npm view "$name" dist-tags.alpha --prefer-online 2>/dev/null || npm view "$name" dist-tags.alpha)
94+
if [ "$actual" = "$expected" ]; then
95+
echo "✅ $name alpha dist-tag: $actual (attempt $attempt)"
96+
break
97+
fi
98+
echo "Attempt $attempt: $name — expected $expected, got $actual"
99+
if [ $attempt -lt $max_attempts ]; then
100+
sleep $((RANDOM % 6 + 10))
101+
fi
102+
done
90103
if [ "$actual" != "$expected" ]; then
91-
echo "::error::alpha dist-tag for $name is $actual, expected $expected"
104+
echo "::error::alpha dist-tag for $name is $actual, expected $expected (after $max_attempts attempts)"
92105
exit 1
93106
fi
94-
echo "✅ $name alpha dist-tag: $actual"
95107
done
96108
env:
97109
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/repair-alpha-metadata.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,24 @@ jobs:
9696
do
9797
name=$(echo "$spec" | cut -d' ' -f1)
9898
expected=$(echo "$spec" | cut -d' ' -f2)
99-
actual=$(npm view "$name" dist-tags.alpha)
99+
attempt=0
100+
max_attempts=25
101+
while [ $attempt -lt $max_attempts ]; do
102+
attempt=$((attempt + 1))
103+
actual=$(npm view "$name" dist-tags.alpha --prefer-online 2>/dev/null || npm view "$name" dist-tags.alpha)
104+
if [ "$actual" = "$expected" ]; then
105+
echo "✅ $name alpha dist-tag: $actual (attempt $attempt)"
106+
break
107+
fi
108+
echo "Attempt $attempt: $name — expected $expected, got $actual"
109+
if [ $attempt -lt $max_attempts ]; then
110+
sleep $((RANDOM % 6 + 10))
111+
fi
112+
done
100113
if [ "$actual" != "$expected" ]; then
101-
echo "::error::alpha dist-tag for $name is $actual, expected $expected"
114+
echo "::error::alpha dist-tag for $name is $actual, expected $expected (after $max_attempts attempts)"
102115
exit 1
103116
fi
104-
echo "✅ $name alpha dist-tag: $actual"
105117
done
106118
env:
107119
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

0 commit comments

Comments
 (0)