Skip to content

Commit be5f333

Browse files
trungjpmsam
authored andcommitted
Binaries distribution to Bintray (#623)
distribute binaries to bintray when tagging
1 parent a4580fc commit be5f333

File tree

2 files changed

+113
-9
lines changed

2 files changed

+113
-9
lines changed

.bintray.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"package": {
3+
"name": "geth",
4+
"repo": "quorum",
5+
"subject": "_ORGANIZATION_",
6+
"vcs_url": "https://github.com/jpmorganchase/quorum",
7+
"licenses": [
8+
"LGPL-3.0"
9+
]
10+
},
11+
"version": {
12+
"name": "_TRAVIS_TAG_",
13+
"desc": "Quorum: _TRAVIS_TAG_, Geth: _GETH_VERSION_, Commit: _TRAVIS_COMMIT_, Build Number: _TRAVIS_BUILD_NUMBER_",
14+
"released": "_RELEASED_DATE_",
15+
"vcs_tag": "_TRAVIS_TAG_",
16+
"gpgSign": true,
17+
"attributes": [
18+
{
19+
"name": "Travis",
20+
"values": [
21+
"_TRAVIS_JOB_WEB_URL_"
22+
],
23+
"type": "string"
24+
}
25+
]
26+
},
27+
"files": [
28+
{
29+
"includePattern": "/dist/(.*.tar.gz)",
30+
"uploadPattern": "_TRAVIS_TAG_/$1",
31+
"matrixParams": {
32+
"override": 1
33+
}
34+
}
35+
],
36+
"publish": true
37+
}

.travis.yml

Lines changed: 76 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,94 @@
22

