mirror of
https://github.com/mimblewimble/grin.git
synced 2025-02-08 04:11:08 +03:00
chore: automatic binaries release (#1540)
* automatic binaries release from Travis-CI server * build both osx and linux binary * add before_deploy for making tarball and show size * set file_glob for wildcards * automatic changelog generator * remove the --depth flag entirely, travis-ci default depth 50 cause change log auto-generation fail * note: - '#' in file name will be converted as '.', replace '#' with '-' - file_glob wildcards don't support multiple lines of 'file'
This commit is contained in:
parent
7a187d5c98
commit
830f4d6b7c
2 changed files with 112 additions and 15 deletions
68
.auto-release.sh
Executable file
68
.auto-release.sh
Executable file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
repo_slug="mimblewimble/grin"
|
||||||
|
token="$GITHUB_TOKEN"
|
||||||
|
|
||||||
|
tagname=`git describe --tags --exact-match 2>/dev/null || git symbolic-ref -q --short HEAD`
|
||||||
|
|
||||||
|
echo 'make a tarball for the release binary...\n'
|
||||||
|
|
||||||
|
if [[ $TRAVIS_OS_NAME == 'osx' ]]; then
|
||||||
|
|
||||||
|
# Do some custom requirements on OS X
|
||||||
|
cd target/release ; rm -f *.tgz; tar zcf "grin-$tagname-$TRAVIS_JOB_ID-osx.tgz" grin
|
||||||
|
/bin/ls -ls *.tgz | awk '{print $6,$7,$8,$9,$10}'
|
||||||
|
md5 "grin-$tagname-$TRAVIS_JOB_ID-osx.tgz" > "grin-$tagname-$TRAVIS_JOB_ID-osx.tgz"-md5sum.txt
|
||||||
|
/bin/ls -ls *-md5sum.txt | awk '{print $6,$7,$8,$9,$10}'
|
||||||
|
cd - > /dev/null;
|
||||||
|
echo "tarball generated\n"
|
||||||
|
|
||||||
|
# Only generate changelog on Linux platform, to avoid duplication
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
# Do some custom requirements on Linux
|
||||||
|
cd target/release ; rm -f *.tgz; tar zcf "grin-$tagname-$TRAVIS_JOB_ID-linux-amd64.tgz" grin
|
||||||
|
/bin/ls -ls *.tgz | awk '{print $6,$7,$8,$9,$10}'
|
||||||
|
md5sum "grin-$tagname-$TRAVIS_JOB_ID-linux-amd64.tgz" > "grin-$tagname-$TRAVIS_JOB_ID-linux-amd64.tgz"-md5sum.txt
|
||||||
|
/bin/ls -ls *-md5sum.txt | awk '{print $6,$7,$8,$9,$10}'
|
||||||
|
cd - > /dev/null;
|
||||||
|
echo "tarball generated\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
version="$tagname"
|
||||||
|
branch="`git symbolic-ref -q --short HEAD`"
|
||||||
|
|
||||||
|
# automatic changelog generator
|
||||||
|
gem install github_changelog_generator
|
||||||
|
|
||||||
|
LAST_REVISION=$(git rev-list --tags --skip=1 --max-count=1)
|
||||||
|
LAST_RELEASE_TAG=$(git describe --abbrev=0 --tags ${LAST_REVISION})
|
||||||
|
|
||||||
|
# Generate CHANGELOG.md
|
||||||
|
github_changelog_generator \
|
||||||
|
-u $(cut -d "/" -f1 <<< $repo_slug) \
|
||||||
|
-p $(cut -d "/" -f2 <<< $repo_slug) \
|
||||||
|
--token $token \
|
||||||
|
--since-tag ${LAST_RELEASE_TAG}
|
||||||
|
|
||||||
|
body="$(cat CHANGELOG.md)"
|
||||||
|
|
||||||
|
# Overwrite CHANGELOG.md with JSON data for GitHub API
|
||||||
|
jq -n \
|
||||||
|
--arg body "$body" \
|
||||||
|
--arg name "$version" \
|
||||||
|
--arg tag_name "$version" \
|
||||||
|
--arg target_commitish "$branch" \
|
||||||
|
'{
|
||||||
|
body: $body,
|
||||||
|
name: $name,
|
||||||
|
tag_name: $tag_name,
|
||||||
|
target_commitish: $target_commitish,
|
||||||
|
draft: false,
|
||||||
|
prerelease: false
|
||||||
|
}' > CHANGELOG.md
|
||||||
|
|
||||||
|
echo "Create release $version for repo: $repo_slug, branch: $branch"
|
||||||
|
curl -H "Authorization: token $token" --data @CHANGELOG.md "https://api.github.com/repos/$repo_slug/releases"
|
||||||
|
echo "auto changelog uploaded.\n"
|
||||||
|
|
59
.travis.yml
59
.travis.yml
|
@ -1,26 +1,42 @@
|
||||||
language: rust
|
language: rust
|
||||||
|
|
||||||
|
git:
|
||||||
|
depth: false
|
||||||
|
|
||||||
|
os:
|
||||||
|
- linux
|
||||||
|
- osx
|
||||||
|
|
||||||
|
dist: trusty
|
||||||
|
sudo: required
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
cargo: true
|
cargo: true
|
||||||
timeout: 240
|
timeout: 240
|
||||||
|
|
||||||
before_cache:
|
before_cache:
|
||||||
- rm -rf target/tmp
|
- rm -rf target/tmp
|
||||||
dist: trusty
|
|
||||||
sudo: required
|
|
||||||
rust:
|
rust:
|
||||||
- stable
|
- stable
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
- ubuntu-toolchain-r-test
|
- ubuntu-toolchain-r-test
|
||||||
packages:
|
packages:
|
||||||
- g++-5
|
- g++-5
|
||||||
- cmake
|
- cmake
|
||||||
- libcurl4-openssl-dev
|
- libcurl4-openssl-dev
|
||||||
- libelf-dev
|
- libelf-dev
|
||||||
- libdw-dev
|
- libdw-dev
|
||||||
- cmake
|
- cmake
|
||||||
- gcc
|
- gcc
|
||||||
- binutils-dev
|
- binutils-dev
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- RUST_BACKTRACE="1"
|
- RUST_BACKTRACE="1"
|
||||||
|
@ -37,12 +53,25 @@ env:
|
||||||
- TEST_DIR=core
|
- TEST_DIR=core
|
||||||
- TEST_DIR=util
|
- TEST_DIR=util
|
||||||
- TEST_DIR=config
|
- TEST_DIR=config
|
||||||
script: cd $TEST_DIR && cargo test --release
|
- TEST_DIR=none
|
||||||
|
|
||||||
|
script:
|
||||||
|
- if [[ "$TEST_DIR" == "none" ]]; then cargo build --release; fi
|
||||||
|
- if [[ "$TEST_DIR" != "none" ]]; then cd $TEST_DIR && cargo test --release; fi
|
||||||
|
|
||||||
|
before_deploy:
|
||||||
|
- if [[ "$TEST_DIR" == "none" ]]; then ./.auto-release.sh; fi
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
provider: releases
|
provider: releases
|
||||||
api_key:
|
api_key:
|
||||||
secure: PBTFcoUmiQITkDdtFzrBlNR/5OgYHTCw+xVWGYu205xwTlj/ARBgw7DNt8dIdptLx+jOM2V5SbJqSFxs/CJ2ZcOHQZ6ubwpAJlRfuk3xDAi5JmuHYfcY+4SQ9l/0MgHnGfuml093xP7vTIYm2Vwwgdq8fd3jdWmvwgk9zgaGXB4UIXQA0yIs3EzxZpqiLg629Ouv7edMfyffwlG+rgQ1koe6sqeMCxIs0N3p97GCx19kNe0TV4dC7XAN74HreMdHmwxPKAK4xG/jtA1Snm0pMQ50Z0Kizt+0yrGOPMLnWwO9sS38iosBn3Vh1R8HKle2xBGflTtT/LG9lHdQZ5NF572q6681x6t7str4OjJ5bboy1PtNLFxG7RJCVIpp9gbouzdxIaJWRTxIdlk8UNQMrD8ieiNE6V1vZtbHGtJHRSJN1vO/XxsLlQDCyakLhG/nmSKXgiT9wIsu+zj/3oDe+LBt5QetEGYGBrCwUewjaQ7EP1rsT7alQrHTMad5DPjYftJuvfR+yBtz1qbzQwZVJpQC1KY1c476mXPQsaywuUrj56hH92p7P3vl6aMN2OPJZP+zENOVSURHc56KeTsDS55+KKzcRjCMA2L0LR1hP33+V5kavMHgCRrWIkxAkZ4eRqnermalzp8vlzL6EEoGm0VFLzv4mJmzrY1mC1LyCHo=
|
secure: PBTFcoUmiQITkDdtFzrBlNR/5OgYHTCw+xVWGYu205xwTlj/ARBgw7DNt8dIdptLx+jOM2V5SbJqSFxs/CJ2ZcOHQZ6ubwpAJlRfuk3xDAi5JmuHYfcY+4SQ9l/0MgHnGfuml093xP7vTIYm2Vwwgdq8fd3jdWmvwgk9zgaGXB4UIXQA0yIs3EzxZpqiLg629Ouv7edMfyffwlG+rgQ1koe6sqeMCxIs0N3p97GCx19kNe0TV4dC7XAN74HreMdHmwxPKAK4xG/jtA1Snm0pMQ50Z0Kizt+0yrGOPMLnWwO9sS38iosBn3Vh1R8HKle2xBGflTtT/LG9lHdQZ5NF572q6681x6t7str4OjJ5bboy1PtNLFxG7RJCVIpp9gbouzdxIaJWRTxIdlk8UNQMrD8ieiNE6V1vZtbHGtJHRSJN1vO/XxsLlQDCyakLhG/nmSKXgiT9wIsu+zj/3oDe+LBt5QetEGYGBrCwUewjaQ7EP1rsT7alQrHTMad5DPjYftJuvfR+yBtz1qbzQwZVJpQC1KY1c476mXPQsaywuUrj56hH92p7P3vl6aMN2OPJZP+zENOVSURHc56KeTsDS55+KKzcRjCMA2L0LR1hP33+V5kavMHgCRrWIkxAkZ4eRqnermalzp8vlzL6EEoGm0VFLzv4mJmzrY1mC1LyCHo=
|
||||||
file: target/release/grin
|
file_glob: true
|
||||||
|
file: target/release/grin-*.tgz*
|
||||||
|
skip_cleanup: true
|
||||||
on:
|
on:
|
||||||
repo: mimblewimble/grin
|
repo: mimblewimble/grin
|
||||||
tags: true
|
tags: true
|
||||||
|
condition: $TEST_DIR = "none"
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue