Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Cesium
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
bpresles
Cesium
Commits
c98b2465
Commit
c98b2465
authored
5 years ago
by
Benoit Lavenier
Browse files
Options
Downloads
Patches
Plain Diff
[enh] Release script: compute SHA256 checksum on Web and Android artifacts
parent
14fb49f5
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
github.sh
+65
-31
65 additions, 31 deletions
github.sh
with
65 additions
and
31 deletions
github.sh
+
65
−
31
View file @
c98b2465
...
...
@@ -5,33 +5,39 @@ branch=`git rev-parse --abbrev-ref HEAD`
if
[[
!
"
$branch
"
=
"master"
]]
;
then
echo
">> This script must be run under
\`
master
\`
branch"
exit
-
1
exit
1
fi
### Releasing
### Get version to release
current
=
`
grep
-P
"version
\"
:
\"\d
+.
\d
+.
\d
+(
\w
*)"
package.json |
grep
-oP
"
\d
+.
\d
+.
\d
+(
\w
*)"
`
if
[[
"_
$version
"
!=
"_"
]]
;
then
echo
"ERROR: Unable to read 'version' in the file 'package.json'."
echo
" - Make sure the file 'package.json' exists and is readable."
exit
1
fi
echo
"Current version:
$current
"
### Get repo URL
PROJECT_NAME
=
cesium
REPO
=
"duniter/cesium"
REPO_URL
=
https://api.github.com/repos/
$REPO
REPO_API_URL
=
https://api.github.com/repos/
$REPO
REPO_PUBLIC_URL
=
https://github.com/
$REPO
### get auth token
GITHUB_TOKEN
=
`
cat
~/.config/
duniter
/.github
`
GITHUB_TOKEN
=
`
cat
~/.config/
${
PROJECT_NAME
}
/.github
`
if
[[
"_
$GITHUB_TOKEN
"
!=
"_"
]]
;
then
GITHUT_AUTH
=
"Authorization: token
$GITHUB_TOKEN
"
else
echo
"Unable to find github authenti
f
cation token file: "
echo
"
ERROR:
Unable to find github authentication token file: "
echo
" - You can create such a token at https://github.com/settings/tokens > 'Generate a new token'."
echo
" - Then copy the token and paste it in the file '~/.config/
duniter
/.github' using a valid token."
exit
-
1
echo
" - Then copy the token and paste it in the file '~/.config/
${
PROJECT_NAME
}
/.github' using a valid token."
exit
1
fi
case
"
$1
"
in
del
)
result
=
`
curl
-i
"
$REPO_URL
/releases/tags/v
$current
"
`
release_url
=
`
echo
"
$result
"
|
grep
-P
"
\"
url
\"
:
\"
[^
\"
]+"
|
grep
-oP
"
$REPO_URL
/releases/
\d
+"
`
result
=
`
curl
-i
"
$REPO_
API_
URL
/releases/tags/v
$current
"
`
release_url
=
`
echo
"
$result
"
|
grep
-P
"
\"
url
\"
:
\"
[^
\"
]+"
|
grep
-oP
"
$REPO_
API_
URL
/releases/
\d
+"
`
if
[[
$release_url
!=
""
]]
;
then
echo
"Deleting existing release..."
curl
-H
'Authorization: token $GITHUB_TOKEN'
-XDELETE
$release_url
...
...
@@ -39,24 +45,28 @@ case "$1" in
;;
pre|rel
)
if
[[
$2
!=
""
]]
;
then
if
[[
"_
$2
"
!=
"
_
"
]]
;
then
if
[[
$1
=
"pre"
]]
;
then
prerelease
=
"true"
else
prerelease
=
"false"
fi
description
=
"
$2
"
result
=
`
curl
-s
-H
''
"
$GITHUT_AUTH
"
''
"
$REPO_URL
/releases/tags/v
$current
"
`
description
=
`
echo
$2
`
if
[[
"_
$description
"
=
"_"
]]
;
then
description
=
"Release v
$current
"
fi
result
=
`
curl
-s
-H
''
"
$GITHUT_AUTH
"
''
"
$REPO_API_URL
/releases/tags/v
$current
"
`
release_url
=
`
echo
"
$result
"
|
grep
-P
"
\"
url
\"
:
\"
[^
\"
]+"
|
grep
-oP
"https://[A-Za-z0-9/.-]+/releases/
\d
+"
`
if
[[
$release_url
!=
""
]]
;
then
echo
"Deleting existing release..."
result
=
`
curl
-H
''
"
$GITHUT_AUTH
"
''
-XDELETE
$release_url
`
if
[[
"_
$release_url
"
!=
"
_
"
]]
;
then
echo
"Deleting existing release...
$release_url
"
result
=
`
curl
-H
''
"
$GITHUT_AUTH
"
''
-s
-XDELETE
$release_url
`
if
[[
"_
$result
"
!=
"_"
]]
;
then
error_message
=
`
echo
"
$result
"
|
grep
-P
"
\"
message
\"
:
\"
[^
\"
]+"
|
grep
-oP
":
\"
[^
\"
]+
\"
"
`
echo
"Delete existing release failed with error
$error_message
"
exit
-
1
exit
1
fi
else
echo
"Release not exists yet on github."
...
...
@@ -65,34 +75,58 @@ case "$1" in
echo
"Creating new release..."
echo
" - tag: v
$current
"
echo
" - description:
$description
"
result
=
`
curl
-H
''
"
$GITHUT_AUTH
"
''
-
i
$REPO_URL
/releases
-d
'{"tag_name": "v'
"
$current
"
'","target_commitish": "master","name": "'
"
$current
"
'","body": "'
"
$description
"
'","draft": false,"prerelease": '
"
$prerelease
"
'}'
`
result
=
`
curl
-H
''
"
$GITHUT_AUTH
"
''
-
s
$REPO_
API_
URL
/releases
-d
'{"tag_name": "v'
"
$current
"
'","target_commitish": "master","name": "'
"
$current
"
'","body": "'
"
$description
"
'","draft": false,"prerelease": '
"
$prerelease
"
'}'
`
#echo "DEBUG - $result"
upload_url
=
`
echo
"
$result
"
|
grep
-P
"
\"
upload_url
\"
:
\"
[^
\"
]+"
|
grep
-oP
"https://[A-Za-z0-9/.-]+"
`
if
[[
"_
$upload_url
"
=
"_"
]]
;
then
echo
"Failed to create new release for repo
$REPO
."
echo
"Server response:"
echo
"
$result
"
exit
1
fi
### Sending files
echo
"Uploading files to
$upload_url
"
dirname
=
`
pwd
`
curl
-s
-H
''
"
$GITHUT_AUTH
"
''
-H
'Content-Type: application/zip'
-T
$dirname
/platforms/web/build/cesium-v
$current
-web
.zip
$upload_url
?name
=
cesium-v
$current
-web
.zip
curl
-s
-H
''
"
$GITHUT_AUTH
"
''
-H
'Content-Type: application/vnd.android.package-archive'
-T
$dirname
/platforms/android/build/outputs/apk/release/android-release.apk
$upload_url
?name
=
cesium-v
$current
-android
.apk
echo
"Uploading files to
${
upload_url
}
"
dirname
=
$(
pwd
)
ZIP_FILE
=
"
$dirname
/platforms/web/build/
${
PROJECT_NAME
}
-v
$current
-web.zip"
if
[[
-f
"
${
ZIP_FILE
}
"
]]
;
then
result
=
$(
curl
-s
-H
''
"
$GITHUT_AUTH
"
''
-H
'Content-Type: application/zip'
-T
"
${
ZIP_FILE
}
"
"
${
upload_url
}
?name=
${
PROJECT_NAME
}
-v
${
current
}
-web.zip"
)
browser_download_url
=
$(
echo
"
$result
"
|
grep
-P
"
\"
browser_download_url
\"
:[ ]?
\"
[^
\"
]+"
|
grep
-oP
"
\"
browser_download_url
\"
:[ ]?
\"
[^
\"
]+"
|
grep
-oP
"https://[A-Za-z0-9/.-]+"
)
ZIP_SHA256
=
$(
sha256sum
"
${
ZIP_FILE
}
"
)
echo
" -
${
browser_download_url
}
| SHA256 Checksum:
${
ZIP_SHA256
}
"
else
echo
" - ERROR: Web release (ZIP) not found! Skipping."
fi
APK_FILE
=
"
${
dirname
}
/platforms/android/build/outputs/apk/release/android-release.apk"
if
[[
-f
"
${
APK_FILE
}
"
]]
;
then
result
=
$(
curl
-s
-H
''
"
$GITHUT_AUTH
"
''
-H
'Content-Type: application/vnd.android.package-archive'
-T
"
${
APK_FILE
}
"
"
${
upload_url
}
?name=
${
PROJECT_NAME
}
-v
${
current
}
-android.apk"
)
browser_download_url
=
$(
echo
"
$result
"
|
grep
-P
"
\"
browser_download_url
\"
:[ ]?
\"
[^
\"
]+"
|
grep
-oP
"
\"
browser_download_url
\"
:[ ]?
\"
[^
\"
]+"
|
grep
-oP
"https://[A-Za-z0-9/.-]+"
)
APK_SHA256
=
$(
sha256sum
"
${
APK_FILE
}
"
)
echo
" -
${
browser_download_url
}
| SHA256 Checksum:
${
APK_SHA256
}
"
else
echo
"- ERROR: Android release (APK) not found! Skipping."
fi
echo
"Successfully uploading files"
echo
" -> Release url: https://github.com/
$REPO
/releases/tag/v
$current
"
echo
"-----------------------------------------"
echo
"Successfully uploading files !"
echo
" -> Release url:
${
REPO_PUBLIC_URL
}
/releases/tag/v
${
current
}
"
exit
0
else
echo
"Wrong arguments"
echo
"Usage:"
echo
" > ./github.sh pre|rel <release_description>"
echo
" > ./github.sh
del|
pre|rel <release_description>"
echo
"With:"
echo
" - del: delete existing release"
echo
" - pre: use for pre-release"
echo
" - rel: for full release"
exit
-
1
exit
1
fi
;;
*
)
echo
"No task given"
exit
-
1
exit
1
;;
esac
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment