@mks2508/better-logger 0.0.2-alpha.2 → 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 +12 -110
- package/.github/workflows-backup/nightly.yml +196 -0
- package/.github/workflows-backup/release-optimized.yml +373 -0
- 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 +24 -21
- 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 -22
- package/.npmrc.bak +0 -1
- 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
- /package/.github/{workflows → workflows-backup}/release.yml +0 -0
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Core Modular Releases - AI Enhanced (Manual Only)
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
inputs:
|
|
7
|
+
module:
|
|
8
|
+
description: 'Módulo a construir y publicar'
|
|
9
|
+
required: true
|
|
10
|
+
default: 'all'
|
|
11
|
+
type: choice
|
|
12
|
+
options:
|
|
13
|
+
- all
|
|
14
|
+
- core
|
|
15
|
+
- styling
|
|
16
|
+
- exports
|
|
17
|
+
- full
|
|
18
|
+
version_type:
|
|
19
|
+
description: 'Tipo de versión'
|
|
20
|
+
required: false
|
|
21
|
+
default: 'auto'
|
|
22
|
+
type: choice
|
|
23
|
+
options:
|
|
24
|
+
- auto
|
|
25
|
+
- patch
|
|
26
|
+
- minor
|
|
27
|
+
- major
|
|
28
|
+
version_prefix:
|
|
29
|
+
description: 'Prefijo de versión'
|
|
30
|
+
required: false
|
|
31
|
+
default: 'stable'
|
|
32
|
+
type: choice
|
|
33
|
+
options:
|
|
34
|
+
- stable
|
|
35
|
+
- alpha
|
|
36
|
+
- beta
|
|
37
|
+
- rc
|
|
38
|
+
target_registry:
|
|
39
|
+
description: 'Registro objetivo'
|
|
40
|
+
required: false
|
|
41
|
+
default: 'both'
|
|
42
|
+
type: choice
|
|
43
|
+
options:
|
|
44
|
+
- npm
|
|
45
|
+
- github
|
|
46
|
+
- both
|
|
47
|
+
skip_tests:
|
|
48
|
+
description: 'Saltar tests (no recomendado)'
|
|
49
|
+
required: false
|
|
50
|
+
default: false
|
|
51
|
+
type: boolean
|
|
52
|
+
|
|
53
|
+
env:
|
|
54
|
+
NODE_VERSION: '20'
|
|
55
|
+
|
|
56
|
+
jobs:
|
|
57
|
+
# ===== STEP 1: AI VERSION ANALYSIS FOR MODULAR RELEASE =====
|
|
58
|
+
ai-modular-version:
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
permissions:
|
|
61
|
+
contents: write
|
|
62
|
+
|
|
63
|
+
outputs:
|
|
64
|
+
version: ${{ steps.version.outputs.version }}
|
|
65
|
+
tag: ${{ steps.version.outputs.tag }}
|
|
66
|
+
is_prerelease: ${{ steps.version.outputs.is_prerelease }}
|
|
67
|
+
release_channel: ${{ steps.version.outputs.release_channel }}
|
|
68
|
+
modules_to_build: ${{ steps.modules.outputs.modules }}
|
|
69
|
+
|
|
70
|
+
steps:
|
|
71
|
+
- name: 📥 Checkout code
|
|
72
|
+
uses: actions/checkout@v4
|
|
73
|
+
with:
|
|
74
|
+
fetch-depth: 0
|
|
75
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
76
|
+
|
|
77
|
+
- name: 📦 Setup Bun
|
|
78
|
+
uses: oven-sh/setup-bun@v2
|
|
79
|
+
with:
|
|
80
|
+
bun-version: latest
|
|
81
|
+
|
|
82
|
+
- name: 🔧 Install dependencies
|
|
83
|
+
run: bun install --frozen-lockfile
|
|
84
|
+
|
|
85
|
+
- name: 🤖 Setup Gemini CLI
|
|
86
|
+
run: |
|
|
87
|
+
echo "🤖 Configurando Gemini CLI para release modular..."
|
|
88
|
+
# Install Gemini CLI
|
|
89
|
+
npm install -g @google/generative-ai
|
|
90
|
+
# Verificar instalación
|
|
91
|
+
echo "✅ Gemini CLI configurado para módulos"
|
|
92
|
+
env:
|
|
93
|
+
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
|
|
94
|
+
|
|
95
|
+
- name: 🤖 Step 1: AI Version Analysis for Modular Release
|
|
96
|
+
id: version
|
|
97
|
+
run: |
|
|
98
|
+
echo "🤖 === PASO 1: ANÁLISIS AI PARA RELEASE MODULAR ==="
|
|
99
|
+
|
|
100
|
+
# Configurar contexto específico para release modular
|
|
101
|
+
WORK_TYPE="modular-release"
|
|
102
|
+
AFFECTED_COMPONENTS="${{ inputs.module }}"
|
|
103
|
+
CONTEXT="Modular release for ${{ inputs.module }} module(s)"
|
|
104
|
+
|
|
105
|
+
VERSION_TYPE="${{ inputs.version_type }}"
|
|
106
|
+
VERSION_PREFIX="${{ inputs.version_prefix }}"
|
|
107
|
+
|
|
108
|
+
# Preparar argumentos para version-manager con contexto de módulos
|
|
109
|
+
ARGS="--auto-approve"
|
|
110
|
+
|
|
111
|
+
if [ "$VERSION_TYPE" != "auto" ]; then
|
|
112
|
+
ARGS="$ARGS --type $VERSION_TYPE"
|
|
113
|
+
fi
|
|
114
|
+
|
|
115
|
+
if [ "$VERSION_PREFIX" != "stable" ]; then
|
|
116
|
+
ARGS="$ARGS --prefix $VERSION_PREFIX"
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
echo "📋 Ejecutando version-manager con contexto modular: $AFFECTED_COMPONENTS"
|
|
120
|
+
echo "🚀 Comando: bun project-utils/version-manager.ts $ARGS"
|
|
121
|
+
|
|
122
|
+
# Ejecutar version-manager con análisis AI
|
|
123
|
+
bun project-utils/version-manager.ts $ARGS
|
|
124
|
+
|
|
125
|
+
# Obtener nueva versión
|
|
126
|
+
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
127
|
+
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
128
|
+
echo "tag=v$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
129
|
+
|
|
130
|
+
# Determinar si es prerelease y canal
|
|
131
|
+
if [[ "$NEW_VERSION" == *"alpha"* ]]; then
|
|
132
|
+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
|
133
|
+
echo "release_channel=alpha" >> $GITHUB_OUTPUT
|
|
134
|
+
elif [[ "$NEW_VERSION" == *"beta"* ]]; then
|
|
135
|
+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
|
136
|
+
echo "release_channel=beta" >> $GITHUB_OUTPUT
|
|
137
|
+
elif [[ "$NEW_VERSION" == *"rc"* ]]; then
|
|
138
|
+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
|
139
|
+
echo "release_channel=rc" >> $GITHUB_OUTPUT
|
|
140
|
+
else
|
|
141
|
+
echo "is_prerelease=false" >> $GITHUB_OUTPUT
|
|
142
|
+
echo "release_channel=latest" >> $GITHUB_OUTPUT
|
|
143
|
+
fi
|
|
144
|
+
|
|
145
|
+
echo "✅ Versión generada para release modular: $NEW_VERSION"
|
|
146
|
+
|
|
147
|
+
- name: 📋 Step 2: Determine modules to build
|
|
148
|
+
id: modules
|
|
149
|
+
run: |
|
|
150
|
+
echo "📋 === PASO 2: DETERMINANDO MÓDULOS A CONSTRUIR ==="
|
|
151
|
+
MODULE_INPUT="${{ inputs.module }}"
|
|
152
|
+
|
|
153
|
+
case "$MODULE_INPUT" in
|
|
154
|
+
"all")
|
|
155
|
+
MODULES="core,styling,exports,full"
|
|
156
|
+
;;
|
|
157
|
+
"full")
|
|
158
|
+
MODULES="full"
|
|
159
|
+
;;
|
|
160
|
+
*)
|
|
161
|
+
MODULES="$MODULE_INPUT"
|
|
162
|
+
;;
|
|
163
|
+
esac
|
|
164
|
+
|
|
165
|
+
echo "modules=$MODULES" >> $GITHUB_OUTPUT
|
|
166
|
+
echo "✅ Módulos a construir: $MODULES"
|
|
167
|
+
|
|
168
|
+
- name: 🏷️ Commit version changes
|
|
169
|
+
run: |
|
|
170
|
+
echo "🏷️ Commiteando cambios de versión modular..."
|
|
171
|
+
git config user.name "github-actions[bot]"
|
|
172
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
173
|
+
git add package.json CHANGELOG.json packages/*/package.json
|
|
174
|
+
git commit -m "chore: modular release ${{ steps.version.outputs.version }} (${{ inputs.module }}) [skip ci]" || echo "No changes to commit"
|
|
175
|
+
git push origin main
|
|
176
|
+
|
|
177
|
+
- name: 📤 Upload version artifacts
|
|
178
|
+
uses: actions/upload-artifact@v4
|
|
179
|
+
with:
|
|
180
|
+
name: modular-version-artifacts
|
|
181
|
+
path: |
|
|
182
|
+
project-utils/.temp/
|
|
183
|
+
CHANGELOG.json
|
|
184
|
+
package.json
|
|
185
|
+
retention-days: 7
|
|
186
|
+
|
|
187
|
+
# ===== STEP 2: BUILD SPECIFIED MODULES =====
|
|
188
|
+
build-modular:
|
|
189
|
+
runs-on: ubuntu-latest
|
|
190
|
+
needs: ai-modular-version
|
|
191
|
+
|
|
192
|
+
strategy:
|
|
193
|
+
matrix:
|
|
194
|
+
module: ${{ fromJson(format('["{0}"]', needs.ai-modular-version.outputs.modules_to_build)) }}
|
|
195
|
+
|
|
196
|
+
steps:
|
|
197
|
+
- name: 📥 Checkout code with version changes
|
|
198
|
+
uses: actions/checkout@v4
|
|
199
|
+
with:
|
|
200
|
+
fetch-depth: 0
|
|
201
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
202
|
+
ref: main
|
|
203
|
+
|
|
204
|
+
- name: 🔄 Pull latest changes
|
|
205
|
+
run: git pull origin main
|
|
206
|
+
|
|
207
|
+
- name: 📦 Setup Bun
|
|
208
|
+
uses: oven-sh/setup-bun@v2
|
|
209
|
+
with:
|
|
210
|
+
bun-version: latest
|
|
211
|
+
|
|
212
|
+
- name: 🔧 Install dependencies
|
|
213
|
+
run: bun install --frozen-lockfile
|
|
214
|
+
|
|
215
|
+
- name: 🧪 Run tests for module (unless skipped)
|
|
216
|
+
if: ${{ !inputs.skip_tests }}
|
|
217
|
+
run: |
|
|
218
|
+
echo "🧪 === EJECUTANDO TESTS PARA MÓDULO: ${{ matrix.module }} ==="
|
|
219
|
+
bun run type-check
|
|
220
|
+
bun run test
|
|
221
|
+
echo "✅ Tests completados para ${{ matrix.module }}"
|
|
222
|
+
|
|
223
|
+
- name: 🏗️ Step 3: Build specific module
|
|
224
|
+
run: |
|
|
225
|
+
echo "🏗️ === PASO 3: CONSTRUYENDO MÓDULO: ${{ matrix.module }} ==="
|
|
226
|
+
|
|
227
|
+
case "${{ matrix.module }}" in
|
|
228
|
+
"core")
|
|
229
|
+
bun run build:core
|
|
230
|
+
echo "✅ Módulo core construido"
|
|
231
|
+
;;
|
|
232
|
+
"styling")
|
|
233
|
+
bun run build:styling
|
|
234
|
+
echo "✅ Módulo styling construido"
|
|
235
|
+
;;
|
|
236
|
+
"exports")
|
|
237
|
+
bun run build:exports
|
|
238
|
+
echo "✅ Módulo exports construido"
|
|
239
|
+
;;
|
|
240
|
+
"full")
|
|
241
|
+
bun run build:full
|
|
242
|
+
echo "✅ Build completo realizado"
|
|
243
|
+
;;
|
|
244
|
+
*)
|
|
245
|
+
echo "🏗️ Construyendo todos los módulos..."
|
|
246
|
+
bun run build:all
|
|
247
|
+
echo "✅ Todos los módulos construidos"
|
|
248
|
+
;;
|
|
249
|
+
esac
|
|
250
|
+
|
|
251
|
+
# Mostrar archivos generados
|
|
252
|
+
echo "📊 Archivos generados para ${{ matrix.module }}:"
|
|
253
|
+
if [ "${{ matrix.module }}" == "full" ] || [ "${{ matrix.module }}" == "all" ]; then
|
|
254
|
+
ls -la dist/
|
|
255
|
+
else
|
|
256
|
+
ls -la dist/modular/${{ matrix.module }}/ || ls -la dist/
|
|
257
|
+
fi
|
|
258
|
+
|
|
259
|
+
- name: 📤 Upload build artifacts for module
|
|
260
|
+
uses: actions/upload-artifact@v4
|
|
261
|
+
with:
|
|
262
|
+
name: build-${{ matrix.module }}-${{ needs.ai-modular-version.outputs.version }}
|
|
263
|
+
path: |
|
|
264
|
+
dist/
|
|
265
|
+
retention-days: 30
|
|
266
|
+
|
|
267
|
+
# ===== STEP 3: PUBLISH MODULAR RELEASES =====
|
|
268
|
+
publish-modular:
|
|
269
|
+
runs-on: ubuntu-latest
|
|
270
|
+
needs: [ai-modular-version, build-modular]
|
|
271
|
+
if: inputs.target_registry == 'npm' || inputs.target_registry == 'both'
|
|
272
|
+
|
|
273
|
+
steps:
|
|
274
|
+
- name: 📥 Checkout code
|
|
275
|
+
uses: actions/checkout@v4
|
|
276
|
+
with:
|
|
277
|
+
ref: main
|
|
278
|
+
|
|
279
|
+
- name: 📦 Setup Bun with NPM registry
|
|
280
|
+
uses: oven-sh/setup-bun@v2
|
|
281
|
+
with:
|
|
282
|
+
bun-version: latest
|
|
283
|
+
registry-url: 'https://registry.npmjs.org'
|
|
284
|
+
|
|
285
|
+
- name: 📥 Download all build artifacts
|
|
286
|
+
uses: actions/download-artifact@v4
|
|
287
|
+
with:
|
|
288
|
+
pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
|
|
289
|
+
path: builds/
|
|
290
|
+
merge-multiple: true
|
|
291
|
+
|
|
292
|
+
- name: 🚀 Step 4: Publish modular releases to NPM
|
|
293
|
+
run: |
|
|
294
|
+
echo "🚀 === PASO 4: PUBLICANDO RELEASES MODULARES EN NPM ==="
|
|
295
|
+
|
|
296
|
+
# Determinar tag de publicación
|
|
297
|
+
if [ "${{ needs.ai-modular-version.outputs.is_prerelease }}" == "true" ]; then
|
|
298
|
+
PUBLISH_TAG="${{ needs.ai-modular-version.outputs.release_channel }}"
|
|
299
|
+
echo "📦 Publicando como prerelease con tag: $PUBLISH_TAG"
|
|
300
|
+
else
|
|
301
|
+
PUBLISH_TAG="latest"
|
|
302
|
+
echo "📦 Publicando como release estable"
|
|
303
|
+
fi
|
|
304
|
+
|
|
305
|
+
# Publicar dependiendo del módulo seleccionado
|
|
306
|
+
if [ "${{ inputs.module }}" == "all" ] || [ "${{ inputs.module }}" == "full" ]; then
|
|
307
|
+
echo "📦 Publicando paquete completo..."
|
|
308
|
+
npm publish --access public --tag $PUBLISH_TAG
|
|
309
|
+
else
|
|
310
|
+
echo "📦 Publicando módulo específico: ${{ inputs.module }}"
|
|
311
|
+
# Para releases modulares específicos, publicar como paquete scoped
|
|
312
|
+
npm publish --access public --tag $PUBLISH_TAG
|
|
313
|
+
fi
|
|
314
|
+
|
|
315
|
+
echo "✅ Publicación modular completada en NPM"
|
|
316
|
+
env:
|
|
317
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
318
|
+
|
|
319
|
+
# ===== STEP 4: GITHUB PACKAGES (if selected) =====
|
|
320
|
+
publish-github-modular:
|
|
321
|
+
runs-on: ubuntu-latest
|
|
322
|
+
needs: [ai-modular-version, build-modular]
|
|
323
|
+
if: inputs.target_registry == 'github' || inputs.target_registry == 'both'
|
|
324
|
+
|
|
325
|
+
steps:
|
|
326
|
+
- name: 📥 Checkout code
|
|
327
|
+
uses: actions/checkout@v4
|
|
328
|
+
with:
|
|
329
|
+
ref: main
|
|
330
|
+
|
|
331
|
+
- name: 📦 Setup Bun with GitHub registry
|
|
332
|
+
uses: oven-sh/setup-bun@v2
|
|
333
|
+
with:
|
|
334
|
+
bun-version: latest
|
|
335
|
+
registry-url: 'https://npm.pkg.github.com'
|
|
336
|
+
|
|
337
|
+
- name: 📥 Download all build artifacts
|
|
338
|
+
uses: actions/download-artifact@v4
|
|
339
|
+
with:
|
|
340
|
+
pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
|
|
341
|
+
path: builds/
|
|
342
|
+
merge-multiple: true
|
|
343
|
+
|
|
344
|
+
- name: 📦 Step 5: Publish to GitHub Packages
|
|
345
|
+
run: |
|
|
346
|
+
echo "📦 === PASO 5: PUBLICANDO EN GITHUB PACKAGES ==="
|
|
347
|
+
|
|
348
|
+
if [ "${{ needs.ai-modular-version.outputs.is_prerelease }}" == "true" ]; then
|
|
349
|
+
echo "📦 Publishing prerelease to GitHub Packages with tag: ${{ needs.ai-modular-version.outputs.release_channel }}"
|
|
350
|
+
npm publish --access public --tag ${{ needs.ai-modular-version.outputs.release_channel }}
|
|
351
|
+
else
|
|
352
|
+
echo "📦 Publishing stable release to GitHub Packages"
|
|
353
|
+
npm publish --access public
|
|
354
|
+
fi
|
|
355
|
+
echo "✅ Publicación modular completada en GitHub Packages"
|
|
356
|
+
env:
|
|
357
|
+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
358
|
+
|
|
359
|
+
# ===== STEP 5: CREATE MODULAR GITHUB RELEASE =====
|
|
360
|
+
create-modular-release:
|
|
361
|
+
runs-on: ubuntu-latest
|
|
362
|
+
needs: [ai-modular-version, build-modular, publish-modular, publish-github-modular]
|
|
363
|
+
if: always() && needs.build-modular.result == 'success'
|
|
364
|
+
|
|
365
|
+
permissions:
|
|
366
|
+
contents: write
|
|
367
|
+
|
|
368
|
+
steps:
|
|
369
|
+
- name: 📥 Checkout code
|
|
370
|
+
uses: actions/checkout@v4
|
|
371
|
+
with:
|
|
372
|
+
fetch-depth: 0
|
|
373
|
+
ref: main
|
|
374
|
+
|
|
375
|
+
- name: 📦 Setup Bun
|
|
376
|
+
uses: oven-sh/setup-bun@v2
|
|
377
|
+
with:
|
|
378
|
+
bun-version: latest
|
|
379
|
+
|
|
380
|
+
- name: 🔧 Install dependencies
|
|
381
|
+
run: bun install --frozen-lockfile
|
|
382
|
+
|
|
383
|
+
- name: 📥 Download build artifacts
|
|
384
|
+
uses: actions/download-artifact@v4
|
|
385
|
+
with:
|
|
386
|
+
pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
|
|
387
|
+
path: builds/
|
|
388
|
+
merge-multiple: true
|
|
389
|
+
|
|
390
|
+
- name: 🏷️ Create git tag for modular release
|
|
391
|
+
run: |
|
|
392
|
+
echo "🏷️ Creando tag para release modular..."
|
|
393
|
+
git config user.name "github-actions[bot]"
|
|
394
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
395
|
+
TAG_NAME="${{ needs.ai-modular-version.outputs.tag }}-${{ inputs.module }}"
|
|
396
|
+
git tag -a "$TAG_NAME" -m "Modular release ${{ needs.ai-modular-version.outputs.version }} (${{ inputs.module }})"
|
|
397
|
+
git push origin --tags
|
|
398
|
+
|
|
399
|
+
- name: 🚀 Step 6: Create Modular GitHub Release with AI
|
|
400
|
+
run: |
|
|
401
|
+
echo "🚀 === PASO 6: CREANDO GITHUB RELEASE MODULAR CON AI ==="
|
|
402
|
+
|
|
403
|
+
# Agregar contexto de módulo al release
|
|
404
|
+
export RELEASE_CONTEXT="Modular release for ${{ inputs.module }} module(s)"
|
|
405
|
+
export RELEASE_MODULE="${{ inputs.module }}"
|
|
406
|
+
|
|
407
|
+
bun project-utils/github-release-manager.ts --auto-approve
|
|
408
|
+
echo "✅ GitHub Release modular creado exitosamente"
|
|
409
|
+
env:
|
|
410
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
411
|
+
|
|
412
|
+
# ===== MODULAR RELEASE SUMMARY =====
|
|
413
|
+
modular-summary:
|
|
414
|
+
runs-on: ubuntu-latest
|
|
415
|
+
needs: [ai-modular-version, build-modular, publish-modular, publish-github-modular, create-modular-release]
|
|
416
|
+
if: always()
|
|
417
|
+
|
|
418
|
+
steps:
|
|
419
|
+
- name: 📊 Modular Release Summary
|
|
420
|
+
run: |
|
|
421
|
+
VERSION="${{ needs.ai-modular-version.outputs.version }}"
|
|
422
|
+
MODULE="${{ inputs.module }}"
|
|
423
|
+
CHANNEL="${{ needs.ai-modular-version.outputs.release_channel }}"
|
|
424
|
+
IS_PRERELEASE="${{ needs.ai-modular-version.outputs.is_prerelease }}"
|
|
425
|
+
|
|
426
|
+
echo "## 🎉 Modular Release Pipeline Complete!" >> $GITHUB_STEP_SUMMARY
|
|
427
|
+
echo "- **Version**: $VERSION" >> $GITHUB_STEP_SUMMARY
|
|
428
|
+
echo "- **Module(s)**: $MODULE" >> $GITHUB_STEP_SUMMARY
|
|
429
|
+
echo "- **Channel**: $CHANNEL" >> $GITHUB_STEP_SUMMARY
|
|
430
|
+
echo "- **Prerelease**: $IS_PRERELEASE" >> $GITHUB_STEP_SUMMARY
|
|
431
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
432
|
+
|
|
433
|
+
echo "### 📊 Pipeline Steps Results" >> $GITHUB_STEP_SUMMARY
|
|
434
|
+
echo "1. **AI Version Analysis**: ✅ $VERSION" >> $GITHUB_STEP_SUMMARY
|
|
435
|
+
echo "2. **Module Build**: ${{ needs.build-modular.result }}" >> $GITHUB_STEP_SUMMARY
|
|
436
|
+
echo "3. **NPM Publishing**: ${{ needs.publish-modular.result }}" >> $GITHUB_STEP_SUMMARY
|
|
437
|
+
echo "4. **GitHub Packages**: ${{ needs.publish-github-modular.result }}" >> $GITHUB_STEP_SUMMARY
|
|
438
|
+
echo "5. **GitHub Release**: ${{ needs.create-modular-release.result }}" >> $GITHUB_STEP_SUMMARY
|
|
439
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
440
|
+
|
|
441
|
+
echo "### 📦 Module-Specific Installation" >> $GITHUB_STEP_SUMMARY
|
|
442
|
+
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
|
|
443
|
+
if [ "$IS_PRERELEASE" == "true" ]; then
|
|
444
|
+
echo "npm install @mks2508/better-logger@$CHANNEL # $MODULE module included" >> $GITHUB_STEP_SUMMARY
|
|
445
|
+
else
|
|
446
|
+
echo "npm install @mks2508/better-logger # $MODULE module included" >> $GITHUB_STEP_SUMMARY
|
|
447
|
+
fi
|
|
448
|
+
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|