forked from mindbox-cloud/ios-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgit-release.sh
executable file
·49 lines (49 loc) · 1.39 KB
/
git-release.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/bash
set -e
version=$(cat Mindbox.podspec |grep 'spec.version =' | cut -f2 -d"\"")
text=$1
token=$2
user=$3
branch=${GITHUB_REF##*/}
repo_full_name=$(git config --get remote.origin.url | sed 's/.*:\/\/github.com\///;s/.git$//' | cut -f2 -d":")
generate_post_data()
{
cat <<EOF
{
"tag_name": "$version",
"target_commitish": "$branch",
"name": "Release $version",
"body": "Autogenerated release. Check more details at https://developers.mindbox.ru/docs/ios-sdk",
"draft": false,
"prerelease": false
}
EOF
}
set-tag(){
set-local-tag
}
set-local-tag(){
if [ $(git tag -l | grep $version) ]; then
echo "Local tag cleanup"
git tag -d $version
git tag $version
else
git tag $version
fi
}
set-remote-tag(){
if [ $(git ls-remote --tags https://$user:[email protected]/$repo_full_name.git | cut -f3 -d"/" | grep $version) ]; then
echo "Remote tag cleanup"
git push --delete https://$user:[email protected]/$repo_full_name.git $version
git push https://$user:[email protected]/$repo_full_name.git $version
else
git push https://$user:[email protected]/$repo_full_name.git $version
fi
}
echo "Create release $version for repo: $repo_full_name branch: $branch"
echo "Release settings: $(generate_post_data)"
post-request(){
curl -s --show-error --user "$user:$token" --data "$(generate_post_data)" "https://api.github.com/repos/$repo_full_name/releases"
}
set-tag
post-request