File: create-release.sh

package info (click to toggle)
sane-backends 1.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,552 kB
  • sloc: ansic: 418,643; cpp: 33,564; makefile: 2,502; java: 1,412; sh: 663; python: 330; awk: 83; perl: 27
file content (62 lines) | stat: -rwxr-xr-x 1,649 bytes parent folder | download
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
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh -eux
# tools/create-release.sh -- via GitLab CI and API
# Copyright (C) 2019  Olaf Meeuwissen
#
# License: GPL-3.0+

PROJECT_ID=$CI_PROJECT_ID

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/-/project/$PROJECT_ID|"
}

cat << EOF > release.json
{
  "name": "SANE Backends $CI_COMMIT_TAG",
  "tag_name": "$CI_COMMIT_TAG",
  "description": $(sed '1,9d;/\x0c/,$d' NEWS \
     | git stripspace \
     | jq -Rs),
  "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

echo '=================================================='
cat release.json
echo '=================================================='

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