kopia lustrzana https://gitlab.com/sane-project/backends
62 wiersze
1.6 KiB
Bash
62 wiersze
1.6 KiB
Bash
|
#!/bin/sh -eux
|
|||
|
# tools/create-release.sh -- via GitLab CI and API
|
|||
|
# Copyright (C) 2019 Olaf Meeuwissen
|
|||
|
#
|
|||
|
# License: GPL-3.0+
|
|||
|
|
|||
|
GROUP=sane-project
|
|||
|
PROJECT=backends
|
|||
|
PROJECT_ID=$GROUP%2F$PROJECT
|
|||
|
|
|||
|
API_ENDPOINT=https://gitlab.com/api/v4
|
|||
|
|
|||
|
# Uploads a file and returns a project relative URL to it.
|
|||
|
upload () {
|
|||
|
curl --silent --fail \
|
|||
|
--header "PRIVATE-TOKEN: $PRIVATE_TOKEN" \
|
|||
|
--form "file=@$1" \
|
|||
|
--request POST \
|
|||
|
$API_ENDPOINT/projects/$PROJECT_ID/uploads \
|
|||
|
| jq --raw-output .url \
|
|||
|
| sed "s|^|https://gitlab.com/$GROUP/$PROJECT|"
|
|||
|
}
|
|||
|
|
|||
|
cat << EOF > release.json
|
|||
|
{
|
|||
|
"name": "SANE Backends $CI_COMMIT_TAG",
|
|||
|
"tag_name": "$CI_COMMIT_TAG",
|
|||
|
"description": "$(sed '1,3d; //{s/.*//; q}' NEWS \
|
|||
|
| git stripspace \
|
|||
|
| sed 's/"/\\"/g; s/$/\\n/g' \
|
|||
|
| tr -d '\n')",
|
|||
|
"assets": {
|
|||
|
"links": [
|
|||
|
EOF
|
|||
|
|
|||
|
for check in sha256 sha512; do
|
|||
|
${check}sum sane-backends-$CI_COMMIT_TAG.tar.gz \
|
|||
|
> sane-backends-$CI_COMMIT_TAG.$check.txt
|
|||
|
cat << EOF >> release.json
|
|||
|
{
|
|||
|
"name": "sane-backends-$CI_COMMIT_TAG.$check.txt",
|
|||
|
"url": "$(upload sane-backends-$CI_COMMIT_TAG.$check.txt)"
|
|||
|
},
|
|||
|
EOF
|
|||
|
done
|
|||
|
|
|||
|
cat << EOF >> release.json
|
|||
|
{
|
|||
|
"name": "sane-backends-$CI_COMMIT_TAG.tar.gz",
|
|||
|
"url": "$(upload sane-backends-$CI_COMMIT_TAG.tar.gz)"
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
}
|
|||
|
EOF
|
|||
|
|
|||
|
curl --silent --fail --write-out "%{http_code}\n"\
|
|||
|
--header "PRIVATE-TOKEN: $PRIVATE_TOKEN" \
|
|||
|
--header "Content-Type: application/json" \
|
|||
|
--data @release.json \
|
|||
|
--request POST $API_ENDPOINT/projects/$PROJECT_ID/releases
|