@momo-kits/native-kits 0.156.1-test.5-debug → 0.156.1-test.6-debug
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/PUBLISH_GUIDE.md +675 -0
- package/compose/build.gradle.kts +1 -1
- package/compose/compose.podspec +1 -1
- package/gradle.properties +1 -1
- package/local.properties +8 -0
- package/package.json +1 -1
- package/publish.sh +431 -0
- package/publish_beta.sh +0 -153
- package/publish_release.sh +0 -190
package/publish.sh
ADDED
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e # Exit on error
|
|
4
|
+
|
|
5
|
+
# ============================================================================
|
|
6
|
+
# UNIVERSAL PUBLISH SCRIPT
|
|
7
|
+
# ============================================================================
|
|
8
|
+
# Usage:
|
|
9
|
+
# sh publish.sh beta # Run all phases for beta
|
|
10
|
+
# sh publish.sh release # Run all phases for release
|
|
11
|
+
# sh publish.sh beta check # Phase 1 only: Check version (beta)
|
|
12
|
+
# sh publish.sh beta maven # Phase 2 only: Publish to Maven (beta)
|
|
13
|
+
# sh publish.sh beta npm # Phase 3 only: Publish to NPM (beta)
|
|
14
|
+
# sh publish.sh release check # Phase 1 only: Check version (release)
|
|
15
|
+
# sh publish.sh release maven # Phase 2 only: Publish to Maven (release)
|
|
16
|
+
# sh publish.sh release npm # Phase 3 only: Publish to NPM (release)
|
|
17
|
+
# ============================================================================
|
|
18
|
+
|
|
19
|
+
MODE="${1:-}"
|
|
20
|
+
PHASE="${2:-all}"
|
|
21
|
+
|
|
22
|
+
# Validate MODE
|
|
23
|
+
if [ -z "$MODE" ]; then
|
|
24
|
+
echo "❌ Error: MODE is required"
|
|
25
|
+
echo ""
|
|
26
|
+
echo "Usage:"
|
|
27
|
+
echo " sh publish.sh beta [phase] # Beta publishing"
|
|
28
|
+
echo " sh publish.sh release [phase] # Release publishing"
|
|
29
|
+
echo ""
|
|
30
|
+
echo "Phases: check | maven | npm | all (default: all)"
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
if [ "$MODE" != "beta" ] && [ "$MODE" != "release" ]; then
|
|
35
|
+
echo "❌ Error: Invalid MODE '$MODE'. Must be 'beta' or 'release'"
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# ============================================================================
|
|
40
|
+
# PHASE 1: CHECK AND UPDATE VERSION
|
|
41
|
+
# ============================================================================
|
|
42
|
+
phase_check_version() {
|
|
43
|
+
echo ""
|
|
44
|
+
echo "==============================================="
|
|
45
|
+
echo "📋 PHASE 1: CHECK AND UPDATE VERSION ($MODE)"
|
|
46
|
+
echo "==============================================="
|
|
47
|
+
|
|
48
|
+
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
49
|
+
|
|
50
|
+
# ==============================================================
|
|
51
|
+
# BETA MODE: Detect specific vs normal, format accordingly
|
|
52
|
+
# ==============================================================
|
|
53
|
+
if [ "$MODE" == "beta" ]; then
|
|
54
|
+
echo "🔍 Reading version from package.json..."
|
|
55
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
56
|
+
|
|
57
|
+
if [ -z "$VERSION" ]; then
|
|
58
|
+
echo "❌ Error: Could not read version from package.json"
|
|
59
|
+
exit 1
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "📦 Version from package.json: $VERSION"
|
|
63
|
+
|
|
64
|
+
# Detect version type: specific vs normal
|
|
65
|
+
# Specific: has suffix but NOT "beta" (e.g., 0.156.2-test.1, 0.156.2-alpha.1)
|
|
66
|
+
# Normal: has "beta" suffix OR no suffix (e.g., 0.156.2-beta.1, 0.156.2)
|
|
67
|
+
|
|
68
|
+
if [[ "$VERSION" == *"-"* ]] && [[ "$VERSION" != *"-beta."* ]]; then
|
|
69
|
+
# Has suffix but not beta → specific
|
|
70
|
+
VERSION_TYPE="specific"
|
|
71
|
+
NPM_TAG="alpha"
|
|
72
|
+
echo "🏷️ Detected: SPECIFIC version (tag: alpha)"
|
|
73
|
+
else
|
|
74
|
+
# Has beta suffix or no suffix → normal
|
|
75
|
+
VERSION_TYPE="normal"
|
|
76
|
+
NPM_TAG="beta"
|
|
77
|
+
echo "🏷️ Detected: NORMAL version (tag: beta)"
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
# Format version based on type
|
|
81
|
+
if [ "$VERSION_TYPE" == "specific" ]; then
|
|
82
|
+
# Specific: Check existence, FAIL if exists
|
|
83
|
+
echo "🔎 Checking if specific version $VERSION exists on npm..."
|
|
84
|
+
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
85
|
+
|
|
86
|
+
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
87
|
+
echo ""
|
|
88
|
+
echo "❌ ERROR: Specific version $VERSION already exists on npm!"
|
|
89
|
+
echo ""
|
|
90
|
+
echo "Please update the version in package.json before publishing."
|
|
91
|
+
echo ""
|
|
92
|
+
exit 1
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
echo "✅ Specific version $VERSION does not exist on npm. Safe to publish."
|
|
96
|
+
else
|
|
97
|
+
# Normal: Auto-format and increment
|
|
98
|
+
# If no beta suffix, add -beta.1
|
|
99
|
+
if [[ "$VERSION" != *"-beta."* ]]; then
|
|
100
|
+
echo "🔄 Adding beta suffix: $VERSION → ${VERSION}-beta.1"
|
|
101
|
+
VERSION="${VERSION}-beta.1"
|
|
102
|
+
|
|
103
|
+
# Update package.json with beta version
|
|
104
|
+
ORIGINAL_VERSION=$(node -p "require('./package.json').version")
|
|
105
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
106
|
+
sed -i '' "s/\"version\": \"$ORIGINAL_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
107
|
+
else
|
|
108
|
+
sed -i "s/\"version\": \"$ORIGINAL_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
109
|
+
fi
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
# Check if version exists and auto-increment
|
|
113
|
+
echo "🔎 Checking version $VERSION on npm..."
|
|
114
|
+
while true; do
|
|
115
|
+
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
116
|
+
|
|
117
|
+
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
118
|
+
echo "⚠️ Version $VERSION already exists on npm. Auto-incrementing..."
|
|
119
|
+
|
|
120
|
+
# Extract base version and beta number (e.g., 0.156.1-beta.5)
|
|
121
|
+
BASE_VERSION=$(echo "$VERSION" | cut -d'-' -f1)
|
|
122
|
+
BETA_NUMBER=$(echo "$VERSION" | grep -oE 'beta\.([0-9]+)' | cut -d'.' -f2)
|
|
123
|
+
|
|
124
|
+
# Increment beta number
|
|
125
|
+
NEW_BETA_NUMBER=$((BETA_NUMBER + 1))
|
|
126
|
+
NEW_VERSION="${BASE_VERSION}-beta.${NEW_BETA_NUMBER}"
|
|
127
|
+
|
|
128
|
+
echo " Version incremented: $VERSION → $NEW_VERSION"
|
|
129
|
+
VERSION="$NEW_VERSION"
|
|
130
|
+
else
|
|
131
|
+
echo "✅ Version $VERSION does not exist on npm. Using this version."
|
|
132
|
+
break
|
|
133
|
+
fi
|
|
134
|
+
done
|
|
135
|
+
|
|
136
|
+
# Update package.json with final version
|
|
137
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
138
|
+
if [ "$CURRENT_VERSION" != "$VERSION" ]; then
|
|
139
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
140
|
+
sed -i '' "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
141
|
+
else
|
|
142
|
+
sed -i "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
143
|
+
fi
|
|
144
|
+
echo "📝 Updated package.json: $CURRENT_VERSION → $VERSION"
|
|
145
|
+
fi
|
|
146
|
+
fi
|
|
147
|
+
fi
|
|
148
|
+
|
|
149
|
+
# ==============================================================
|
|
150
|
+
# RELEASE MODE: Read from npm@latest and auto-increment
|
|
151
|
+
# ==============================================================
|
|
152
|
+
if [ "$MODE" == "release" ]; then
|
|
153
|
+
echo "🔍 Reading latest version from npm@latest (NOT from package.json)..."
|
|
154
|
+
|
|
155
|
+
# Read version from npm@latest
|
|
156
|
+
LATEST_VERSION=$(npm view "$PACKAGE_NAME@latest" version 2>/dev/null || echo "")
|
|
157
|
+
|
|
158
|
+
if [ -z "$LATEST_VERSION" ]; then
|
|
159
|
+
echo "❌ Error: Could not read version from npm@latest"
|
|
160
|
+
echo "Package may not exist on npm yet."
|
|
161
|
+
exit 1
|
|
162
|
+
fi
|
|
163
|
+
|
|
164
|
+
echo "📦 Current @latest version on npm: $LATEST_VERSION"
|
|
165
|
+
|
|
166
|
+
# Parse and increment patch version
|
|
167
|
+
# Extract major.minor.patch (handle versions like 0.156.2 or 0.156.2-beta.1)
|
|
168
|
+
MAJOR=$(echo "$LATEST_VERSION" | cut -d'.' -f1)
|
|
169
|
+
MINOR=$(echo "$LATEST_VERSION" | cut -d'.' -f2)
|
|
170
|
+
PATCH=$(echo "$LATEST_VERSION" | cut -d'.' -f3 | cut -d'-' -f1)
|
|
171
|
+
|
|
172
|
+
# Increment patch
|
|
173
|
+
NEW_PATCH=$((PATCH + 1))
|
|
174
|
+
VERSION="$MAJOR.$MINOR.$NEW_PATCH"
|
|
175
|
+
|
|
176
|
+
echo "🔼 Auto-incremented version: $LATEST_VERSION → $VERSION"
|
|
177
|
+
|
|
178
|
+
# Check if new version exists and continue incrementing
|
|
179
|
+
echo "🔎 Checking if version $VERSION exists on npm..."
|
|
180
|
+
while true; do
|
|
181
|
+
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
182
|
+
|
|
183
|
+
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
184
|
+
echo "⚠️ Version $VERSION already exists on npm. Auto-incrementing..."
|
|
185
|
+
NEW_PATCH=$((NEW_PATCH + 1))
|
|
186
|
+
VERSION="$MAJOR.$MINOR.$NEW_PATCH"
|
|
187
|
+
echo " Version incremented: → $VERSION"
|
|
188
|
+
else
|
|
189
|
+
echo "✅ Version $VERSION does not exist on npm. Using this version."
|
|
190
|
+
break
|
|
191
|
+
fi
|
|
192
|
+
done
|
|
193
|
+
|
|
194
|
+
# Update package.json with new version
|
|
195
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
196
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
197
|
+
sed -i '' "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
198
|
+
else
|
|
199
|
+
sed -i "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
200
|
+
fi
|
|
201
|
+
echo "📝 Updated package.json: $CURRENT_VERSION → $VERSION"
|
|
202
|
+
|
|
203
|
+
# Set NPM tag to latest
|
|
204
|
+
NPM_TAG="latest"
|
|
205
|
+
fi
|
|
206
|
+
|
|
207
|
+
# Update gradle.properties with the same version
|
|
208
|
+
echo "📝 Updating gradle.properties..."
|
|
209
|
+
CURRENT_GRADLE_VERSION=$(grep "^version=" gradle.properties | cut -d'=' -f2 | tr -d '"')
|
|
210
|
+
|
|
211
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
212
|
+
sed -i '' "s/^version=.*/version=$VERSION/" gradle.properties
|
|
213
|
+
else
|
|
214
|
+
sed -i "s/^version=.*/version=$VERSION/" gradle.properties
|
|
215
|
+
fi
|
|
216
|
+
|
|
217
|
+
echo " Gradle version updated: $CURRENT_GRADLE_VERSION → $VERSION"
|
|
218
|
+
|
|
219
|
+
export VERSION="$VERSION"
|
|
220
|
+
export NPM_TAG="$NPM_TAG"
|
|
221
|
+
|
|
222
|
+
echo "✅ Using version: $VERSION"
|
|
223
|
+
echo "✅ NPM tag: $NPM_TAG"
|
|
224
|
+
echo "✅ PHASE 1 COMPLETED"
|
|
225
|
+
echo ""
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
# ============================================================================
|
|
229
|
+
# PHASE 2: PUBLISH TO MAVEN
|
|
230
|
+
# ============================================================================
|
|
231
|
+
phase_publish_maven() {
|
|
232
|
+
echo ""
|
|
233
|
+
echo "==============================================="
|
|
234
|
+
echo "🔧 PHASE 2: PUBLISH TO MAVEN ($MODE)"
|
|
235
|
+
echo "==============================================="
|
|
236
|
+
|
|
237
|
+
# Get version from package.json
|
|
238
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
239
|
+
export VERSION="$VERSION"
|
|
240
|
+
|
|
241
|
+
echo "📦 Publishing KMP artifacts to Maven (version ${VERSION})..."
|
|
242
|
+
|
|
243
|
+
./gradlew :compose:publishAllPublicationsToGitLabPackagesRepository
|
|
244
|
+
|
|
245
|
+
echo "✅ Maven publishing completed successfully!"
|
|
246
|
+
echo "✅ PHASE 2 COMPLETED"
|
|
247
|
+
echo ""
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
# ============================================================================
|
|
251
|
+
# PHASE 3: PUBLISH TO NPM
|
|
252
|
+
# ============================================================================
|
|
253
|
+
phase_publish_npm() {
|
|
254
|
+
echo ""
|
|
255
|
+
echo "==============================================="
|
|
256
|
+
echo "📦 PHASE 3: PUBLISH TO NPM ($MODE)"
|
|
257
|
+
echo "==============================================="
|
|
258
|
+
|
|
259
|
+
# Get version from package.json
|
|
260
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
261
|
+
export VERSION="$VERSION"
|
|
262
|
+
|
|
263
|
+
# Determine NPM tag (should already be set from phase 1, but fallback just in case)
|
|
264
|
+
if [ -z "$NPM_TAG" ]; then
|
|
265
|
+
if [ "$MODE" == "beta" ]; then
|
|
266
|
+
# Re-detect version type
|
|
267
|
+
if [[ "$VERSION" == *"-"* ]] && [[ "$VERSION" != *"-beta."* ]]; then
|
|
268
|
+
NPM_TAG="alpha"
|
|
269
|
+
else
|
|
270
|
+
NPM_TAG="beta"
|
|
271
|
+
fi
|
|
272
|
+
else
|
|
273
|
+
NPM_TAG="latest"
|
|
274
|
+
fi
|
|
275
|
+
fi
|
|
276
|
+
|
|
277
|
+
echo "📦 Publishing version: $VERSION"
|
|
278
|
+
echo "🏷️ NPM tag: $NPM_TAG"
|
|
279
|
+
|
|
280
|
+
./gradlew clean
|
|
281
|
+
|
|
282
|
+
# ============================================================
|
|
283
|
+
# FIRST PUBLISH: DEBUG VERSION (with compose kits included)
|
|
284
|
+
# ============================================================
|
|
285
|
+
echo ""
|
|
286
|
+
echo "🔧 Preparing debug version with compose kits..."
|
|
287
|
+
|
|
288
|
+
# Create debug version
|
|
289
|
+
DEBUG_VERSION="${VERSION}-debug"
|
|
290
|
+
echo "📦 Debug version: $DEBUG_VERSION"
|
|
291
|
+
|
|
292
|
+
# Update package.json version to debug version
|
|
293
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
294
|
+
sed -i '' "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
295
|
+
else
|
|
296
|
+
sed -i "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
297
|
+
fi
|
|
298
|
+
|
|
299
|
+
# Backup compose/build.gradle.kts
|
|
300
|
+
echo "📦 Backing up compose/build.gradle.kts..."
|
|
301
|
+
cp compose/build.gradle.kts compose/build.gradle.kts.backup
|
|
302
|
+
|
|
303
|
+
# Comment out maven publish in compose/build.gradle.kts
|
|
304
|
+
echo "💬 Commenting out maven publish in compose/build.gradle.kts..."
|
|
305
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
306
|
+
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
307
|
+
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
308
|
+
sed -i '' 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
309
|
+
sed -i '' '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
310
|
+
sed -i '' '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
311
|
+
else
|
|
312
|
+
sed -i 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
313
|
+
sed -i 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
314
|
+
sed -i 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
315
|
+
sed -i '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
316
|
+
sed -i '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
317
|
+
fi
|
|
318
|
+
|
|
319
|
+
# Modify android configuration for debug version
|
|
320
|
+
echo "🔧 Modifying android configuration for debug version..."
|
|
321
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
322
|
+
sed -i '' 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
323
|
+
sed -i '' 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
324
|
+
sed -i '' 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
325
|
+
sed -i '' "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
326
|
+
else
|
|
327
|
+
sed -i 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
328
|
+
sed -i 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
329
|
+
sed -i 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
330
|
+
sed -i "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
331
|
+
fi
|
|
332
|
+
|
|
333
|
+
# Backup .npmignore
|
|
334
|
+
cp .npmignore .npmignore.backup
|
|
335
|
+
|
|
336
|
+
# Create minimal .npmignore for debug version
|
|
337
|
+
cat > .npmignore << 'EOF'
|
|
338
|
+
sample/
|
|
339
|
+
build/
|
|
340
|
+
|
|
341
|
+
.fleet
|
|
342
|
+
.gradle
|
|
343
|
+
.idea
|
|
344
|
+
.kotlin
|
|
345
|
+
.run
|
|
346
|
+
|
|
347
|
+
.gitattributes
|
|
348
|
+
.gitlab-ci.yml
|
|
349
|
+
.npmignore.backup
|
|
350
|
+
EOF
|
|
351
|
+
|
|
352
|
+
echo "📤 Publishing debug version (with compose)..."
|
|
353
|
+
npm publish --tag $NPM_TAG --access=public
|
|
354
|
+
|
|
355
|
+
echo "✅ Debug version published successfully!"
|
|
356
|
+
|
|
357
|
+
# Restore .npmignore
|
|
358
|
+
mv .npmignore.backup .npmignore
|
|
359
|
+
echo "✅ .npmignore restored"
|
|
360
|
+
|
|
361
|
+
# Restore compose/build.gradle.kts
|
|
362
|
+
mv compose/build.gradle.kts.backup compose/build.gradle.kts
|
|
363
|
+
echo "✅ compose/build.gradle.kts restored"
|
|
364
|
+
|
|
365
|
+
# Restore package.json version to original
|
|
366
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
367
|
+
sed -i '' "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
368
|
+
else
|
|
369
|
+
sed -i "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
370
|
+
fi
|
|
371
|
+
|
|
372
|
+
echo "✅ package.json version restored"
|
|
373
|
+
|
|
374
|
+
# ============================================================
|
|
375
|
+
# SECOND PUBLISH: NORMAL VERSION (without compose)
|
|
376
|
+
# ============================================================
|
|
377
|
+
echo ""
|
|
378
|
+
echo "📤 Publishing normal version (without compose)..."
|
|
379
|
+
npm publish --tag $NPM_TAG --access=public
|
|
380
|
+
|
|
381
|
+
echo "✅ Normal version published successfully!"
|
|
382
|
+
|
|
383
|
+
echo ""
|
|
384
|
+
echo "✅ PHASE 3 COMPLETED"
|
|
385
|
+
echo " 🐛 Debug version: $DEBUG_VERSION (with compose) - Published first"
|
|
386
|
+
echo " 📦 Normal version: $VERSION (without compose) - Published second"
|
|
387
|
+
echo " 🏷️ NPM Tag: $NPM_TAG"
|
|
388
|
+
echo ""
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
# ============================================================================
|
|
392
|
+
# MAIN EXECUTION
|
|
393
|
+
# ============================================================================
|
|
394
|
+
|
|
395
|
+
echo ""
|
|
396
|
+
echo "🚀 PUBLISH SCRIPT - MODE: $(echo $MODE | tr '[:lower:]' '[:upper:]')"
|
|
397
|
+
echo "================================================="
|
|
398
|
+
|
|
399
|
+
case "$PHASE" in
|
|
400
|
+
"check")
|
|
401
|
+
echo "Running PHASE 1 only: Check and update version"
|
|
402
|
+
phase_check_version
|
|
403
|
+
;;
|
|
404
|
+
"maven")
|
|
405
|
+
echo "Running PHASE 2 only: Publish to Maven"
|
|
406
|
+
phase_publish_maven
|
|
407
|
+
;;
|
|
408
|
+
"npm")
|
|
409
|
+
echo "Running PHASE 3 only: Publish to NPM"
|
|
410
|
+
phase_publish_npm
|
|
411
|
+
;;
|
|
412
|
+
"all")
|
|
413
|
+
echo "Running ALL PHASES"
|
|
414
|
+
phase_check_version
|
|
415
|
+
phase_publish_maven
|
|
416
|
+
phase_publish_npm
|
|
417
|
+
echo ""
|
|
418
|
+
echo "🎉 ALL PHASES COMPLETED SUCCESSFULLY!"
|
|
419
|
+
echo "================================================="
|
|
420
|
+
;;
|
|
421
|
+
*)
|
|
422
|
+
echo "❌ Error: Invalid phase '$PHASE'"
|
|
423
|
+
echo ""
|
|
424
|
+
echo "Usage:"
|
|
425
|
+
echo " sh publish.sh $MODE # Run all phases"
|
|
426
|
+
echo " sh publish.sh $MODE check # Phase 1: Check and update version"
|
|
427
|
+
echo " sh publish.sh $MODE maven # Phase 2: Publish to Maven"
|
|
428
|
+
echo " sh publish.sh $MODE npm # Phase 3: Publish to NPM"
|
|
429
|
+
exit 1
|
|
430
|
+
;;
|
|
431
|
+
esac
|
package/publish_beta.sh
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
set -e # Exit on error
|
|
4
|
-
|
|
5
|
-
echo "🔍 Reading version from local package.json..."
|
|
6
|
-
|
|
7
|
-
# Get the version from local package.json
|
|
8
|
-
VERSION=$(node -p "require('./package.json').version")
|
|
9
|
-
|
|
10
|
-
if [ -z "$VERSION" ]; then
|
|
11
|
-
echo "❌ Error: Could not read version from package.json"
|
|
12
|
-
exit 1
|
|
13
|
-
fi
|
|
14
|
-
|
|
15
|
-
echo "📦 Version from package.json: $VERSION"
|
|
16
|
-
|
|
17
|
-
# Update gradle.properties with the same version
|
|
18
|
-
echo "📝 Updating gradle.properties..."
|
|
19
|
-
# Get current gradle version
|
|
20
|
-
CURRENT_GRADLE_VERSION=$(grep "^version=" gradle.properties | cut -d'=' -f2 | tr -d '"')
|
|
21
|
-
|
|
22
|
-
# Update version in gradle.properties using sed
|
|
23
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
24
|
-
# macOS
|
|
25
|
-
sed -i '' "s/^version=.*/version=$VERSION/" gradle.properties
|
|
26
|
-
else
|
|
27
|
-
# Linux
|
|
28
|
-
sed -i "s/^version=.*/version=$VERSION/" gradle.properties
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
echo " Gradle version updated: $CURRENT_GRADLE_VERSION → $VERSION"
|
|
32
|
-
|
|
33
|
-
export VERSION="$VERSION"
|
|
34
|
-
|
|
35
|
-
echo "✅ Using version: $VERSION"
|
|
36
|
-
echo "📦 Publishing KMP artifacts to Maven (version ${VERSION})..."
|
|
37
|
-
|
|
38
|
-
./gradlew clean
|
|
39
|
-
|
|
40
|
-
# First publish: normal version (compose/ is excluded via .npmignore)
|
|
41
|
-
echo "📤 Publishing normal version (without compose)..."
|
|
42
|
-
npm publish --tag beta --access=public
|
|
43
|
-
|
|
44
|
-
./gradlew :compose:publishAllPublicationsToGitLabPackagesRepository
|
|
45
|
-
|
|
46
|
-
echo "✅ Normal version published successfully!"
|
|
47
|
-
|
|
48
|
-
# Second publish: debug version with compose kits included
|
|
49
|
-
echo ""
|
|
50
|
-
echo "🔧 Preparing debug version with compose kits..."
|
|
51
|
-
|
|
52
|
-
# Create debug version
|
|
53
|
-
DEBUG_VERSION="${VERSION}-debug"
|
|
54
|
-
echo "📦 Debug version: $DEBUG_VERSION"
|
|
55
|
-
|
|
56
|
-
# Update package.json version to debug version
|
|
57
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
58
|
-
# macOS
|
|
59
|
-
sed -i '' "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
60
|
-
else
|
|
61
|
-
# Linux
|
|
62
|
-
sed -i "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
63
|
-
fi
|
|
64
|
-
|
|
65
|
-
# Backup compose/build.gradle.kts
|
|
66
|
-
echo "? Backing up compose/build.gradle.kts..."
|
|
67
|
-
cp compose/build.gradle.kts compose/build.gradle.kts.backup
|
|
68
|
-
|
|
69
|
-
# Comment out maven publish in compose/build.gradle.kts
|
|
70
|
-
echo "💬 Commenting out maven publish in compose/build.gradle.kts..."
|
|
71
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
72
|
-
# macOS - Comment out imports
|
|
73
|
-
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
74
|
-
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
75
|
-
# Comment out plugin
|
|
76
|
-
sed -i '' 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
77
|
-
# Comment out publishing block
|
|
78
|
-
sed -i '' '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
79
|
-
# Comment out entire mavenPublishing block (lines starting from mavenPublishing { to its closing })
|
|
80
|
-
sed -i '' '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
81
|
-
else
|
|
82
|
-
# Linux - Comment out imports
|
|
83
|
-
sed -i 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
84
|
-
sed -i 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
85
|
-
# Comment out plugin
|
|
86
|
-
sed -i 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
87
|
-
# Comment out publishing block
|
|
88
|
-
sed -i '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
89
|
-
# Comment out entire mavenPublishing block
|
|
90
|
-
sed -i '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
91
|
-
fi
|
|
92
|
-
|
|
93
|
-
# Modify android configuration for debug version
|
|
94
|
-
echo "🔧 Modifying android configuration for debug version..."
|
|
95
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
96
|
-
# macOS
|
|
97
|
-
sed -i '' 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
98
|
-
sed -i '' 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
99
|
-
sed -i '' 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
100
|
-
sed -i '' "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
101
|
-
else
|
|
102
|
-
# Linux
|
|
103
|
-
sed -i 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
104
|
-
sed -i 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
105
|
-
sed -i 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
106
|
-
sed -i "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
107
|
-
fi
|
|
108
|
-
|
|
109
|
-
# Backup .npmignore
|
|
110
|
-
cp .npmignore .npmignore.backup
|
|
111
|
-
|
|
112
|
-
# Create minimal .npmignore for debug version (only exclude build artifacts and IDE configs)
|
|
113
|
-
cat > .npmignore << 'EOF'
|
|
114
|
-
sample/
|
|
115
|
-
build/
|
|
116
|
-
|
|
117
|
-
.fleet
|
|
118
|
-
.gradle
|
|
119
|
-
.idea
|
|
120
|
-
.kotlin
|
|
121
|
-
.run
|
|
122
|
-
|
|
123
|
-
.gitattributes
|
|
124
|
-
.gitlab-ci.yml
|
|
125
|
-
.npmignore.backup
|
|
126
|
-
EOF
|
|
127
|
-
|
|
128
|
-
echo "📤 Publishing debug version (with compose)..."
|
|
129
|
-
npm publish --tag beta --access=public
|
|
130
|
-
|
|
131
|
-
# Restore .npmignore
|
|
132
|
-
mv .npmignore.backup .npmignore
|
|
133
|
-
echo "✅ .npmignore restored"
|
|
134
|
-
|
|
135
|
-
# Restore compose/build.gradle.kts
|
|
136
|
-
mv compose/build.gradle.kts.backup compose/build.gradle.kts
|
|
137
|
-
echo "✅ compose/build.gradle.kts restored"
|
|
138
|
-
|
|
139
|
-
# Restore package.json version to original
|
|
140
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
141
|
-
# macOS
|
|
142
|
-
sed -i '' "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
143
|
-
else
|
|
144
|
-
# Linux
|
|
145
|
-
sed -i "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
146
|
-
fi
|
|
147
|
-
|
|
148
|
-
echo "✅ package.json version restored"
|
|
149
|
-
|
|
150
|
-
echo ""
|
|
151
|
-
echo "🎉 Publishing completed successfully!"
|
|
152
|
-
echo " 📦 Normal version: $VERSION (without compose)"
|
|
153
|
-
echo " 🐛 Debug version: $DEBUG_VERSION (with compose)"
|