1+ name : Publish to NPM
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+
8+ jobs :
9+ publish :
10+ runs-on : ubuntu-latest
11+ steps :
12+ - name : Checkout
13+ uses : actions/checkout@v4
14+
15+ - name : Install pnpm
16+ uses : pnpm/action-setup@v4
17+ with :
18+ version : 10
19+
20+ - name : Install Node.js
21+ uses : actions/setup-node@v4
22+ with :
23+ node-version : 20
24+ cache : " pnpm"
25+ registry-url : " https://registry.npmjs.org"
26+
27+ - name : Install dependencies
28+ run : pnpm install --frozen-lockfile
29+
30+ - name : Bump version
31+ id : version_bump
32+ run : |
33+ PACKAGE_NAME=$(node -p "require('./package.json').name")
34+ CURRENT_VERSION=$(node -p "require('./package.json').version")
35+ NPM_VERSION=$(npm view $PACKAGE_NAME version 2>/dev/null || echo "0.0.0")
36+
37+ pnpm add semver
38+ IS_CURRENT_GREATER=$(node -e "console.log(require('semver').gt('$CURRENT_VERSION', '$NPM_VERSION'))")
39+
40+ if [ "$IS_CURRENT_GREATER" = "true" ]; then
41+ echo "Version in package.json ($CURRENT_VERSION) is greater than npm version ($NPM_VERSION). No bump needed."
42+ echo "new_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
43+ echo "version_changed=false" >> $GITHUB_OUTPUT
44+ else
45+ echo "Bumping version..."
46+ pnpm version prerelease --preid alpha --no-git-tag-version
47+ NEW_VERSION=$(node -p "require('./package.json').version")
48+ echo "New version: $NEW_VERSION"
49+ echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
50+ echo "version_changed=true" >> $GITHUB_OUTPUT
51+ fi
52+ env :
53+ NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
54+
55+ - name : Build
56+ run : pnpm run build
57+
58+ - name : Create a .env file and .env.test file
59+ run : |
60+ echo "NILLION_API_KEY=${{ secrets.NILLION_API_KEY }}" > .env
61+ echo "NILLION_API_KEY=${{ secrets.NILLION_API_KEY }}" > .env.test
62+
63+ - name : Test
64+ run : pnpm run test
65+
66+ - name : Publish to NPM
67+ run : pnpm publish --no-git-checks
68+ env :
69+ NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
0 commit comments