@stonyx/utils 0.2.2 → 0.2.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +3 -3
- package/.github/workflows/publish.yml +143 -0
- package/package.json +10 -1
package/.github/workflows/ci.yml
CHANGED
|
@@ -26,11 +26,11 @@ jobs:
|
|
|
26
26
|
- name: Set up Node.js
|
|
27
27
|
uses: actions/setup-node@v3
|
|
28
28
|
with:
|
|
29
|
-
node-version:
|
|
29
|
+
node-version: 24.13.0
|
|
30
30
|
cache: 'pnpm'
|
|
31
31
|
|
|
32
32
|
- name: Install dependencies
|
|
33
|
-
run: pnpm
|
|
33
|
+
run: pnpm install --frozen-lockfile
|
|
34
34
|
|
|
35
35
|
- name: Run tests
|
|
36
|
-
run: pnpm test
|
|
36
|
+
run: pnpm test
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
name: Publish to NPM
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Manual trigger (kept for flexibility)
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
inputs:
|
|
7
|
+
version-type:
|
|
8
|
+
description: 'Version type'
|
|
9
|
+
required: true
|
|
10
|
+
type: choice
|
|
11
|
+
options:
|
|
12
|
+
- alpha
|
|
13
|
+
- patch
|
|
14
|
+
- minor
|
|
15
|
+
- major
|
|
16
|
+
custom-version:
|
|
17
|
+
description: 'Custom version (optional, overrides version-type)'
|
|
18
|
+
required: false
|
|
19
|
+
type: string
|
|
20
|
+
|
|
21
|
+
# Auto-publish alpha on PR
|
|
22
|
+
pull_request:
|
|
23
|
+
types: [opened, synchronize, reopened]
|
|
24
|
+
branches: [main, dev]
|
|
25
|
+
|
|
26
|
+
# Auto-publish stable on merge to main
|
|
27
|
+
push:
|
|
28
|
+
branches: [main]
|
|
29
|
+
|
|
30
|
+
permissions:
|
|
31
|
+
contents: write
|
|
32
|
+
id-token: write # Required for npm provenance
|
|
33
|
+
pull-requests: write # For PR comments
|
|
34
|
+
|
|
35
|
+
jobs:
|
|
36
|
+
publish:
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- name: Checkout code
|
|
41
|
+
uses: actions/checkout@v3
|
|
42
|
+
with:
|
|
43
|
+
fetch-depth: 0
|
|
44
|
+
# For PR events, check out the PR branch
|
|
45
|
+
ref: ${{ github.event_name == 'pull_request' && github.head_ref || github.ref }}
|
|
46
|
+
|
|
47
|
+
- name: Setup pnpm
|
|
48
|
+
uses: pnpm/action-setup@v4
|
|
49
|
+
with:
|
|
50
|
+
version: 9
|
|
51
|
+
|
|
52
|
+
- name: Set up Node.js
|
|
53
|
+
uses: actions/setup-node@v3
|
|
54
|
+
with:
|
|
55
|
+
node-version: 24.13.0
|
|
56
|
+
cache: 'pnpm'
|
|
57
|
+
registry-url: 'https://registry.npmjs.org'
|
|
58
|
+
|
|
59
|
+
- name: Install dependencies
|
|
60
|
+
run: pnpm install --frozen-lockfile
|
|
61
|
+
|
|
62
|
+
- name: Run tests
|
|
63
|
+
run: pnpm test
|
|
64
|
+
|
|
65
|
+
- name: Configure git
|
|
66
|
+
run: |
|
|
67
|
+
git config user.name "github-actions[bot]"
|
|
68
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
69
|
+
|
|
70
|
+
# Determine version type based on trigger
|
|
71
|
+
- name: Determine version bump type
|
|
72
|
+
id: version-type
|
|
73
|
+
run: |
|
|
74
|
+
if [ "${{ github.event_name }}" = "pull_request" ]; then
|
|
75
|
+
echo "type=alpha" >> $GITHUB_OUTPUT
|
|
76
|
+
elif [ "${{ github.event_name }}" = "push" ]; then
|
|
77
|
+
echo "type=patch" >> $GITHUB_OUTPUT
|
|
78
|
+
elif [ "${{ github.event.inputs.custom-version }}" != "" ]; then
|
|
79
|
+
echo "type=custom" >> $GITHUB_OUTPUT
|
|
80
|
+
else
|
|
81
|
+
echo "type=${{ github.event.inputs.version-type }}" >> $GITHUB_OUTPUT
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
# Version bumping
|
|
85
|
+
- name: Bump version (custom)
|
|
86
|
+
if: steps.version-type.outputs.type == 'custom'
|
|
87
|
+
run: pnpm version ${{ github.event.inputs.custom-version }} --no-git-tag-version
|
|
88
|
+
|
|
89
|
+
- name: Bump version (alpha)
|
|
90
|
+
if: steps.version-type.outputs.type == 'alpha'
|
|
91
|
+
run: pnpm version prerelease --preid=alpha --no-git-tag-version
|
|
92
|
+
|
|
93
|
+
- name: Bump version (patch/minor/major)
|
|
94
|
+
if: steps.version-type.outputs.type == 'patch' || steps.version-type.outputs.type == 'minor' || steps.version-type.outputs.type == 'major'
|
|
95
|
+
run: pnpm version ${{ steps.version-type.outputs.type }} --no-git-tag-version
|
|
96
|
+
|
|
97
|
+
- name: Get package version
|
|
98
|
+
id: package-version
|
|
99
|
+
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
|
|
100
|
+
|
|
101
|
+
# Publishing
|
|
102
|
+
- name: Publish to NPM (alpha)
|
|
103
|
+
if: contains(steps.package-version.outputs.version, 'alpha')
|
|
104
|
+
run: pnpm publish --tag alpha --access public --no-git-checks
|
|
105
|
+
|
|
106
|
+
- name: Publish to NPM (stable)
|
|
107
|
+
if: "!contains(steps.package-version.outputs.version, 'alpha')"
|
|
108
|
+
run: pnpm publish --access public
|
|
109
|
+
|
|
110
|
+
# Only commit and tag for stable releases (push to main or manual stable)
|
|
111
|
+
- name: Commit version bump and create tag
|
|
112
|
+
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && !contains(steps.package-version.outputs.version, 'alpha'))
|
|
113
|
+
run: |
|
|
114
|
+
git add package.json
|
|
115
|
+
git commit -m "chore: release v${{ steps.package-version.outputs.version }}"
|
|
116
|
+
git tag v${{ steps.package-version.outputs.version }}
|
|
117
|
+
git push origin main --tags
|
|
118
|
+
|
|
119
|
+
- name: Create GitHub Release
|
|
120
|
+
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && !contains(steps.package-version.outputs.version, 'alpha'))
|
|
121
|
+
uses: actions/create-release@v1
|
|
122
|
+
env:
|
|
123
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
124
|
+
with:
|
|
125
|
+
tag_name: v${{ steps.package-version.outputs.version }}
|
|
126
|
+
release_name: v${{ steps.package-version.outputs.version }}
|
|
127
|
+
draft: false
|
|
128
|
+
prerelease: false
|
|
129
|
+
|
|
130
|
+
# Add PR comment with alpha version info
|
|
131
|
+
- name: Comment on PR with alpha version
|
|
132
|
+
if: github.event_name == 'pull_request'
|
|
133
|
+
uses: actions/github-script@v6
|
|
134
|
+
with:
|
|
135
|
+
script: |
|
|
136
|
+
const version = '${{ steps.package-version.outputs.version }}';
|
|
137
|
+
const packageName = require('./package.json').name;
|
|
138
|
+
github.rest.issues.createComment({
|
|
139
|
+
issue_number: context.issue.number,
|
|
140
|
+
owner: context.repo.owner,
|
|
141
|
+
repo: context.repo.repo,
|
|
142
|
+
body: `## 🚀 Alpha Version Published\n\n**Version:** \`${version}\`\n\n**Install:**\n\`\`\`bash\npnpm add ${packageName}@${version}\n# or\npnpm add ${packageName}@alpha # latest alpha\n\`\`\`\n\nThis alpha version is now available for testing!`
|
|
143
|
+
});
|
package/package.json
CHANGED
|
@@ -3,8 +3,12 @@
|
|
|
3
3
|
"keywords": [
|
|
4
4
|
"stonyx-module"
|
|
5
5
|
],
|
|
6
|
-
"version": "0.2.
|
|
6
|
+
"version": "0.2.3-alpha.0",
|
|
7
7
|
"description": "Utils module for Stonyx Framework",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/abofs/stonyx-utils"
|
|
11
|
+
},
|
|
8
12
|
"type": "module",
|
|
9
13
|
"exports": {
|
|
10
14
|
"./date": "./src/date.js",
|
|
@@ -13,6 +17,10 @@
|
|
|
13
17
|
"./promise": "./src/promise.js",
|
|
14
18
|
"./string": "./src/string.js"
|
|
15
19
|
},
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public",
|
|
22
|
+
"provenance": true
|
|
23
|
+
},
|
|
16
24
|
"author": "Stone Costa",
|
|
17
25
|
"license": "Apache-2.0",
|
|
18
26
|
"contributors": [
|
|
@@ -23,6 +31,7 @@
|
|
|
23
31
|
"qunit": "^2.24.1",
|
|
24
32
|
"sinon": "^21.0.0"
|
|
25
33
|
},
|
|
34
|
+
"dependencies": {},
|
|
26
35
|
"scripts": {
|
|
27
36
|
"test": "qunit"
|
|
28
37
|
}
|