react-native-insider 7.0.6 → 7.0.7
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/RNInsider.podspec +2 -2
- package/android/.gradle/8.13/checksums/checksums.lock +0 -0
- package/android/.gradle/8.13/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.13/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.13/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.13/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/8.13/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.0-milestone-1/checksums/checksums.lock +0 -0
- package/android/.gradle/9.0-milestone-1/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/9.0-milestone-1/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/9.0-milestone-1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/9.0-milestone-1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.0-milestone-1/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.0-milestone-1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.0-milestone-1/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -2
- package/android/.gradle/config.properties +1 -1
- package/android/.gradle/file-system.probe +0 -0
- package/android/build/reports/problems/problems-report.html +663 -0
- package/android/build.gradle +1 -1
- package/android/local.properties +2 -2
- package/devops/create_release_pull_request.sh +258 -0
- package/devops/generate_native_release_notes.sh +275 -0
- package/devops/github_deploy_release.sh +51 -13
- package/devops/release.sh +101 -0
- package/devops/update_version_number.sh +24 -2
- package/ios/RNInsider/RNUtils.m +0 -2
- package/ios/RNInsider.xcodeproj/project.xcworkspace/xcuserdata/ozgur.vatansever.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/package.json +1 -1
- package/react-native-insider-7.0.7.tgz +0 -0
- package/android/.gradle/8.10/checksums/checksums.lock +0 -0
- package/android/.gradle/8.10/fileHashes/fileHashes.lock +0 -0
- package/ios/RNInsider.xcodeproj/project.xcworkspace/xcuserdata/heysem.katibi.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RNInsider.xcodeproj/project.xcworkspace/xcuserdata/heysem.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RNInsider.xcodeproj/xcuserdata/heysem.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
- package/ios/RNInsider.xcodeproj/xcuserdata/heysem.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- /package/android/.gradle/{8.10 → 8.13}/fileChanges/last-build.bin +0 -0
- /package/android/.gradle/{8.10/dependencies-accessors → 8.13}/gc.properties +0 -0
- /package/android/.gradle/{8.10 → 9.0-milestone-1}/gc.properties +0 -0
- /package/ios/RNInsider.xcodeproj/xcuserdata/{heysem.katibi.xcuserdatad → ozgur.vatansever.xcuserdatad}/xcschemes/xcschememanagement.plist +0 -0
package/android/build.gradle
CHANGED
|
@@ -42,7 +42,7 @@ repositories {
|
|
|
42
42
|
|
|
43
43
|
dependencies {
|
|
44
44
|
implementation "com.facebook.react:react-native:${getVersionFromPartner('reactNativeVersion', '+')}"
|
|
45
|
-
implementation 'com.useinsider:insider:15.2.
|
|
45
|
+
implementation 'com.useinsider:insider:15.2.3'
|
|
46
46
|
implementation 'com.useinsider:insiderhybrid:1.3.4'
|
|
47
47
|
|
|
48
48
|
implementation 'androidx.security:security-crypto:1.1.0-alpha06'
|
package/android/local.properties
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
# Location of the SDK. This is only used by Gradle.
|
|
5
5
|
# For customization when using a Version Control System, please read the
|
|
6
6
|
# header note.
|
|
7
|
-
#
|
|
8
|
-
sdk.dir=/Users/
|
|
7
|
+
#Wed Jul 02 14:27:03 TRT 2025
|
|
8
|
+
sdk.dir=/Users/ozgur.vatansever/Library/Android/sdk
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
usage() {
|
|
5
|
+
cat <<EOF
|
|
6
|
+
Kullanım: $(basename "$0") --repository <repository> --version <version> [opsiyonlar]
|
|
7
|
+
|
|
8
|
+
Zorunlu:
|
|
9
|
+
-r, --repository <git-repository>
|
|
10
|
+
-v, --version <release-version>
|
|
11
|
+
|
|
12
|
+
Opsiyonel:
|
|
13
|
+
-t, --task <jira-task> (tekrar verilebilir)
|
|
14
|
+
-b, --branch <branch-name> (tekrar verilebilir)
|
|
15
|
+
--is-nh (NH versiyonu için)
|
|
16
|
+
|
|
17
|
+
Örnekler:
|
|
18
|
+
$(basename "$0") --repository react-native-insider --version 7.1.0 --task MOB-1234 --task MOB-2345
|
|
19
|
+
$(basename "$0") --repository react-native-insider --version 7.1.0 --branch feature/MOB-123 --branch epic/webview
|
|
20
|
+
$(basename "$0") --repository react-native-insider --version 7.1.0-nh --is-nh --task MOB-1234
|
|
21
|
+
EOF
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
TASKS=()
|
|
25
|
+
GIT_REPOSITORY=""
|
|
26
|
+
GIT_BRANCHES=()
|
|
27
|
+
GIT_TARGET_BRANCH="develop"
|
|
28
|
+
GIT_BASE_BRANCH="master"
|
|
29
|
+
GIT_PULL_REQUESTS=()
|
|
30
|
+
RELEASE_VERSION=""
|
|
31
|
+
IS_NH="false"
|
|
32
|
+
|
|
33
|
+
while [[ $# -gt 0 ]]; do
|
|
34
|
+
case "$1" in
|
|
35
|
+
-r|--repository) GIT_REPOSITORY="$2"; shift 2;;
|
|
36
|
+
-v|--version) RELEASE_VERSION="$2"; shift 2;;
|
|
37
|
+
-t|--task) TASKS+=("$2"); shift 2;;
|
|
38
|
+
-b|--branch) GIT_BRANCHES+=("$2"); shift 2;;
|
|
39
|
+
--is-nh) IS_NH="true"; shift;;
|
|
40
|
+
-h|--help) usage; exit 0;;
|
|
41
|
+
*) echo "⛔ Error: Bilinmeyen argüman: $1"; usage; exit 1;;
|
|
42
|
+
esac
|
|
43
|
+
done
|
|
44
|
+
|
|
45
|
+
if [[ -z "${GIT_REPOSITORY}" || -z "${RELEASE_VERSION}" ]]; then
|
|
46
|
+
echo "⛔ Error: --repository ve --version zorunludur."
|
|
47
|
+
usage; exit 1
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
# NH version kontrolü
|
|
51
|
+
if [[ "${IS_NH}" == "true" ]]; then
|
|
52
|
+
GIT_TARGET_BRANCH="develop-nh"
|
|
53
|
+
GIT_BASE_BRANCH="master-nh"
|
|
54
|
+
if [[ ! "${RELEASE_VERSION}" == *-nh ]]; then
|
|
55
|
+
echo "⚠️ Warning: NH versiyonu için version '-nh' suffix'i ile bitmeli. Otomatik ekleniyor..."
|
|
56
|
+
RELEASE_VERSION="${RELEASE_VERSION}-nh"
|
|
57
|
+
fi
|
|
58
|
+
elif [[ "${RELEASE_VERSION}" == *-nh ]]; then
|
|
59
|
+
echo "⚠️ Warning: Version '-nh' ile bitiyor ama --is-nh flag'i verilmemiş. IS_NH=true olarak ayarlanıyor..."
|
|
60
|
+
IS_NH="true"
|
|
61
|
+
GIT_TARGET_BRANCH="develop-nh"
|
|
62
|
+
GIT_BASE_BRANCH="master-nh"
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
echo "ℹ️ Project: $(git rev-parse --show-toplevel)"
|
|
66
|
+
echo "ℹ️ Target Branch: ${GIT_TARGET_BRANCH}"
|
|
67
|
+
echo "ℹ️ Base Branch: ${GIT_BASE_BRANCH}"
|
|
68
|
+
echo "ℹ️ Release Version: ${RELEASE_VERSION}"
|
|
69
|
+
|
|
70
|
+
# JIRA task'lardan branch'leri bul
|
|
71
|
+
if [[ ${#TASKS[@]} -gt 0 ]]; then
|
|
72
|
+
for task in "${TASKS[@]}"; do
|
|
73
|
+
echo "🔍 JIRA'dan talep edildi: ${task}"
|
|
74
|
+
response="$(acli jira workitem view "${task}" --fields summary,customfield_14159 --json)"
|
|
75
|
+
summary="$(jq -r '.fields.summary' <<< "${response}")"
|
|
76
|
+
while IFS=' ' read -r url; do
|
|
77
|
+
read owner repository pullRequest <<< "$(
|
|
78
|
+
sed -E 's#.*github.com/([^/]+)/([^/]+)/pull/([0-9]+).*#\1 \2 \3#' <<< "${url}"
|
|
79
|
+
)"
|
|
80
|
+
if [[ "${repository}" != "${GIT_REPOSITORY}" ]]; then
|
|
81
|
+
echo "⚠️ Warning: Branch bulunamadı: ${repository} (beklenen: ${GIT_REPOSITORY})"
|
|
82
|
+
else
|
|
83
|
+
branch=$(gh pr view "${pullRequest}" --repo "${owner}/${repository}" \
|
|
84
|
+
--json headRefName --jq .headRefName)
|
|
85
|
+
GIT_BRANCHES+=("$branch")
|
|
86
|
+
GIT_PULL_REQUESTS+=("$url")
|
|
87
|
+
echo "✅ Branch <${branch}> ${summary}"
|
|
88
|
+
fi
|
|
89
|
+
done < <(
|
|
90
|
+
jq -r '.fields.customfield_14159.content[].content[]?.marks[]?.attrs.href // empty' <<< "${response}" \
|
|
91
|
+
| sed -E 's#/files$##' \
|
|
92
|
+
| grep -E 'github\.com/.+/pull/[0-9]+'
|
|
93
|
+
)
|
|
94
|
+
done
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
# Octopus merge stratejisi (parallel merge)
|
|
98
|
+
octopus_merge() {
|
|
99
|
+
local dry_run="${3:-true}"
|
|
100
|
+
local working_directory="$(git rev-parse --show-toplevel)"
|
|
101
|
+
local target_branch="${1}"
|
|
102
|
+
local -a source_branches=()
|
|
103
|
+
read -r -a source_branches <<< "${2//,/ }"
|
|
104
|
+
if [[ "${dry_run}" == "true" ]]; then
|
|
105
|
+
working_directory="$(mktemp -d)"
|
|
106
|
+
git worktree add --detach "${working_directory}" "origin/${target_branch}" >/dev/null
|
|
107
|
+
trap "git worktree remove --force '${working_directory}' 2>/dev/null || true" RETURN
|
|
108
|
+
git -C "${working_directory}" fetch --prune --tags origin +refs/heads/*:refs/remotes/origin/*
|
|
109
|
+
git -C "${working_directory}" checkout --detach "refs/remotes/origin/${target_branch}" >/dev/null
|
|
110
|
+
fi
|
|
111
|
+
echo "🐙 Birleştirilecek (parallel): ${source_branches[*]} → ${working_directory}"
|
|
112
|
+
echo "🐙 Birleştiriliyor... ${source_branches[*]}"
|
|
113
|
+
if [[ "${dry_run}" == "true" ]]; then
|
|
114
|
+
if git -C "${working_directory}" merge --no-ff --no-commit "${source_branches[@]/#/origin/}" ; then
|
|
115
|
+
echo "✅ Birleştirildi: ${source_branches[*]}"
|
|
116
|
+
git -C "${working_directory}" merge --abort 2>/dev/null; return 0
|
|
117
|
+
else
|
|
118
|
+
echo "⛔ Error: Birleştirme başarısız: ${source_branches[*]}"
|
|
119
|
+
git -C "${working_directory}" merge --abort 2>/dev/null; return 1
|
|
120
|
+
fi
|
|
121
|
+
else
|
|
122
|
+
git -C "${working_directory}" merge --no-ff "${source_branches[@]/#/origin/}" \
|
|
123
|
+
--message "Merge branch ${source_branches[*]} into ${target_branch}"
|
|
124
|
+
fi
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
# Sequential merge stratejisi (sıralı merge)
|
|
128
|
+
sequential_merge() {
|
|
129
|
+
local dry_run="${3:-true}"
|
|
130
|
+
local working_directory="$(git rev-parse --show-toplevel)"
|
|
131
|
+
local target_branch="${1}"
|
|
132
|
+
local -a source_branches=()
|
|
133
|
+
read -r -a source_branches <<< "${2//,/ }"
|
|
134
|
+
if [[ "${dry_run}" == "true" ]]; then
|
|
135
|
+
working_directory="$(mktemp -d)"
|
|
136
|
+
git worktree add --detach "${working_directory}" "origin/${target_branch}" >/dev/null
|
|
137
|
+
trap "git worktree remove --force '${working_directory}' 2>/dev/null || true" RETURN
|
|
138
|
+
git -C "${working_directory}" fetch --prune --tags origin +refs/heads/*:refs/remotes/origin/*
|
|
139
|
+
git -C "${working_directory}" checkout --detach "refs/remotes/origin/${target_branch}" >/dev/null
|
|
140
|
+
fi
|
|
141
|
+
echo "➡️ Birleştirilecek (sequential): ${source_branches[*]} → ${working_directory}"
|
|
142
|
+
local -a merged_branches=()
|
|
143
|
+
local -a pending_branches=("${source_branches[@]}")
|
|
144
|
+
local changed=1
|
|
145
|
+
while (( changed > 0)) && (( ${#pending_branches[@]} > 0 )); do
|
|
146
|
+
changed=0
|
|
147
|
+
local -a next_pending=()
|
|
148
|
+
for branch in "${pending_branches[@]}"; do
|
|
149
|
+
echo "➡️ Birleştiriliyor... ${branch}"
|
|
150
|
+
if [[ "${dry_run}" == "true" ]]; then
|
|
151
|
+
if git -C "${working_directory}" merge --no-ff --no-commit "origin/${branch}" >/dev/null; then
|
|
152
|
+
git -C "${working_directory}" commit --no-edit
|
|
153
|
+
merged_branches+=("${branch}"); changed=1
|
|
154
|
+
echo "✅ Birleştirildi: ${branch}"
|
|
155
|
+
else
|
|
156
|
+
git -C "${working_directory}" merge --abort 2>/dev/null
|
|
157
|
+
next_pending+=("${branch}")
|
|
158
|
+
echo "⛔ Error: Birleştirme başarısız: ${branch}"
|
|
159
|
+
fi
|
|
160
|
+
else
|
|
161
|
+
git -C "${working_directory}" merge --no-ff "origin/${branch}" \
|
|
162
|
+
--message "Merge branch ${branch} into ${target_branch}"
|
|
163
|
+
merged_branches+=("${branch}"); changed=1
|
|
164
|
+
echo "✅ Birleştirildi: ${branch}"
|
|
165
|
+
fi
|
|
166
|
+
done
|
|
167
|
+
if (( ${#next_pending[@]} > 0 )); then
|
|
168
|
+
pending_branches=("${next_pending[@]-}")
|
|
169
|
+
else
|
|
170
|
+
changed=0; pending_branches=()
|
|
171
|
+
fi
|
|
172
|
+
done
|
|
173
|
+
if [[ "${dry_run}" == "true" ]]; then
|
|
174
|
+
git -C "${working_directory}" merge --abort 2>/dev/null
|
|
175
|
+
fi
|
|
176
|
+
return $(( ${#pending_branches[@]} == 0 ? 0 : 1 ))
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if [[ ${#GIT_BRANCHES[@]} -eq 0 ]]; then
|
|
180
|
+
echo "⚠️ Warning: Birleştirilecek branch yok, sadece release oluşturulacak."
|
|
181
|
+
else
|
|
182
|
+
# Merge stratejisini belirle (dry-run ile test et)
|
|
183
|
+
MERGE_STRATEGY=""
|
|
184
|
+
if octopus_merge "${GIT_TARGET_BRANCH}" "${GIT_BRANCHES[*]}" "true"; then
|
|
185
|
+
MERGE_STRATEGY="parallel"
|
|
186
|
+
else
|
|
187
|
+
echo "⚠️ Warning: Parallel merge başarısız, sequential merge deneniyor..."
|
|
188
|
+
if sequential_merge "${GIT_TARGET_BRANCH}" "${GIT_BRANCHES[*]}" "true"; then
|
|
189
|
+
MERGE_STRATEGY="sequential"
|
|
190
|
+
else
|
|
191
|
+
echo "⛔ Error: Merge işlemi başarısız, çıkılıyor."
|
|
192
|
+
exit 1
|
|
193
|
+
fi
|
|
194
|
+
fi
|
|
195
|
+
echo "ℹ️ Merge için belirlenen strateji: ${MERGE_STRATEGY}"
|
|
196
|
+
fi
|
|
197
|
+
|
|
198
|
+
# Git hazırlık
|
|
199
|
+
git fetch --all --prune || true
|
|
200
|
+
git clean -fdx || true
|
|
201
|
+
|
|
202
|
+
# Target branch'e geç
|
|
203
|
+
if git rev-parse --verify "refs/heads/${GIT_TARGET_BRANCH}" >/dev/null 2>&1; then
|
|
204
|
+
git switch "${GIT_TARGET_BRANCH}"
|
|
205
|
+
else
|
|
206
|
+
git switch --track -c "${GIT_TARGET_BRANCH}" "origin/${GIT_TARGET_BRANCH}"
|
|
207
|
+
fi
|
|
208
|
+
|
|
209
|
+
git reset --hard "origin/${GIT_TARGET_BRANCH}"
|
|
210
|
+
|
|
211
|
+
if [[ ${#GIT_BRANCHES[@]} -eq 0 ]]; then
|
|
212
|
+
echo "⚠️ Warning: Birleştirilecek branch yok, sadece release oluşturulacak."
|
|
213
|
+
else
|
|
214
|
+
# Merge işlemini gerçekleştir
|
|
215
|
+
echo "ℹ️ Merge ediliyor... (${MERGE_STRATEGY})"
|
|
216
|
+
if [[ "${MERGE_STRATEGY}" == "parallel" ]]; then
|
|
217
|
+
octopus_merge "${GIT_TARGET_BRANCH}" "${GIT_BRANCHES[*]}" "false"
|
|
218
|
+
else
|
|
219
|
+
sequential_merge "${GIT_TARGET_BRANCH}" "${GIT_BRANCHES[*]}" "false"
|
|
220
|
+
fi
|
|
221
|
+
fi
|
|
222
|
+
|
|
223
|
+
# Target branch'i push et
|
|
224
|
+
echo "ℹ️ Branch <${GIT_TARGET_BRANCH}> gönderiliyor..."
|
|
225
|
+
git push origin "${GIT_TARGET_BRANCH}"
|
|
226
|
+
|
|
227
|
+
# Release branch oluştur
|
|
228
|
+
GIT_RELEASE_BRANCH="release/${RELEASE_VERSION}"
|
|
229
|
+
|
|
230
|
+
echo "ℹ️ Release oluşturuluyor: ${GIT_TARGET_BRANCH} → ${GIT_RELEASE_BRANCH}"
|
|
231
|
+
|
|
232
|
+
git switch -c "${GIT_RELEASE_BRANCH}" "${GIT_TARGET_BRANCH}"
|
|
233
|
+
if ! git log --oneline "origin/${GIT_BASE_BRANCH}..${GIT_RELEASE_BRANCH}" | grep -q .; then
|
|
234
|
+
git commit -S --allow-empty -m "chore: create release branch ${GIT_RELEASE_BRANCH}"
|
|
235
|
+
fi
|
|
236
|
+
git push -u origin "${GIT_RELEASE_BRANCH}"
|
|
237
|
+
|
|
238
|
+
# Pull Request oluştur
|
|
239
|
+
echo "ℹ️ Pull Request yaratılıyor: ${GIT_BASE_BRANCH} ← ${GIT_RELEASE_BRANCH}"
|
|
240
|
+
|
|
241
|
+
printf -v GIT_PULL_REQUEST_BODY 'Automated release: `%s`\n\n' "${GIT_RELEASE_BRANCH}"
|
|
242
|
+
if [[ ${#GIT_PULL_REQUESTS[@]} -gt 0 ]]; then
|
|
243
|
+
for pullRequest in "${GIT_PULL_REQUESTS[@]}"; do
|
|
244
|
+
# Extract PR number from URL: https://github.com/owner/repo/pull/123 -> #123
|
|
245
|
+
prNumber=$(sed -E 's#.*/pull/([0-9]+).*#\1#' <<< "${pullRequest}")
|
|
246
|
+
printf -v GIT_PULL_REQUEST_BODY '%s- [#%s](%s)\n' "${GIT_PULL_REQUEST_BODY}" "${prNumber}" "${pullRequest}"
|
|
247
|
+
done
|
|
248
|
+
fi
|
|
249
|
+
|
|
250
|
+
gh pr create \
|
|
251
|
+
--repo "useinsider/${GIT_REPOSITORY}" \
|
|
252
|
+
--base "${GIT_BASE_BRANCH}" \
|
|
253
|
+
--head "${GIT_RELEASE_BRANCH}" \
|
|
254
|
+
--title "Release ${RELEASE_VERSION}" \
|
|
255
|
+
--body "${GIT_PULL_REQUEST_BODY}" \
|
|
256
|
+
--assignee "insider-automation"
|
|
257
|
+
|
|
258
|
+
echo "✅ Pull Request yaratıldı: ${GIT_RELEASE_BRANCH}"
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
usage() {
|
|
5
|
+
cat <<EOF
|
|
6
|
+
Kullanım: $(basename "$0") [opsiyonlar]
|
|
7
|
+
|
|
8
|
+
Opsiyonel:
|
|
9
|
+
--previous-version <version> Önceki RN version (belirtilmezse git'ten bulunur)
|
|
10
|
+
--current-version <version> Güncel RN version (belirtilmezse package.json'dan alınır)
|
|
11
|
+
|
|
12
|
+
Örnekler:
|
|
13
|
+
$(basename "$0")
|
|
14
|
+
$(basename "$0") --previous-version 7.0.0 --current-version 7.1.0
|
|
15
|
+
EOF
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
PREVIOUS_VERSION=""
|
|
19
|
+
CURRENT_VERSION=""
|
|
20
|
+
|
|
21
|
+
while [[ $# -gt 0 ]]; do
|
|
22
|
+
case "$1" in
|
|
23
|
+
--previous-version) PREVIOUS_VERSION="$2"; shift 2;;
|
|
24
|
+
--current-version) CURRENT_VERSION="$2"; shift 2;;
|
|
25
|
+
-h|--help) usage; exit 0;;
|
|
26
|
+
*) echo "⛔ Error: Bilinmeyen argüman: $1" >&2; usage; exit 1;;
|
|
27
|
+
esac
|
|
28
|
+
done
|
|
29
|
+
|
|
30
|
+
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
|
31
|
+
PACKAGE_FILE="${PROJECT_ROOT}/package.json"
|
|
32
|
+
PODSPEC_FILE="${PROJECT_ROOT}/RNInsider.podspec"
|
|
33
|
+
GRADLE_FILE="${PROJECT_ROOT}/android/build.gradle"
|
|
34
|
+
|
|
35
|
+
# Güncel versiyonu al
|
|
36
|
+
if [[ -z "${CURRENT_VERSION}" ]]; then
|
|
37
|
+
CURRENT_VERSION="$(sed -nE 's/^[[:space:]]*"version"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/p' "${PACKAGE_FILE}" | head -n1)"
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# Önceki versiyonu al (git tag'lerden)
|
|
41
|
+
if [[ -z "${PREVIOUS_VERSION}" ]]; then
|
|
42
|
+
# NH olmayan en son tag'i bul
|
|
43
|
+
PREVIOUS_VERSION="$(git tag --sort=-version:refname | grep -v '\-nh$' | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | head -n2 | tail -n1 || echo "")"
|
|
44
|
+
if [[ -z "${PREVIOUS_VERSION}" ]]; then
|
|
45
|
+
echo "⚠️ Warning: Önceki versiyon bulunamadı, native SDK notes oluşturulamayacak." >&2
|
|
46
|
+
exit 0
|
|
47
|
+
fi
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
echo "ℹ️ Önceki RN Versiyon: ${PREVIOUS_VERSION}" >&2
|
|
51
|
+
echo "ℹ️ Güncel RN Versiyon: ${CURRENT_VERSION}" >&2
|
|
52
|
+
|
|
53
|
+
# Önceki versiyon için native SDK versiyonlarını al (git checkout ile)
|
|
54
|
+
get_previous_native_versions() {
|
|
55
|
+
local version=$1
|
|
56
|
+
local temp_dir="$(mktemp -d)"
|
|
57
|
+
trap "rm -rf '${temp_dir}'" RETURN
|
|
58
|
+
|
|
59
|
+
# Önceki versiyonu checkout et
|
|
60
|
+
git archive "${version}" | tar -x -C "${temp_dir}" 2>/dev/null || return 1
|
|
61
|
+
|
|
62
|
+
# Android versiyonlarını al
|
|
63
|
+
PREV_ANDROID_INSIDER="$(sed -nE 's/^[[:space:]]*(implementation|api|compileOnly|runtimeOnly)[[:space:]]+['\''"]com\.useinsider:insider:([^'\''"]+)['\''"]/\2/p' "${temp_dir}/android/build.gradle" | head -n1 || echo "")"
|
|
64
|
+
PREV_ANDROID_HYBRID="$(sed -nE 's/^[[:space:]]*(implementation|api|compileOnly|runtimeOnly)[[:space:]]+['\''"]com\.useinsider:insiderhybrid:([^'\''"]+)['\''"]/\2/p' "${temp_dir}/android/build.gradle" | head -n1 || echo "")"
|
|
65
|
+
|
|
66
|
+
# iOS versiyonlarını al
|
|
67
|
+
PREV_IOS_MOBILE="$(sed -nE "s/^[[:space:]]*s\.dependency[[:space:]]*['\"]InsiderMobile['\"][[:space:]]*,[[:space:]]*['\"]([^'\"#]+)['\"]/\1/p" "${temp_dir}/RNInsider.podspec" | head -n1 || echo "")"
|
|
68
|
+
PREV_IOS_GEOFENCE="$(sed -nE "s/^[[:space:]]*s\.dependency[[:space:]]*['\"]InsiderGeofence['\"][[:space:]]*,[[:space:]]*['\"]([^'\"#]+)['\"]/\1/p" "${temp_dir}/RNInsider.podspec" | head -n1 || echo "")"
|
|
69
|
+
PREV_IOS_HYBRID="$(sed -nE "s/^[[:space:]]*s\.dependency[[:space:]]*['\"]InsiderHybrid['\"][[:space:]]*,[[:space:]]*['\"]([^'\"#]+)['\"]/\1/p" "${temp_dir}/RNInsider.podspec" | head -n1 || echo "")"
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
# Güncel native SDK versiyonlarını al
|
|
73
|
+
CURR_ANDROID_INSIDER="$(sed -nE 's/^[[:space:]]*(implementation|api|compileOnly|runtimeOnly)[[:space:]]+['\''"]com\.useinsider:insider:([^'\''"]+)['\''"]/\2/p' "${GRADLE_FILE}" | head -n1 || echo "")"
|
|
74
|
+
CURR_ANDROID_HYBRID="$(sed -nE 's/^[[:space:]]*(implementation|api|compileOnly|runtimeOnly)[[:space:]]+['\''"]com\.useinsider:insiderhybrid:([^'\''"]+)['\''"]/\2/p' "${GRADLE_FILE}" | head -n1 || echo "")"
|
|
75
|
+
|
|
76
|
+
CURR_IOS_MOBILE="$(sed -nE "s/^[[:space:]]*s\.dependency[[:space:]]*['\"]InsiderMobile['\"][[:space:]]*,[[:space:]]*['\"]([^'\"#]+)['\"]/\1/p" "${PODSPEC_FILE}" | head -n1 || echo "")"
|
|
77
|
+
CURR_IOS_GEOFENCE="$(sed -nE "s/^[[:space:]]*s\.dependency[[:space:]]*['\"]InsiderGeofence['\"][[:space:]]*,[[:space:]]*['\"]([^'\"#]+)['\"]/\1/p" "${PODSPEC_FILE}" | head -n1 || echo "")"
|
|
78
|
+
CURR_IOS_HYBRID="$(sed -nE "s/^[[:space:]]*s\.dependency[[:space:]]*['\"]InsiderHybrid['\"][[:space:]]*,[[:space:]]*['\"]([^'\"#]+)['\"]/\1/p" "${PODSPEC_FILE}" | head -n1 || echo "")"
|
|
79
|
+
|
|
80
|
+
# Önceki versiyonları al
|
|
81
|
+
get_previous_native_versions "${PREVIOUS_VERSION}" || {
|
|
82
|
+
echo "⚠️ Warning: Önceki versiyon tag'i bulunamadı, native SDK karşılaştırması yapılamıyor." >&2
|
|
83
|
+
exit 0
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
echo "ℹ️ Android Insider: ${PREV_ANDROID_INSIDER} → ${CURR_ANDROID_INSIDER}" >&2
|
|
87
|
+
echo "ℹ️ Android Hybrid: ${PREV_ANDROID_HYBRID} → ${CURR_ANDROID_HYBRID}" >&2
|
|
88
|
+
echo "ℹ️ iOS Mobile: ${PREV_IOS_MOBILE} → ${CURR_IOS_MOBILE}" >&2
|
|
89
|
+
echo "ℹ️ iOS Geofence: ${PREV_IOS_GEOFENCE} → ${CURR_IOS_GEOFENCE}" >&2
|
|
90
|
+
echo "ℹ️ iOS Hybrid: ${PREV_IOS_HYBRID} → ${CURR_IOS_HYBRID}" >&2
|
|
91
|
+
|
|
92
|
+
# Android tag'lerini topla
|
|
93
|
+
collect_android_tags() {
|
|
94
|
+
local prev_version=$1
|
|
95
|
+
local curr_version=$2
|
|
96
|
+
local module=$3
|
|
97
|
+
|
|
98
|
+
if [[ -z "${prev_version}" ]] || [[ -z "${curr_version}" ]]; then
|
|
99
|
+
return 0
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
# Version aynıysa skip et
|
|
103
|
+
if [[ "${prev_version}" == "${curr_version}" ]]; then
|
|
104
|
+
return 0
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
# mobileandroid repo'sundan tag'leri al
|
|
108
|
+
local tags="$(gh api repos/useinsider/mobileandroid/tags --paginate \
|
|
109
|
+
| jq -r '.[].name' \
|
|
110
|
+
| grep -E "^${module}/[0-9]+\.[0-9]+\.[0-9]+$" \
|
|
111
|
+
| sed "s|^${module}/||" \
|
|
112
|
+
| sort -V \
|
|
113
|
+
|| echo "")"
|
|
114
|
+
|
|
115
|
+
# Version range'i filtrele
|
|
116
|
+
echo "${tags}" | awk -v prev="${prev_version}" -v curr="${curr_version}" '
|
|
117
|
+
function version_compare(v1, v2) {
|
|
118
|
+
split(v1, a, ".")
|
|
119
|
+
split(v2, b, ".")
|
|
120
|
+
for (i = 1; i <= 3; i++) {
|
|
121
|
+
if (a[i] < b[i]) return -1
|
|
122
|
+
if (a[i] > b[i]) return 1
|
|
123
|
+
}
|
|
124
|
+
return 0
|
|
125
|
+
}
|
|
126
|
+
{
|
|
127
|
+
if (version_compare($1, prev) > 0 && version_compare($1, curr) <= 0) {
|
|
128
|
+
print $1
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
'
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
# iOS tag'lerini topla (CocoaPods trunk'tan)
|
|
135
|
+
collect_ios_tags() {
|
|
136
|
+
local prev_version=$1
|
|
137
|
+
local curr_version=$2
|
|
138
|
+
local module=$3
|
|
139
|
+
|
|
140
|
+
if [[ -z "${prev_version}" ]] || [[ -z "${curr_version}" ]]; then
|
|
141
|
+
return 0
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
# Version aynıysa skip et
|
|
145
|
+
if [[ "${prev_version}" == "${curr_version}" ]]; then
|
|
146
|
+
return 0
|
|
147
|
+
fi
|
|
148
|
+
|
|
149
|
+
# Pod trunk'tan versiyonları al
|
|
150
|
+
local versions="$(pod trunk info "${module}" 2>/dev/null \
|
|
151
|
+
| sed -nE 's/^[[:space:]]*-[[:space:]]*([^[:space:]]+)[[:space:]]*\(([^)]+)\).*/\2/p' \
|
|
152
|
+
| grep -v '\-' \
|
|
153
|
+
| sort -V \
|
|
154
|
+
|| echo "")"
|
|
155
|
+
|
|
156
|
+
# Version range'i filtrele
|
|
157
|
+
echo "${versions}" | awk -v prev="${prev_version}" -v curr="${curr_version}" '
|
|
158
|
+
function version_compare(v1, v2) {
|
|
159
|
+
split(v1, a, ".")
|
|
160
|
+
split(v2, b, ".")
|
|
161
|
+
for (i = 1; i <= 3; i++) {
|
|
162
|
+
if (a[i] < b[i]) return -1
|
|
163
|
+
if (a[i] > b[i]) return 1
|
|
164
|
+
}
|
|
165
|
+
return 0
|
|
166
|
+
}
|
|
167
|
+
{
|
|
168
|
+
if (version_compare($1, prev) > 0 && version_compare($1, curr) <= 0) {
|
|
169
|
+
print $1
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
'
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
# Release notes başlangıç
|
|
176
|
+
echo "## 📦 Native SDK Updates"
|
|
177
|
+
echo ""
|
|
178
|
+
|
|
179
|
+
HAS_UPDATES="false"
|
|
180
|
+
|
|
181
|
+
# Android Insider updates
|
|
182
|
+
if [[ -n "${PREV_ANDROID_INSIDER}" ]] && [[ -n "${CURR_ANDROID_INSIDER}" ]] && [[ "${PREV_ANDROID_INSIDER}" != "${CURR_ANDROID_INSIDER}" ]]; then
|
|
183
|
+
HAS_UPDATES="true"
|
|
184
|
+
echo "### Android SDK Updates (insider: ${PREV_ANDROID_INSIDER} → ${CURR_ANDROID_INSIDER})"
|
|
185
|
+
echo ""
|
|
186
|
+
|
|
187
|
+
ANDROID_TAGS="$(collect_android_tags "${PREV_ANDROID_INSIDER}" "${CURR_ANDROID_INSIDER}" "insider")"
|
|
188
|
+
if [[ -n "${ANDROID_TAGS}" ]]; then
|
|
189
|
+
while IFS= read -r tag; do
|
|
190
|
+
if [[ -n "${tag}" ]]; then
|
|
191
|
+
# GitHub release notes'u al (insider modülü için tag formatı: insider/VERSION)
|
|
192
|
+
RELEASE_BODY="$(gh api "repos/useinsider/mobileandroid/releases/tags/insider/${tag}" --jq '.body' 2>/dev/null || echo "")"
|
|
193
|
+
if [[ -n "${RELEASE_BODY}" ]]; then
|
|
194
|
+
echo "#### [${tag}](https://github.com/useinsider/mobileandroid/releases/tag/insider/${tag})"
|
|
195
|
+
echo "${RELEASE_BODY}"
|
|
196
|
+
echo ""
|
|
197
|
+
else
|
|
198
|
+
echo "- **${tag}**: [Release Notes](https://github.com/useinsider/mobileandroid/releases/tag/insider/${tag})"
|
|
199
|
+
fi
|
|
200
|
+
fi
|
|
201
|
+
done <<< "${ANDROID_TAGS}"
|
|
202
|
+
else
|
|
203
|
+
echo "- Updated to version ${CURR_ANDROID_INSIDER}"
|
|
204
|
+
echo ""
|
|
205
|
+
fi
|
|
206
|
+
fi
|
|
207
|
+
|
|
208
|
+
# Android Hybrid updates
|
|
209
|
+
if [[ -n "${PREV_ANDROID_HYBRID}" ]] && [[ -n "${CURR_ANDROID_HYBRID}" ]] && [[ "${PREV_ANDROID_HYBRID}" != "${CURR_ANDROID_HYBRID}" ]]; then
|
|
210
|
+
HAS_UPDATES="true"
|
|
211
|
+
echo "### Android SDK Updates (insiderhybrid: ${PREV_ANDROID_HYBRID} → ${CURR_ANDROID_HYBRID})"
|
|
212
|
+
echo ""
|
|
213
|
+
|
|
214
|
+
ANDROID_HYBRID_TAGS="$(collect_android_tags "${PREV_ANDROID_HYBRID}" "${CURR_ANDROID_HYBRID}" "insiderhybrid")"
|
|
215
|
+
if [[ -n "${ANDROID_HYBRID_TAGS}" ]]; then
|
|
216
|
+
while IFS= read -r tag; do
|
|
217
|
+
if [[ -n "${tag}" ]]; then
|
|
218
|
+
RELEASE_BODY="$(gh api "repos/useinsider/mobileandroid/releases/tags/insiderhybrid/${tag}" --jq '.body' 2>/dev/null || echo "")"
|
|
219
|
+
if [[ -n "${RELEASE_BODY}" ]]; then
|
|
220
|
+
echo "#### [insiderhybrid/${tag}](https://github.com/useinsider/mobileandroid/releases/tag/insiderhybrid/${tag})"
|
|
221
|
+
echo "${RELEASE_BODY}"
|
|
222
|
+
echo ""
|
|
223
|
+
else
|
|
224
|
+
echo "- **${tag}**: [Release Notes](https://github.com/useinsider/mobileandroid/releases/tag/insiderhybrid/${tag})"
|
|
225
|
+
fi
|
|
226
|
+
fi
|
|
227
|
+
done <<< "${ANDROID_HYBRID_TAGS}"
|
|
228
|
+
else
|
|
229
|
+
echo "- Updated to version ${CURR_ANDROID_HYBRID}"
|
|
230
|
+
echo ""
|
|
231
|
+
fi
|
|
232
|
+
fi
|
|
233
|
+
|
|
234
|
+
# iOS Mobile updates
|
|
235
|
+
if [[ -n "${PREV_IOS_MOBILE}" ]] && [[ -n "${CURR_IOS_MOBILE}" ]] && [[ "${PREV_IOS_MOBILE}" != "${CURR_IOS_MOBILE}" ]]; then
|
|
236
|
+
HAS_UPDATES="true"
|
|
237
|
+
echo "### iOS SDK Updates (InsiderMobile: ${PREV_IOS_MOBILE} → ${CURR_IOS_MOBILE})"
|
|
238
|
+
echo ""
|
|
239
|
+
|
|
240
|
+
IOS_MOBILE_TAGS="$(collect_ios_tags "${PREV_IOS_MOBILE}" "${CURR_IOS_MOBILE}" "InsiderMobile")"
|
|
241
|
+
if [[ -n "${IOS_MOBILE_TAGS}" ]]; then
|
|
242
|
+
while IFS= read -r tag; do
|
|
243
|
+
if [[ -n "${tag}" ]]; then
|
|
244
|
+
echo "- **${tag}**: [CocoaPods](https://cocoapods.org/pods/InsiderMobile)"
|
|
245
|
+
fi
|
|
246
|
+
done <<< "${IOS_MOBILE_TAGS}"
|
|
247
|
+
echo ""
|
|
248
|
+
else
|
|
249
|
+
echo "- Updated to version ${CURR_IOS_MOBILE}"
|
|
250
|
+
echo ""
|
|
251
|
+
fi
|
|
252
|
+
fi
|
|
253
|
+
|
|
254
|
+
# iOS Geofence updates
|
|
255
|
+
if [[ -n "${PREV_IOS_GEOFENCE}" ]] && [[ -n "${CURR_IOS_GEOFENCE}" ]] && [[ "${PREV_IOS_GEOFENCE}" != "${CURR_IOS_GEOFENCE}" ]]; then
|
|
256
|
+
HAS_UPDATES="true"
|
|
257
|
+
echo "### iOS SDK Updates (InsiderGeofence: ${PREV_IOS_GEOFENCE} → ${CURR_IOS_GEOFENCE})"
|
|
258
|
+
echo ""
|
|
259
|
+
echo "- Updated to version ${CURR_IOS_GEOFENCE}"
|
|
260
|
+
echo ""
|
|
261
|
+
fi
|
|
262
|
+
|
|
263
|
+
# iOS Hybrid updates
|
|
264
|
+
if [[ -n "${PREV_IOS_HYBRID}" ]] && [[ -n "${CURR_IOS_HYBRID}" ]] && [[ "${PREV_IOS_HYBRID}" != "${CURR_IOS_HYBRID}" ]]; then
|
|
265
|
+
HAS_UPDATES="true"
|
|
266
|
+
echo "### iOS SDK Updates (InsiderHybrid: ${PREV_IOS_HYBRID} → ${CURR_IOS_HYBRID})"
|
|
267
|
+
echo ""
|
|
268
|
+
echo "- Updated to version ${CURR_IOS_HYBRID}"
|
|
269
|
+
echo ""
|
|
270
|
+
fi
|
|
271
|
+
|
|
272
|
+
if [[ "${HAS_UPDATES}" == "false" ]]; then
|
|
273
|
+
echo "No native SDK updates in this release."
|
|
274
|
+
echo ""
|
|
275
|
+
fi
|
|
@@ -44,12 +44,10 @@ if [[ -z "${LIBRARY_ZIP}" ]]; then
|
|
|
44
44
|
usage; exit 1
|
|
45
45
|
fi
|
|
46
46
|
|
|
47
|
-
#
|
|
47
|
+
# Execute commands directly (no dry-run mode for GitHub releases)
|
|
48
48
|
run() {
|
|
49
49
|
echo "+ $*"
|
|
50
|
-
|
|
51
|
-
eval "$@"
|
|
52
|
-
fi
|
|
50
|
+
eval "$@"
|
|
53
51
|
}
|
|
54
52
|
|
|
55
53
|
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
|
@@ -58,19 +56,40 @@ CURRENT_VERSION_NUMBER="$(sed -nE 's/^[[:space:]]*"version"[[:space:]]*:[[:space
|
|
|
58
56
|
|
|
59
57
|
echo "ℹ️ (Github) Güncel versiyon: ${CURRENT_VERSION_NUMBER}"
|
|
60
58
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
IS_NH_VERSION="false"
|
|
60
|
+
RELEASE_NAME="${CURRENT_VERSION_NUMBER}"
|
|
61
|
+
if [[ "${CURRENT_VERSION_NUMBER}" == *-nh ]]; then
|
|
62
|
+
echo "ℹ️ (Github) -nh versiyonu tespit edildi."
|
|
63
|
+
IS_NH_VERSION="true"
|
|
64
|
+
RELEASE_NAME="${CURRENT_VERSION_NUMBER%-nh}"
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
if [[ "${IS_NH_VERSION}" == "false" ]]; then
|
|
68
|
+
if gh release view "${RELEASE_NAME}" >/dev/null 2>&1; then
|
|
69
|
+
if [[ "${DRY_RUN}" == "false" ]]; then
|
|
70
|
+
echo "⛔ (Github) Error: Bu version halihazırda mevcut: ${RELEASE_NAME}"
|
|
71
|
+
exit 1
|
|
72
|
+
else
|
|
73
|
+
echo "⚠️ (Github) Warning: Bu version halihazırda mevcut: ${RELEASE_NAME} (dry-run modunda atlanıyor.)"
|
|
74
|
+
fi
|
|
75
|
+
fi
|
|
76
|
+
else
|
|
77
|
+
if gh release view "${RELEASE_NAME}" >/dev/null 2>&1; then
|
|
78
|
+
echo "✅ (Github) Version mevcut: ${RELEASE_NAME}"
|
|
65
79
|
else
|
|
66
|
-
|
|
80
|
+
if [[ "${DRY_RUN}" == "false" ]]; then
|
|
81
|
+
echo "⛔ (Github) Error: Bu version bulunamadı: ${RELEASE_NAME}"
|
|
82
|
+
exit 1
|
|
83
|
+
else
|
|
84
|
+
echo "⚠️ (Github) Warning: Bu version bulunamadı: ${RELEASE_NAME} (dry-run modunda atlanıyor.)"
|
|
85
|
+
fi
|
|
67
86
|
fi
|
|
68
87
|
fi
|
|
69
88
|
|
|
70
89
|
RELEASE_EXTRA_FLAGS=""
|
|
71
90
|
|
|
72
91
|
if [[ -z "${RELEASE_TITLE}" ]]; then
|
|
73
|
-
RELEASE_EXTRA_FLAGS+="--title \"${
|
|
92
|
+
RELEASE_EXTRA_FLAGS+="--title \"${RELEASE_NAME}\""
|
|
74
93
|
else
|
|
75
94
|
RELEASE_EXTRA_FLAGS+="--title \"${RELEASE_TITLE}\""
|
|
76
95
|
fi
|
|
@@ -82,16 +101,35 @@ elif [[ -n "${RELEASE_NOTES_FILE}" ]]; then
|
|
|
82
101
|
echo "⛔ (Github) Error: Not dosyası bulunamadı: ${RELEASE_NOTES_FILE}"
|
|
83
102
|
exit 1
|
|
84
103
|
fi
|
|
85
|
-
|
|
104
|
+
# Release notes dosyasını oku ve GitHub notes ile birleştir
|
|
105
|
+
TEMP_COMBINED_NOTES="$(mktemp)"
|
|
106
|
+
trap "rm -f '${TEMP_COMBINED_NOTES}'" EXIT
|
|
107
|
+
|
|
108
|
+
# Dosyadan notları al
|
|
109
|
+
cat "${RELEASE_NOTES_FILE}" > "${TEMP_COMBINED_NOTES}"
|
|
110
|
+
echo "" >> "${TEMP_COMBINED_NOTES}"
|
|
111
|
+
echo "---" >> "${TEMP_COMBINED_NOTES}"
|
|
112
|
+
echo "" >> "${TEMP_COMBINED_NOTES}"
|
|
113
|
+
|
|
114
|
+
# Auto-generated notes ekle
|
|
115
|
+
echo "## What's Changed" >> "${TEMP_COMBINED_NOTES}"
|
|
116
|
+
gh api "repos/{owner}/{repo}/releases/generate-notes" \
|
|
117
|
+
-f tag_name="${CURRENT_VERSION_NUMBER}" \
|
|
118
|
+
-f target_commitish="$(git rev-parse HEAD)" \
|
|
119
|
+
--jq '.body' >> "${TEMP_COMBINED_NOTES}" 2>/dev/null || echo "Auto-generated release notes could not be created." >> "${TEMP_COMBINED_NOTES}"
|
|
120
|
+
|
|
121
|
+
RELEASE_EXTRA_FLAGS+=" --notes-file \"${TEMP_COMBINED_NOTES}\""
|
|
86
122
|
else
|
|
87
123
|
RELEASE_EXTRA_FLAGS+=" --generate-notes"
|
|
88
124
|
fi
|
|
89
125
|
|
|
90
|
-
|
|
126
|
+
if [[ "${IS_NH_VERSION}" == "false" ]]; then
|
|
127
|
+
run "gh release create \"${RELEASE_NAME}\" ${RELEASE_EXTRA_FLAGS}"
|
|
128
|
+
fi
|
|
91
129
|
|
|
92
130
|
echo "📦 (Github) Sürüm pakedi yükleniyor: ${LIBRARY_ZIP}"
|
|
93
131
|
if [[ -f "${LIBRARY_ZIP}" ]]; then
|
|
94
|
-
run "gh release upload \"${
|
|
132
|
+
run "gh release upload \"${RELEASE_NAME}\" \"${LIBRARY_ZIP}\" --clobber"
|
|
95
133
|
else
|
|
96
134
|
echo "⚠️ (Github) Warning: Asset bulunamadı, atlanıyor: ${LIBRARY_ZIP}"
|
|
97
135
|
fi
|