Skip to content

Commit c8c7bd0

Browse files
committed
ci: add pre-release check
1 parent 3b4cdb5 commit c8c7bd0

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Check Pre-release Versions in package.json
2+
3+
on:
4+
push:
5+
6+
jobs:
7+
check-pre-release:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout repository
11+
uses: actions/checkout@v4
12+
13+
- name: Check for pre-release versions
14+
run: |
15+
has_pre_release=false
16+
package_json_files=$(find . -name "package.json" -not -path "*/node_modules/*")
17+
for package_json in $package_json_files; do
18+
version=$(jq -r '.version' "$package_json")
19+
if [[ "$version" =~ [^-]+-[a-zA-Z0-9]+ ]]; then
20+
echo "Pre-release version found in $package_json: $version"
21+
has_pre_release=true
22+
fi
23+
24+
for dep_type in dependencies devDependencies peerDependencies; do
25+
if jq -e ".$dep_type" "$package_json" > /dev/null; then
26+
dep_names=$(jq -r ".$dep_type | keys[]" "$package_json")
27+
for dep_name in $dep_names; do
28+
if [[ "$dep_name" =~ ^@voiceflow/ || "$dep_name" =~ ^npm:@voiceflow/ ]]; then
29+
dep_version=$(jq -r ".$dep_type[\"$dep_name\"]" "$package_json")
30+
if [[ "$dep_version" =~ [^-]+-[a-zA-Z0-9]+ && ! "$dep_version" =~ ^npm:@voiceflow/ ]]; then
31+
echo "Pre-release dependency found in $package_json ($dep_type): $dep_name@$dep_version"
32+
has_pre_release=true
33+
fi
34+
fi
35+
done
36+
fi
37+
done
38+
done
39+
40+
if [ "$has_pre_release" = true ]; then
41+
echo "❌ Pre-release versions detected. Failing the workflow."
42+
exit 1
43+
fi
44+
45+
- name: Success Message
46+
if: success()
47+
run: echo "✅ No pre-release versions found."

0 commit comments

Comments
 (0)