33
language: go
44
go_import_path: github.com/ethereum/go-ethereum
5-
sudo: false
5+
go: 1.9.x
6+
sudo: true
7+
branches:
8+
only:
9+
- /.*/ # everything including tags
10+
env:
11+
global:
12+
- BINTRAY_ORGANIZATION=quorumengineering
13+
- BINTRAY_USER=quorumbot
14+
# Bintray API Key
15+
- secure: "QHiPcd3zQoJEsT3VSpxoLVTYwbiYzS8H18EpY7Tk0EqCIfswS2AvRlyRXUxNvCf9ktzpaeXV4b5cPYJ67dwdp5V/O/ARaK5AL6ZjjrTPR1avPnmz/X2VeQEP0aWk1UGMs1nBUj5rzMbIIxlVhpbiITTLAI4Ao0+xRcBi215mDbv271Z7mACEZfXxjaoJA0/3IkbKz9pu1nC7bTjaaExCDAeLp2p8fHi2YQPnBll/7dkn/m1rnsIY9M3KWNCx6xBmQOr1hulrrB6tZoHwFBoDsVTFJFLckPfrWUZsYUgtfWJMQWc6ntv1gFl0f9x6s5fYEphCU2m1JYjEczlQ03B5ro9EyPGKjO7vQxAaFd5nVd2Xf34ZbssEIyXxlSnP/4Gv1GXl9L9aU1Hth9ckYvT5gYP5t/Nw3CDbKD0HelPBvkf8jZwfdlotzFPS2bOZNdl/rJLWgQrX18a/mC3BH9l4TSRz13tbRfo6YcC3Y/uOvG1n4GxzcVaWojAxn86SkknOczPTf2pk9F3JOcGVSYA2R4kGQAe+ErJH2X5g2sh1D5cCYDjQyl5rzWg6P3eK//HYW+mg2+TQ8k2iQVVSwFwrR0Yn4P+5cRDCW9mjtktgq1rTtslj41gSH49Avqr9oXGM2rqdcJPdN8dnmLMrAtmeSUNMMoexiRMmlF2OQKLrW3k="
616
matrix:
717
include:
8-
- os: linux
9-
dist: trusty
10-
sudo: required
11-
go: 1.9.x
18+
- if: tag IS blank
19+
os: linux
20+
dist: xenial
1221
script:
1322
- sudo modprobe fuse
1423
- sudo chmod 666 /dev/fuse
1524
- sudo chown root:$USER /etc/fuse.conf
1625
- go run build/ci.go install
1726
- go run build/ci.go test -coverage $TEST_PACKAGES
18-
19-
- os: osx
27+
- if: tag IS blank
28+
os: osx
2029
osx_image: xcode9.2 # so we don't have to deal with Kernel Extension Consent UI which is never possible in CI
21-
go: 1.9.x
22-
sudo: required
2330
script:
2431
- brew update
2532
- brew install caskroom/cask/brew-cask
2633
- brew cask install osxfuse
2734
- go run build/ci.go install
2835
- go run build/ci.go test -coverage $TEST_PACKAGES
36+
37+
- if: tag IS present
38+
os: linux
39+
dist: xenial
40+
env: OUTPUT_FILE=geth_${TRAVIS_TAG}_linux_amd64.tar.gz
41+
script:
42+
- build/env.sh go run build/ci.go install ./cmd/geth
43+
- sudo mkdir -p /dist
44+
- cd build/bin
45+
- sudo tar cfvz /dist/${OUTPUT_FILE} geth
46+
- if: tag IS present
47+
os: osx
48+
osx_image: xcode9.2
49+
env: OUTPUT_FILE=geth_${TRAVIS_TAG}_darwin_amd64.tar.gz
50+
script:
51+
- build/env.sh go run build/ci.go install ./cmd/geth
52+
- sudo mkdir -p /dist
53+
- cd build/bin
54+
- sudo tar cfvz /dist/${OUTPUT_FILE} geth
55+
56+
before_deploy:
57+
- |
58+
echo "Prepare Bintray descriptor"
59+
export GETH_VERSION=$(cat ${TRAVIS_BUILD_DIR}/VERSION)
60+
export RELEASED_DATE=$(date +'%Y-%m-%d')
61+
sed -e "s/_TRAVIS_TAG_/${TRAVIS_TAG}/g" \
62+
-e "s/_TRAVIS_BUILD_NUMBER_/${TRAVIS_BUILD_NUMBER}/g" \
63+
-e "s/_GETH_VERSION_/${GETH_VERSION}/g" \
64+
-e "s/_RELEASED_DATE_/${RELEASED_DATE}/g" \
65+
-e "s/_TRAVIS_COMMIT_/${TRAVIS_COMMIT}/g" \
66+
-e "s/_TRAVIS_JOB_WEB_URL_/${TRAVIS_JOB_WEB_URL//\//\\/}/g" \
67+
-e "s/_ORGANIZATION_/${BINTRAY_ORGANIZATION}/g" \
68+
${TRAVIS_BUILD_DIR}/.bintray.json > /tmp/bintray.json
69+
after_deploy:
70+
- |
71+
published=""
72+
while [ "$published" == "" ]; do
73+
echo "Sleep 5s to wait until ${OUTPUT_FILE} is published"
74+
sleep 5
75+
result=$(curl -u ${BINTRAY_USER}:${BINTRAY_API_KEY} "https://api.bintray.com/packages/${BINTRAY_ORGANIZATION}/quorum/geth/versions/${TRAVIS_TAG}/files")
76+
echo "$result"
77+
if [[ "$result" == *"${OUTPUT_FILE}"* ]]; then
78+
published="done"
79+
fi
80+
done
81+
- |
82+
echo "Add ${OUTPUT_FILE} to Download List"
83+
curl -u ${BINTRAY_USER}:${BINTRAY_API_KEY} \
84+
-H "Content-type: application/json" \
85+
-X PUT \
86+
--data "{\"list_in_downloads\": true}" \
87+
https://api.bintray.com/file_metadata/${BINTRAY_ORGANIZATION}/quorum/${TRAVIS_TAG}/${OUTPUT_FILE}
88+
deploy:
89+
provider: bintray
90+
file: /tmp/bintray.json
91+
user: ${BINTRAY_USER}
92+
key: ${BINTRAY_API_KEY}
93+
skip_cleanup: true
94+
on:
95+
tags: true

0 commit comments

Comments
 (0)