@mks2508/better-logger 0.0.2-alpha.0 → 0.8.1-alpha.1
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-quality.yml +356 -0
- package/.github/workflows/docs-demo.yml +123 -0
- package/.github/workflows/releases-core.yml +448 -0
- package/.github/workflows/releases-full.yml +404 -0
- package/.github/{workflows → workflows-backup}/ci.yml +14 -100
- package/.github/workflows-backup/nightly.yml +196 -0
- package/.github/workflows-backup/release-optimized.yml +373 -0
- package/.github/{workflows → workflows-backup}/release.yml +22 -1
- package/.release-notes-0.2.0.md +129 -0
- package/CHANGELOG.json +658 -0
- package/README.md +110 -512
- package/demo.html +9 -2
- package/dist/Logger.d.ts +176 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +498 -0
- package/dist/chunks/{Logger-BrFKFZcD.js → Logger-CbCUS5pQ.js} +987 -5
- package/dist/chunks/Logger-CbCUS5pQ.js.map +1 -0
- package/dist/chunks/Logger-PCfgYKTP.js +2 -0
- package/dist/chunks/Logger-PCfgYKTP.js.map +1 -0
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
- package/dist/chunks/StyleBuilder-BoJTmskd.js +361 -0
- package/dist/chunks/StyleBuilder-BoJTmskd.js.map +1 -0
- package/dist/chunks/StyleBuilder-LPLzsoHY.js +4 -0
- package/dist/chunks/StyleBuilder-LPLzsoHY.js.map +1 -0
- package/dist/cli/CommandProcessor.d.ts +40 -0
- package/dist/cli/CommandProcessor.d.ts.map +1 -0
- package/dist/cli/CommandProcessor.js +57 -0
- package/dist/cli/commands/ConfigCommand.d.ts +17 -0
- package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/cli/commands/ConfigCommand.js +88 -0
- package/dist/cli/commands/ExportCommand.d.ts +51 -0
- package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
- package/dist/cli/commands/ExportCommand.js +243 -0
- package/dist/cli/commands/StatusCommand.d.ts +33 -0
- package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
- package/dist/cli/commands/StatusCommand.js +93 -0
- package/dist/cli/commands/ThemeCommand.d.ts +33 -0
- package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
- package/dist/cli/commands/ThemeCommand.js +79 -0
- package/dist/cli/help.d.ts +15 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +118 -0
- package/dist/cli/index.d.ts +15 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +40 -0
- package/dist/constants.d.ts +91 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +80 -0
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +130 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +258 -242
- package/dist/core.js.map +1 -1
- package/dist/example.d.ts +18 -0
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +154 -0
- package/dist/exports-module.d.ts +203 -0
- package/dist/exports-module.d.ts.map +1 -0
- package/dist/exports-module.js +260 -0
- package/dist/exports.cjs +1 -1
- package/dist/exports.cjs.map +1 -1
- package/dist/exports.js +2 -2
- package/dist/handlers/AnalyticsLogHandler.d.ts +11 -0
- package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
- package/dist/handlers/AnalyticsLogHandler.js +19 -0
- package/dist/handlers/ExportLogHandler.d.ts +103 -0
- package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
- package/dist/handlers/ExportLogHandler.js +516 -0
- package/dist/handlers/FileLogHandler.d.ts +13 -0
- package/dist/handlers/FileLogHandler.d.ts.map +1 -0
- package/dist/handlers/FileLogHandler.js +24 -0
- package/dist/handlers/RemoteLogHandler.d.ts +14 -0
- package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
- package/dist/handlers/RemoteLogHandler.js +37 -0
- package/dist/handlers/index.d.ts +8 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +7 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +86 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -103
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +139 -0
- package/dist/styling/StyleBuilder.d.ts +132 -0
- package/dist/styling/StyleBuilder.d.ts.map +1 -0
- package/dist/styling/StyleBuilder.js +268 -0
- package/dist/styling/banners.d.ts +45 -0
- package/dist/styling/banners.d.ts.map +1 -0
- package/dist/styling/banners.js +155 -0
- package/dist/styling/index.d.ts +7 -0
- package/dist/styling/index.d.ts.map +1 -0
- package/dist/styling/index.js +6 -0
- package/dist/styling/themes.d.ts +10 -0
- package/dist/styling/themes.d.ts.map +1 -0
- package/dist/styling/themes.js +231 -0
- package/dist/styling-module.d.ts +185 -0
- package/dist/styling-module.d.ts.map +1 -0
- package/dist/styling-module.js +199 -0
- package/dist/styling.cjs +1 -1
- package/dist/styling.cjs.map +1 -1
- package/dist/styling.js +4 -4
- package/dist/types/Logger.d.ts +172 -0
- package/dist/types/Logger.d.ts.map +1 -0
- package/dist/types/cli/CommandProcessor.d.ts +37 -0
- package/dist/types/cli/CommandProcessor.d.ts.map +1 -0
- package/dist/types/cli/commands/ConfigCommand.d.ts +14 -0
- package/dist/types/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/ExportCommand.d.ts +48 -0
- package/dist/types/cli/commands/ExportCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/StatusCommand.d.ts +30 -0
- package/dist/types/cli/commands/StatusCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/ThemeCommand.d.ts +30 -0
- package/dist/types/cli/commands/ThemeCommand.d.ts.map +1 -0
- package/dist/types/cli/help.d.ts +12 -0
- package/dist/types/cli/help.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +15 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/constants.d.ts +88 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/core.d.ts +71 -211
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +13 -0
- package/dist/types/example.d.ts +18 -0
- package/dist/types/example.d.ts.map +1 -0
- package/dist/types/exports-module.d.ts +196 -0
- package/dist/types/exports-module.d.ts.map +1 -0
- package/dist/types/handlers/AnalyticsLogHandler.d.ts +8 -0
- package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/ExportLogHandler.d.ts +100 -0
- package/dist/types/handlers/ExportLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/FileLogHandler.d.ts +10 -0
- package/dist/types/handlers/FileLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/RemoteLogHandler.d.ts +11 -0
- package/dist/types/handlers/RemoteLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/index.d.ts +8 -0
- package/dist/types/handlers/index.d.ts.map +1 -0
- package/dist/types/handlers.d.ts +88 -0
- package/dist/types/handlers.d.ts.map +1 -0
- package/dist/types/handlers.js +4 -0
- package/dist/types/index.d.ts +7 -675
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/main.d.ts +2 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/styling/StyleBuilder.d.ts +132 -0
- package/dist/types/styling/StyleBuilder.d.ts.map +1 -0
- package/dist/types/styling/banners.d.ts +42 -0
- package/dist/types/styling/banners.d.ts.map +1 -0
- package/dist/types/styling/index.d.ts +7 -0
- package/dist/types/styling/index.d.ts.map +1 -0
- package/dist/types/styling/themes.d.ts +7 -0
- package/dist/types/styling/themes.d.ts.map +1 -0
- package/dist/types/styling-module.d.ts +178 -0
- package/dist/types/styling-module.d.ts.map +1 -0
- package/dist/types/types/core.d.ts +71 -0
- package/dist/types/types/core.d.ts.map +1 -0
- package/dist/types/types/handlers.d.ts +85 -0
- package/dist/types/types/handlers.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +7 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +7 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/output.d.ts +29 -0
- package/dist/types/utils/output.d.ts.map +1 -0
- package/dist/types/utils/stackTrace.d.ts +6 -0
- package/dist/types/utils/stackTrace.d.ts.map +1 -0
- package/dist/types/utils/timestamps.d.ts +20 -0
- package/dist/types/utils/timestamps.d.ts.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/output.d.ts +32 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +97 -0
- package/dist/utils/stackTrace.d.ts +9 -0
- package/dist/utils/stackTrace.d.ts.map +1 -0
- package/dist/utils/stackTrace.js +81 -0
- package/dist/utils/timestamps.d.ts +20 -0
- package/dist/utils/timestamps.d.ts.map +1 -0
- package/dist/utils/timestamps.js +71 -0
- package/docs/API.md +607 -0
- package/docs/DEVELOPMENT.md +731 -0
- package/docs/_config.yml +36 -0
- package/docs/index.md +179 -0
- package/examples/README.md +208 -0
- package/examples/basic-logging.js +75 -0
- package/examples/data-export.js +234 -0
- package/examples/package.json +16 -0
- package/examples/performance-timing.js +170 -0
- package/examples/styling-themes.js +207 -0
- package/package.json +32 -19
- package/packages/core/package.json +35 -0
- package/packages/exports/package.json +41 -0
- package/packages/styling/package.json +41 -0
- package/project-utils/README.md +172 -0
- package/project-utils/auto-release-gemini.ts +1193 -0
- package/project-utils/commit-generator.ts +1000 -0
- package/project-utils/commit-ui.ts +246 -0
- package/project-utils/git-utils.ts +199 -0
- package/project-utils/github-release-manager.ts +466 -0
- package/project-utils/prompt-templates.js +345 -0
- package/project-utils/prompt-templates.ts +422 -0
- package/project-utils/version-manager.ts +1078 -0
- package/src/Logger.ts +2 -1
- package/src/handlers/ExportLogHandler.ts +141 -0
- package/vite.config.ts +152 -50
- package/.claude/settings.local.json +0 -16
- package/dist/chunks/Logger-BQhMKy_T.js +0 -2
- package/dist/chunks/Logger-BQhMKy_T.js.map +0 -1
- package/dist/chunks/Logger-BrFKFZcD.js.map +0 -1
- package/dist/chunks/core-2opW4Pi3.js +0 -194
- package/dist/chunks/core-2opW4Pi3.js.map +0 -1
- package/dist/chunks/core-DyugwSYZ.js +0 -4
- package/dist/chunks/core-DyugwSYZ.js.map +0 -1
- package/dist/chunks/exports-BNP3R7dp.js +0 -421
- package/dist/chunks/exports-BNP3R7dp.js.map +0 -1
- package/dist/chunks/exports-U1xLBXrY.js +0 -2
- package/dist/chunks/exports-U1xLBXrY.js.map +0 -1
- package/dist/chunks/styling-DhUDzwlE.js +0 -654
- package/dist/chunks/styling-DhUDzwlE.js.map +0 -1
- package/dist/chunks/styling-tmRDI28D.js +0 -2
- package/dist/chunks/styling-tmRDI28D.js.map +0 -1
- package/dist/types/exports.d.ts +0 -600
- package/dist/types/styling.d.ts +0 -751
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
name: Nightly Builds
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
# Ejecutar cada día a las 3:00 AM UTC
|
|
6
|
+
- cron: '0 3 * * *'
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
force_build:
|
|
10
|
+
description: 'Forzar build aunque no haya cambios'
|
|
11
|
+
required: false
|
|
12
|
+
default: false
|
|
13
|
+
type: boolean
|
|
14
|
+
|
|
15
|
+
env:
|
|
16
|
+
NODE_VERSION: '20'
|
|
17
|
+
REGISTRY_URL: 'https://registry.npmjs.org'
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
check-changes:
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
outputs:
|
|
23
|
+
has_changes: ${{ steps.changes.outputs.has_changes }}
|
|
24
|
+
last_commit: ${{ steps.changes.outputs.last_commit }}
|
|
25
|
+
commit_count: ${{ steps.changes.outputs.commit_count }}
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- name: 📥 Checkout code
|
|
29
|
+
uses: actions/checkout@v4
|
|
30
|
+
with:
|
|
31
|
+
fetch-depth: 0
|
|
32
|
+
|
|
33
|
+
- name: 🔍 Check for changes since last nightly
|
|
34
|
+
id: changes
|
|
35
|
+
run: |
|
|
36
|
+
# Buscar último tag nightly
|
|
37
|
+
LAST_NIGHTLY=$(git tag -l "nightly-*" | sort -V | tail -1 || echo "")
|
|
38
|
+
|
|
39
|
+
if [ -z "$LAST_NIGHTLY" ]; then
|
|
40
|
+
# No hay nightlies previos, verificar desde hace 24 horas
|
|
41
|
+
SINCE_DATE=$(date -d '24 hours ago' --iso-8601)
|
|
42
|
+
COMMITS_COUNT=$(git log --since="$SINCE_DATE" --oneline | wc -l)
|
|
43
|
+
else
|
|
44
|
+
# Verificar desde último nightly
|
|
45
|
+
COMMITS_COUNT=$(git log $LAST_NIGHTLY..HEAD --oneline | wc -l)
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
LAST_COMMIT=$(git rev-parse --short HEAD)
|
|
49
|
+
|
|
50
|
+
echo "commit_count=$COMMITS_COUNT" >> $GITHUB_OUTPUT
|
|
51
|
+
echo "last_commit=$LAST_COMMIT" >> $GITHUB_OUTPUT
|
|
52
|
+
|
|
53
|
+
if [ "$COMMITS_COUNT" -gt 0 ] || [ "${{ inputs.force_build }}" == "true" ]; then
|
|
54
|
+
echo "has_changes=true" >> $GITHUB_OUTPUT
|
|
55
|
+
echo "✅ Cambios detectados: $COMMITS_COUNT commits"
|
|
56
|
+
else
|
|
57
|
+
echo "has_changes=false" >> $GITHUB_OUTPUT
|
|
58
|
+
echo "ℹ️ No hay cambios desde último nightly"
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
nightly-build:
|
|
62
|
+
runs-on: ubuntu-latest
|
|
63
|
+
needs: check-changes
|
|
64
|
+
if: needs.check-changes.outputs.has_changes == 'true'
|
|
65
|
+
|
|
66
|
+
permissions:
|
|
67
|
+
contents: write
|
|
68
|
+
packages: write
|
|
69
|
+
id-token: write
|
|
70
|
+
|
|
71
|
+
steps:
|
|
72
|
+
- name: 📥 Checkout code
|
|
73
|
+
uses: actions/checkout@v4
|
|
74
|
+
with:
|
|
75
|
+
fetch-depth: 0
|
|
76
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
77
|
+
|
|
78
|
+
- name: 📦 Setup Node.js
|
|
79
|
+
uses: actions/setup-node@v4
|
|
80
|
+
with:
|
|
81
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
82
|
+
cache: 'npm'
|
|
83
|
+
registry-url: ${{ env.REGISTRY_URL }}
|
|
84
|
+
|
|
85
|
+
- name: 🔧 Install dependencies
|
|
86
|
+
run: npm ci
|
|
87
|
+
|
|
88
|
+
- name: 🏗️ Build library
|
|
89
|
+
run: npm run build
|
|
90
|
+
|
|
91
|
+
- name: 🧪 Run tests
|
|
92
|
+
run: |
|
|
93
|
+
npm run type-check
|
|
94
|
+
npm run test
|
|
95
|
+
npm run size-limit
|
|
96
|
+
|
|
97
|
+
- name: 🏷️ Generate nightly version
|
|
98
|
+
id: version
|
|
99
|
+
run: |
|
|
100
|
+
# Generar versión nightly usando commit y fecha
|
|
101
|
+
DATE=$(date +%Y%m%d)
|
|
102
|
+
SHORT_SHA="${{ needs.check-changes.outputs.last_commit }}"
|
|
103
|
+
BASE_VERSION=$(node -p "require('./package.json').version")
|
|
104
|
+
|
|
105
|
+
# Remover cualquier sufijo existente del base version
|
|
106
|
+
CLEAN_VERSION=$(echo $BASE_VERSION | sed 's/-.*//')
|
|
107
|
+
NIGHTLY_VERSION="${CLEAN_VERSION}-nightly.${DATE}.${SHORT_SHA}"
|
|
108
|
+
|
|
109
|
+
echo "version=$NIGHTLY_VERSION" >> $GITHUB_OUTPUT
|
|
110
|
+
echo "tag=nightly-$DATE-$SHORT_SHA" >> $GITHUB_OUTPUT
|
|
111
|
+
echo "🌙 Nightly version: $NIGHTLY_VERSION"
|
|
112
|
+
|
|
113
|
+
- name: 📝 Update package.json for nightly
|
|
114
|
+
run: |
|
|
115
|
+
npm version ${{ steps.version.outputs.version }} --no-git-tag-version
|
|
116
|
+
|
|
117
|
+
- name: 📦 Create nightly archives
|
|
118
|
+
run: |
|
|
119
|
+
mkdir -p nightly-dist
|
|
120
|
+
|
|
121
|
+
# Crear archivos de distribución nightly
|
|
122
|
+
tar -czf nightly-dist/better-logger-nightly-${{ steps.version.outputs.tag }}.tar.gz dist/ README.md package.json
|
|
123
|
+
zip -r nightly-dist/better-logger-nightly-${{ steps.version.outputs.tag }}.zip dist/ README.md package.json
|
|
124
|
+
|
|
125
|
+
- name: 🚀 Publish nightly to NPM
|
|
126
|
+
run: |
|
|
127
|
+
npm publish --tag nightly --access public
|
|
128
|
+
env:
|
|
129
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
130
|
+
|
|
131
|
+
- name: 📦 Publish nightly to GitHub Packages
|
|
132
|
+
run: |
|
|
133
|
+
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ~/.npmrc
|
|
134
|
+
echo "@mks2508:registry=https://npm.pkg.github.com" >> ~/.npmrc
|
|
135
|
+
npm publish --registry=https://npm.pkg.github.com --tag nightly --access public
|
|
136
|
+
|
|
137
|
+
- name: 🏷️ Create nightly tag
|
|
138
|
+
run: |
|
|
139
|
+
git config user.name "github-actions[bot]"
|
|
140
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
141
|
+
git tag -a "${{ steps.version.outputs.tag }}" -m "Nightly build ${{ steps.version.outputs.version }}"
|
|
142
|
+
git push origin "${{ steps.version.outputs.tag }}"
|
|
143
|
+
|
|
144
|
+
- name: 🌙 Create nightly release
|
|
145
|
+
uses: softprops/action-gh-release@v1
|
|
146
|
+
with:
|
|
147
|
+
tag_name: ${{ steps.version.outputs.tag }}
|
|
148
|
+
name: "Nightly Build ${{ steps.version.outputs.version }}"
|
|
149
|
+
body: |
|
|
150
|
+
🌙 **Nightly Build** - Experimental version for testing
|
|
151
|
+
|
|
152
|
+
**⚠️ This is a development build - not recommended for production use**
|
|
153
|
+
|
|
154
|
+
## 📋 Changes since last nightly
|
|
155
|
+
${{ needs.check-changes.outputs.commit_count }} commits included in this build.
|
|
156
|
+
|
|
157
|
+
## 📦 Installation
|
|
158
|
+
```bash
|
|
159
|
+
npm install @mks2508/better-logger@nightly
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## 🔗 Links
|
|
163
|
+
- **Commit**: https://github.com/MKS2508/advanced-logger/commit/${{ needs.check-changes.outputs.last_commit }}
|
|
164
|
+
- **NPM**: https://www.npmjs.com/package/@mks2508/better-logger/v/${{ steps.version.outputs.version }}
|
|
165
|
+
draft: false
|
|
166
|
+
prerelease: true
|
|
167
|
+
files: |
|
|
168
|
+
nightly-dist/better-logger-nightly-${{ steps.version.outputs.tag }}.tar.gz
|
|
169
|
+
nightly-dist/better-logger-nightly-${{ steps.version.outputs.tag }}.zip
|
|
170
|
+
env:
|
|
171
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
172
|
+
|
|
173
|
+
- name: 📊 Nightly build summary
|
|
174
|
+
run: |
|
|
175
|
+
echo "## 🌙 Nightly Build Complete!" >> $GITHUB_STEP_SUMMARY
|
|
176
|
+
echo "- **Version**: ${{ steps.version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
|
177
|
+
echo "- **Commits**: ${{ needs.check-changes.outputs.commit_count }}" >> $GITHUB_STEP_SUMMARY
|
|
178
|
+
echo "- **NPM**: https://www.npmjs.com/package/@mks2508/better-logger/v/${{ steps.version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
|
179
|
+
echo "- **GitHub**: https://github.com/MKS2508/advanced-logger/releases/tag/${{ steps.version.outputs.tag }}" >> $GITHUB_STEP_SUMMARY
|
|
180
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
181
|
+
echo "### 📦 Installation" >> $GITHUB_STEP_SUMMARY
|
|
182
|
+
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
|
|
183
|
+
echo "npm install @mks2508/better-logger@nightly" >> $GITHUB_STEP_SUMMARY
|
|
184
|
+
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|
|
185
|
+
|
|
186
|
+
no-changes:
|
|
187
|
+
runs-on: ubuntu-latest
|
|
188
|
+
needs: check-changes
|
|
189
|
+
if: needs.check-changes.outputs.has_changes == 'false'
|
|
190
|
+
|
|
191
|
+
steps:
|
|
192
|
+
- name: ℹ️ No changes detected
|
|
193
|
+
run: |
|
|
194
|
+
echo "## ℹ️ No Nightly Build Required" >> $GITHUB_STEP_SUMMARY
|
|
195
|
+
echo "No changes detected since last nightly build." >> $GITHUB_STEP_SUMMARY
|
|
196
|
+
echo "Use \`workflow_dispatch\` with \`force_build: true\` to force a build." >> $GITHUB_STEP_SUMMARY
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
name: Optimized Release Pipeline
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
release_type:
|
|
7
|
+
description: 'Tipo de release'
|
|
8
|
+
required: true
|
|
9
|
+
default: 'auto'
|
|
10
|
+
type: choice
|
|
11
|
+
options:
|
|
12
|
+
- auto
|
|
13
|
+
- patch
|
|
14
|
+
- minor
|
|
15
|
+
- major
|
|
16
|
+
- alpha
|
|
17
|
+
- beta
|
|
18
|
+
- stable
|
|
19
|
+
use_gemini:
|
|
20
|
+
description: 'Usar Gemini AI para versionado'
|
|
21
|
+
required: false
|
|
22
|
+
default: true
|
|
23
|
+
type: boolean
|
|
24
|
+
skip_tests:
|
|
25
|
+
description: 'Saltar tests (no recomendado)'
|
|
26
|
+
required: false
|
|
27
|
+
default: false
|
|
28
|
+
type: boolean
|
|
29
|
+
target_registry:
|
|
30
|
+
description: 'Registro objetivo'
|
|
31
|
+
required: false
|
|
32
|
+
default: 'both'
|
|
33
|
+
type: choice
|
|
34
|
+
options:
|
|
35
|
+
- npm
|
|
36
|
+
- github
|
|
37
|
+
- both
|
|
38
|
+
|
|
39
|
+
env:
|
|
40
|
+
NODE_VERSION: '20'
|
|
41
|
+
|
|
42
|
+
jobs:
|
|
43
|
+
# ===== VALIDATION & VERSIONING =====
|
|
44
|
+
prepare-release:
|
|
45
|
+
runs-on: ubuntu-latest
|
|
46
|
+
|
|
47
|
+
outputs:
|
|
48
|
+
version: ${{ steps.version.outputs.version }}
|
|
49
|
+
tag: ${{ steps.version.outputs.tag }}
|
|
50
|
+
is_prerelease: ${{ steps.version.outputs.is_prerelease }}
|
|
51
|
+
changelog: ${{ steps.version.outputs.changelog }}
|
|
52
|
+
release_channel: ${{ steps.version.outputs.release_channel }}
|
|
53
|
+
|
|
54
|
+
steps:
|
|
55
|
+
- name: 📥 Checkout code
|
|
56
|
+
uses: actions/checkout@v4
|
|
57
|
+
with:
|
|
58
|
+
fetch-depth: 0
|
|
59
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
60
|
+
|
|
61
|
+
- name: 📦 Setup Node.js
|
|
62
|
+
uses: actions/setup-node@v4
|
|
63
|
+
with:
|
|
64
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
65
|
+
cache: 'npm'
|
|
66
|
+
|
|
67
|
+
- name: 🔧 Install dependencies
|
|
68
|
+
run: npm ci
|
|
69
|
+
|
|
70
|
+
- name: 🧪 Run tests (unless skipped)
|
|
71
|
+
if: ${{ !inputs.skip_tests }}
|
|
72
|
+
run: |
|
|
73
|
+
npm run type-check
|
|
74
|
+
npm run lint
|
|
75
|
+
npm run test
|
|
76
|
+
npm run build
|
|
77
|
+
|
|
78
|
+
- name: 🏷️ Generate version with project-utils
|
|
79
|
+
id: version
|
|
80
|
+
run: |
|
|
81
|
+
if [ "${{ inputs.use_gemini }}" == "true" ] && [ "${{ inputs.release_type }}" == "auto" ]; then
|
|
82
|
+
# Usar auto-release con Gemini para detección inteligente
|
|
83
|
+
echo "🤖 Usando Gemini AI para versionado automático..."
|
|
84
|
+
npm run version:auto
|
|
85
|
+
elif [ "${{ inputs.release_type }}" == "auto" ]; then
|
|
86
|
+
# Auto-detección sin Gemini
|
|
87
|
+
echo "🔍 Auto-detectando tipo de versión..."
|
|
88
|
+
npm run version:auto
|
|
89
|
+
else
|
|
90
|
+
# Tipo específico forzado
|
|
91
|
+
echo "🎯 Usando tipo de versión forzado: ${{ inputs.release_type }}"
|
|
92
|
+
case "${{ inputs.release_type }}" in
|
|
93
|
+
"patch") npm run version:patch ;;
|
|
94
|
+
"minor") npm run version:minor ;;
|
|
95
|
+
"major") npm run version:major ;;
|
|
96
|
+
"alpha") npm run version:alpha ;;
|
|
97
|
+
"beta") npm run version:beta ;;
|
|
98
|
+
"stable") npm run version:stable ;;
|
|
99
|
+
esac
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
# Obtener nueva versión del package.json
|
|
103
|
+
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
104
|
+
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
105
|
+
echo "tag=v$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
106
|
+
|
|
107
|
+
# Determinar si es prerelease y canal
|
|
108
|
+
if [[ "$NEW_VERSION" == *"alpha"* ]]; then
|
|
109
|
+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
|
110
|
+
echo "release_channel=alpha" >> $GITHUB_OUTPUT
|
|
111
|
+
elif [[ "$NEW_VERSION" == *"beta"* ]]; then
|
|
112
|
+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
|
113
|
+
echo "release_channel=beta" >> $GITHUB_OUTPUT
|
|
114
|
+
else
|
|
115
|
+
echo "is_prerelease=false" >> $GITHUB_OUTPUT
|
|
116
|
+
echo "release_channel=latest" >> $GITHUB_OUTPUT
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
echo "📦 Nueva versión: $NEW_VERSION"
|
|
120
|
+
|
|
121
|
+
- name: 📝 Generate changelog
|
|
122
|
+
id: changelog
|
|
123
|
+
run: |
|
|
124
|
+
# Usar project-utils para generar changelog si existe
|
|
125
|
+
if [ -f "project-utils/.temp/commit-proposal"*".md" ]; then
|
|
126
|
+
echo "📋 Usando changelog de project-utils..."
|
|
127
|
+
CHANGELOG=$(cat project-utils/.temp/commit-proposal*.md | head -n 20)
|
|
128
|
+
else
|
|
129
|
+
# Fallback a changelog tradicional
|
|
130
|
+
LAST_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || echo "")
|
|
131
|
+
if [ -n "$LAST_TAG" ]; then
|
|
132
|
+
echo "📋 Generando changelog desde $LAST_TAG..."
|
|
133
|
+
CHANGELOG=$(git log $LAST_TAG..HEAD --pretty=format:"- %s (%h)")
|
|
134
|
+
else
|
|
135
|
+
echo "📋 Changelog de release inicial..."
|
|
136
|
+
CHANGELOG="- Initial release with complete Better Logger functionality"
|
|
137
|
+
fi
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
# Guardar changelog en archivo para uso posterior
|
|
141
|
+
echo "$CHANGELOG" > RELEASE_CHANGELOG.md
|
|
142
|
+
echo "changelog=$(echo "$CHANGELOG" | base64 -w 0)" >> $GITHUB_OUTPUT
|
|
143
|
+
|
|
144
|
+
- name: 🏗️ Build optimized
|
|
145
|
+
run: |
|
|
146
|
+
npm run build
|
|
147
|
+
|
|
148
|
+
# Verificar que todos los archivos esperados existen
|
|
149
|
+
echo "📊 Verificando build outputs..."
|
|
150
|
+
ls -la dist/
|
|
151
|
+
|
|
152
|
+
# Guardar información de bundle sizes
|
|
153
|
+
echo "## 📦 Bundle Sizes" > BUNDLE_SIZES.md
|
|
154
|
+
echo "\`\`\`" >> BUNDLE_SIZES.md
|
|
155
|
+
ls -lh dist/*.js dist/*.cjs | grep -E '\.(js|cjs)$' >> BUNDLE_SIZES.md
|
|
156
|
+
echo "\`\`\`" >> BUNDLE_SIZES.md
|
|
157
|
+
|
|
158
|
+
- name: 📤 Upload build artifacts
|
|
159
|
+
uses: actions/upload-artifact@v4
|
|
160
|
+
with:
|
|
161
|
+
name: release-build-${{ steps.version.outputs.version }}
|
|
162
|
+
path: |
|
|
163
|
+
dist/
|
|
164
|
+
RELEASE_CHANGELOG.md
|
|
165
|
+
BUNDLE_SIZES.md
|
|
166
|
+
retention-days: 30
|
|
167
|
+
|
|
168
|
+
# ===== SMART PUBLISHING =====
|
|
169
|
+
publish-packages:
|
|
170
|
+
runs-on: ubuntu-latest
|
|
171
|
+
needs: prepare-release
|
|
172
|
+
if: ${{ inputs.target_registry == 'npm' || inputs.target_registry == 'both' }}
|
|
173
|
+
|
|
174
|
+
steps:
|
|
175
|
+
- name: 📥 Checkout code
|
|
176
|
+
uses: actions/checkout@v4
|
|
177
|
+
|
|
178
|
+
- name: 📦 Setup Node.js for NPM
|
|
179
|
+
uses: actions/setup-node@v4
|
|
180
|
+
with:
|
|
181
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
182
|
+
cache: 'npm'
|
|
183
|
+
registry-url: 'https://registry.npmjs.org'
|
|
184
|
+
|
|
185
|
+
- name: 📥 Download build artifacts
|
|
186
|
+
uses: actions/download-artifact@v4
|
|
187
|
+
with:
|
|
188
|
+
name: release-build-${{ needs.prepare-release.outputs.version }}
|
|
189
|
+
|
|
190
|
+
- name: 🔄 Update package version
|
|
191
|
+
run: npm version ${{ needs.prepare-release.outputs.version }} --no-git-tag-version
|
|
192
|
+
|
|
193
|
+
- name: 🚀 Publish to NPM
|
|
194
|
+
run: |
|
|
195
|
+
if [ "${{ needs.prepare-release.outputs.is_prerelease }}" == "true" ]; then
|
|
196
|
+
echo "📦 Publishing prerelease to NPM with tag: ${{ needs.prepare-release.outputs.release_channel }}"
|
|
197
|
+
npm publish --access public --tag ${{ needs.prepare-release.outputs.release_channel }}
|
|
198
|
+
else
|
|
199
|
+
echo "📦 Publishing stable release to NPM"
|
|
200
|
+
npm publish --access public
|
|
201
|
+
fi
|
|
202
|
+
env:
|
|
203
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
204
|
+
|
|
205
|
+
publish-github:
|
|
206
|
+
runs-on: ubuntu-latest
|
|
207
|
+
needs: prepare-release
|
|
208
|
+
if: ${{ inputs.target_registry == 'github' || inputs.target_registry == 'both' }}
|
|
209
|
+
|
|
210
|
+
steps:
|
|
211
|
+
- name: 📥 Checkout code
|
|
212
|
+
uses: actions/checkout@v4
|
|
213
|
+
|
|
214
|
+
- name: 📦 Setup Node.js for GitHub Packages
|
|
215
|
+
uses: actions/setup-node@v4
|
|
216
|
+
with:
|
|
217
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
218
|
+
cache: 'npm'
|
|
219
|
+
registry-url: 'https://npm.pkg.github.com'
|
|
220
|
+
|
|
221
|
+
- name: 📥 Download build artifacts
|
|
222
|
+
uses: actions/download-artifact@v4
|
|
223
|
+
with:
|
|
224
|
+
name: release-build-${{ needs.prepare-release.outputs.version }}
|
|
225
|
+
|
|
226
|
+
- name: 🔄 Update package version
|
|
227
|
+
run: npm version ${{ needs.prepare-release.outputs.version }} --no-git-tag-version
|
|
228
|
+
|
|
229
|
+
- name: 📦 Publish to GitHub Packages
|
|
230
|
+
run: |
|
|
231
|
+
if [ "${{ needs.prepare-release.outputs.is_prerelease }}" == "true" ]; then
|
|
232
|
+
echo "📦 Publishing prerelease to GitHub Packages with tag: ${{ needs.prepare-release.outputs.release_channel }}"
|
|
233
|
+
npm publish --access public --tag ${{ needs.prepare-release.outputs.release_channel }}
|
|
234
|
+
else
|
|
235
|
+
echo "📦 Publishing stable release to GitHub Packages"
|
|
236
|
+
npm publish --access public
|
|
237
|
+
fi
|
|
238
|
+
env:
|
|
239
|
+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
240
|
+
|
|
241
|
+
# ===== GITHUB RELEASE =====
|
|
242
|
+
create-github-release:
|
|
243
|
+
runs-on: ubuntu-latest
|
|
244
|
+
needs: [prepare-release, publish-packages, publish-github]
|
|
245
|
+
if: always() && needs.prepare-release.result == 'success'
|
|
246
|
+
|
|
247
|
+
permissions:
|
|
248
|
+
contents: write
|
|
249
|
+
id-token: write
|
|
250
|
+
|
|
251
|
+
steps:
|
|
252
|
+
- name: 📥 Checkout code
|
|
253
|
+
uses: actions/checkout@v4
|
|
254
|
+
with:
|
|
255
|
+
fetch-depth: 0
|
|
256
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
257
|
+
|
|
258
|
+
- name: 📥 Download build artifacts
|
|
259
|
+
uses: actions/download-artifact@v4
|
|
260
|
+
with:
|
|
261
|
+
name: release-build-${{ needs.prepare-release.outputs.version }}
|
|
262
|
+
|
|
263
|
+
- name: 📦 Create release archives
|
|
264
|
+
run: |
|
|
265
|
+
VERSION=${{ needs.prepare-release.outputs.version }}
|
|
266
|
+
|
|
267
|
+
# Crear archivos de distribución
|
|
268
|
+
tar -czf better-logger-${VERSION}.tar.gz dist/ docs/ README.md package.json
|
|
269
|
+
zip -r better-logger-${VERSION}.zip dist/ docs/ README.md package.json
|
|
270
|
+
|
|
271
|
+
# Crear paquetes modulares
|
|
272
|
+
cd dist
|
|
273
|
+
tar -czf ../better-logger-core-${VERSION}.tar.gz core.* types/core.d.ts 2>/dev/null || true
|
|
274
|
+
tar -czf ../better-logger-styling-${VERSION}.tar.gz styling.* types/styling.d.ts 2>/dev/null || true
|
|
275
|
+
tar -czf ../better-logger-exports-${VERSION}.tar.gz exports.* types/exports.d.ts 2>/dev/null || true
|
|
276
|
+
cd ..
|
|
277
|
+
|
|
278
|
+
- name: 🏷️ Commit and tag
|
|
279
|
+
run: |
|
|
280
|
+
git config user.name "github-actions[bot]"
|
|
281
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
282
|
+
git add package.json
|
|
283
|
+
git commit -m "chore: release ${{ needs.prepare-release.outputs.version }}" || true
|
|
284
|
+
git tag -a "${{ needs.prepare-release.outputs.tag }}" -m "Release ${{ needs.prepare-release.outputs.version }}"
|
|
285
|
+
git push origin main --tags
|
|
286
|
+
|
|
287
|
+
- name: 📝 Prepare release notes
|
|
288
|
+
run: |
|
|
289
|
+
VERSION=${{ needs.prepare-release.outputs.version }}
|
|
290
|
+
CHANGELOG=$(echo "${{ needs.prepare-release.outputs.changelog }}" | base64 -d)
|
|
291
|
+
|
|
292
|
+
echo "# Better Logger ${VERSION}" > FINAL_RELEASE_NOTES.md
|
|
293
|
+
echo "" >> FINAL_RELEASE_NOTES.md
|
|
294
|
+
|
|
295
|
+
if [ "${{ needs.prepare-release.outputs.is_prerelease }}" == "true" ]; then
|
|
296
|
+
echo "⚠️ **This is a pre-release version** - Not recommended for production use." >> FINAL_RELEASE_NOTES.md
|
|
297
|
+
echo "" >> FINAL_RELEASE_NOTES.md
|
|
298
|
+
fi
|
|
299
|
+
|
|
300
|
+
echo "## 🔄 Changes" >> FINAL_RELEASE_NOTES.md
|
|
301
|
+
echo "$CHANGELOG" >> FINAL_RELEASE_NOTES.md
|
|
302
|
+
echo "" >> FINAL_RELEASE_NOTES.md
|
|
303
|
+
|
|
304
|
+
cat BUNDLE_SIZES.md >> FINAL_RELEASE_NOTES.md
|
|
305
|
+
echo "" >> FINAL_RELEASE_NOTES.md
|
|
306
|
+
|
|
307
|
+
echo "## 📦 Installation" >> FINAL_RELEASE_NOTES.md
|
|
308
|
+
if [ "${{ needs.prepare-release.outputs.is_prerelease }}" == "true" ]; then
|
|
309
|
+
echo "\`\`\`bash" >> FINAL_RELEASE_NOTES.md
|
|
310
|
+
echo "npm install @mks2508/better-logger@${{ needs.prepare-release.outputs.release_channel }}" >> FINAL_RELEASE_NOTES.md
|
|
311
|
+
echo "\`\`\`" >> FINAL_RELEASE_NOTES.md
|
|
312
|
+
else
|
|
313
|
+
echo "\`\`\`bash" >> FINAL_RELEASE_NOTES.md
|
|
314
|
+
echo "npm install @mks2508/better-logger" >> FINAL_RELEASE_NOTES.md
|
|
315
|
+
echo "\`\`\`" >> FINAL_RELEASE_NOTES.md
|
|
316
|
+
fi
|
|
317
|
+
|
|
318
|
+
- name: 🚀 Create GitHub Release
|
|
319
|
+
uses: softprops/action-gh-release@v1
|
|
320
|
+
with:
|
|
321
|
+
tag_name: ${{ needs.prepare-release.outputs.tag }}
|
|
322
|
+
name: Better Logger ${{ needs.prepare-release.outputs.version }}
|
|
323
|
+
body_path: FINAL_RELEASE_NOTES.md
|
|
324
|
+
draft: false
|
|
325
|
+
prerelease: ${{ needs.prepare-release.outputs.is_prerelease == 'true' }}
|
|
326
|
+
files: |
|
|
327
|
+
better-logger-${{ needs.prepare-release.outputs.version }}.tar.gz
|
|
328
|
+
better-logger-${{ needs.prepare-release.outputs.version }}.zip
|
|
329
|
+
better-logger-core-${{ needs.prepare-release.outputs.version }}.tar.gz
|
|
330
|
+
better-logger-styling-${{ needs.prepare-release.outputs.version }}.tar.gz
|
|
331
|
+
better-logger-exports-${{ needs.prepare-release.outputs.version }}.tar.gz
|
|
332
|
+
env:
|
|
333
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
334
|
+
|
|
335
|
+
# ===== POST-RELEASE SUMMARY =====
|
|
336
|
+
release-summary:
|
|
337
|
+
runs-on: ubuntu-latest
|
|
338
|
+
needs: [prepare-release, publish-packages, publish-github, create-github-release]
|
|
339
|
+
if: always() && needs.prepare-release.result == 'success'
|
|
340
|
+
|
|
341
|
+
steps:
|
|
342
|
+
- name: 📊 Release Summary
|
|
343
|
+
run: |
|
|
344
|
+
VERSION="${{ needs.prepare-release.outputs.version }}"
|
|
345
|
+
TAG="${{ needs.prepare-release.outputs.tag }}"
|
|
346
|
+
CHANNEL="${{ needs.prepare-release.outputs.release_channel }}"
|
|
347
|
+
IS_PRERELEASE="${{ needs.prepare-release.outputs.is_prerelease }}"
|
|
348
|
+
|
|
349
|
+
echo "## 🎉 Release Complete!" >> $GITHUB_STEP_SUMMARY
|
|
350
|
+
echo "- **Version**: $VERSION" >> $GITHUB_STEP_SUMMARY
|
|
351
|
+
echo "- **Channel**: $CHANNEL" >> $GITHUB_STEP_SUMMARY
|
|
352
|
+
echo "- **Prerelease**: $IS_PRERELEASE" >> $GITHUB_STEP_SUMMARY
|
|
353
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
354
|
+
|
|
355
|
+
echo "### 🔗 Links" >> $GITHUB_STEP_SUMMARY
|
|
356
|
+
if [ "${{ inputs.target_registry == 'npm' || inputs.target_registry == 'both' }}" ]; then
|
|
357
|
+
echo "- **NPM**: https://www.npmjs.com/package/@mks2508/better-logger" >> $GITHUB_STEP_SUMMARY
|
|
358
|
+
fi
|
|
359
|
+
if [ "${{ inputs.target_registry == 'github' || inputs.target_registry == 'both' }}" ]; then
|
|
360
|
+
echo "- **GitHub Packages**: https://github.com/MKS2508/advanced-logger/packages/" >> $GITHUB_STEP_SUMMARY
|
|
361
|
+
fi
|
|
362
|
+
echo "- **GitHub Release**: https://github.com/MKS2508/advanced-logger/releases/tag/$TAG" >> $GITHUB_STEP_SUMMARY
|
|
363
|
+
echo "- **Documentation**: https://mks2508.github.io/advanced-logger/" >> $GITHUB_STEP_SUMMARY
|
|
364
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
365
|
+
|
|
366
|
+
echo "### 📦 Installation" >> $GITHUB_STEP_SUMMARY
|
|
367
|
+
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
|
|
368
|
+
if [ "$IS_PRERELEASE" == "true" ]; then
|
|
369
|
+
echo "npm install @mks2508/better-logger@$CHANNEL" >> $GITHUB_STEP_SUMMARY
|
|
370
|
+
else
|
|
371
|
+
echo "npm install @mks2508/better-logger" >> $GITHUB_STEP_SUMMARY
|
|
372
|
+
fi
|
|
373
|
+
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|
|
@@ -97,6 +97,10 @@ jobs:
|
|
|
97
97
|
create-release:
|
|
98
98
|
runs-on: ubuntu-latest
|
|
99
99
|
needs: pre-release
|
|
100
|
+
permissions:
|
|
101
|
+
contents: write
|
|
102
|
+
packages: write
|
|
103
|
+
id-token: write
|
|
100
104
|
|
|
101
105
|
steps:
|
|
102
106
|
- name: 📥 Checkout code
|
|
@@ -163,7 +167,7 @@ jobs:
|
|
|
163
167
|
git tag -a "${{ needs.pre-release.outputs.tag }}" -m "Release ${{ needs.pre-release.outputs.version }}"
|
|
164
168
|
git push origin main --tags
|
|
165
169
|
|
|
166
|
-
- name: 🚀 Publish to NPM
|
|
170
|
+
- name: 🚀 Publish to NPM Registry
|
|
167
171
|
run: |
|
|
168
172
|
if [[ "${{ inputs.release_type }}" == "alpha" || "${{ inputs.release_type }}" == "beta" ]]; then
|
|
169
173
|
npm run ci:publish -- --tag ${{ inputs.release_type }}
|
|
@@ -172,6 +176,19 @@ jobs:
|
|
|
172
176
|
fi
|
|
173
177
|
env:
|
|
174
178
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
179
|
+
|
|
180
|
+
- name: 📦 Setup GitHub Packages Registry
|
|
181
|
+
run: |
|
|
182
|
+
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ~/.npmrc
|
|
183
|
+
echo "@mks2508:registry=https://npm.pkg.github.com" >> ~/.npmrc
|
|
184
|
+
|
|
185
|
+
- name: 📦 Publish to GitHub Packages
|
|
186
|
+
run: |
|
|
187
|
+
if [[ "${{ inputs.release_type }}" == "alpha" || "${{ inputs.release_type }}" == "beta" ]]; then
|
|
188
|
+
npm publish --registry=https://npm.pkg.github.com --access=public --tag ${{ inputs.release_type }} --ignore-scripts
|
|
189
|
+
else
|
|
190
|
+
npm publish --registry=https://npm.pkg.github.com --access=public --ignore-scripts
|
|
191
|
+
fi
|
|
175
192
|
|
|
176
193
|
- name: 🏷️ Create GitHub Release
|
|
177
194
|
uses: softprops/action-gh-release@v1
|
|
@@ -194,6 +211,10 @@ jobs:
|
|
|
194
211
|
post-release:
|
|
195
212
|
runs-on: ubuntu-latest
|
|
196
213
|
needs: [pre-release, create-release]
|
|
214
|
+
permissions:
|
|
215
|
+
contents: read
|
|
216
|
+
pages: write
|
|
217
|
+
id-token: write
|
|
197
218
|
|
|
198
219
|
steps:
|
|
199
220
|
- name: 📥 Checkout code
|