Automate circleci package process
This commit is contained in:
parent
e3c6101b93
commit
46cdb40800
11
circle.yml
11
circle.yml
|
@ -1,14 +1,17 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
post:
|
post:
|
||||||
|
# install rpm & fpm for packaging
|
||||||
|
- which rpmbuild || sudo apt-get install rpm
|
||||||
|
- gem install fpm
|
||||||
# install golint
|
# install golint
|
||||||
- go get github.com/golang/lint/golint
|
- go get github.com/golang/lint/golint
|
||||||
# install gox
|
# install gox
|
||||||
- go get -u -f github.com/mitchellh/gox
|
- go get -u -f github.com/mitchellh/gox
|
||||||
# install binaries
|
|
||||||
- go install ./...
|
|
||||||
|
|
||||||
test:
|
test:
|
||||||
pre:
|
pre:
|
||||||
|
# install binaries
|
||||||
|
- go install ./...
|
||||||
# Go fmt should pass all files
|
# Go fmt should pass all files
|
||||||
- "[ `git ls-files | grep '.go$' | xargs gofmt -l 2>&1 | wc -l` -eq 0 ]"
|
- "[ `git ls-files | grep '.go$' | xargs gofmt -l 2>&1 | wc -l` -eq 0 ]"
|
||||||
- go vet ./...
|
- go vet ./...
|
||||||
|
@ -18,5 +21,9 @@ test:
|
||||||
override:
|
override:
|
||||||
- make test-short
|
- make test-short
|
||||||
post:
|
post:
|
||||||
|
# Build linux binaries
|
||||||
- gox -os="linux" -arch="386 amd64" ./...
|
- gox -os="linux" -arch="386 amd64" ./...
|
||||||
- mv telegraf* $CIRCLE_ARTIFACTS
|
- mv telegraf* $CIRCLE_ARTIFACTS
|
||||||
|
# Build .deb and .rpm files
|
||||||
|
- "GOPATH=/home/ubuntu/.go_project ./package.sh `git rev-parse --short HEAD`"
|
||||||
|
- mv telegraf*{deb,rpm} $CIRCLE_ARTIFACTS
|
||||||
|
|
101
package.sh
101
package.sh
|
@ -224,10 +224,14 @@ fi
|
||||||
|
|
||||||
echo -e "\nStarting package process...\n"
|
echo -e "\nStarting package process...\n"
|
||||||
|
|
||||||
check_gvm
|
if [ $CIRCLE_BRANCH == "" ]; then
|
||||||
|
check_gvm
|
||||||
|
fi
|
||||||
check_gopath
|
check_gopath
|
||||||
check_clean_tree
|
if [ $CIRCLE_BRANCH == "" ]; then
|
||||||
update_tree
|
check_clean_tree
|
||||||
|
update_tree
|
||||||
|
fi
|
||||||
check_tag_exists $VERSION
|
check_tag_exists $VERSION
|
||||||
do_build $VERSION
|
do_build $VERSION
|
||||||
make_dir_tree $TMP_WORK_DIR $VERSION
|
make_dir_tree $TMP_WORK_DIR $VERSION
|
||||||
|
@ -270,12 +274,14 @@ generate_postinstall_script $VERSION
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Create the actual packages.
|
# Create the actual packages.
|
||||||
|
|
||||||
echo -n "Commence creation of $ARCH packages, version $VERSION? [Y/n] "
|
if [ $CIRCLE_BRANCH == "" ]; then
|
||||||
read response
|
echo -n "Commence creation of $ARCH packages, version $VERSION? [Y/n] "
|
||||||
response=`echo $response | tr 'A-Z' 'a-z'`
|
read response
|
||||||
if [ "x$response" == "xn" ]; then
|
response=`echo $response | tr 'A-Z' 'a-z'`
|
||||||
echo "Packaging aborted."
|
if [ "x$response" == "xn" ]; then
|
||||||
cleanup_exit 1
|
echo "Packaging aborted."
|
||||||
|
cleanup_exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $ARCH == "i386" ]; then
|
if [ $ARCH == "i386" ]; then
|
||||||
|
@ -309,51 +315,54 @@ echo "Debian package created successfully."
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Offer to tag the repo.
|
# Offer to tag the repo.
|
||||||
|
|
||||||
echo -n "Tag source tree with v$VERSION and push to repo? [y/N] "
|
if [ $CIRCLE_BRANCH == "" ]; then
|
||||||
read response
|
echo -n "Tag source tree with v$VERSION and push to repo? [y/N] "
|
||||||
response=`echo $response | tr 'A-Z' 'a-z'`
|
read response
|
||||||
if [ "x$response" == "xy" ]; then
|
response=`echo $response | tr 'A-Z' 'a-z'`
|
||||||
echo "Creating tag v$VERSION and pushing to repo"
|
if [ "x$response" == "xy" ]; then
|
||||||
git tag v$VERSION
|
echo "Creating tag v$VERSION and pushing to repo"
|
||||||
if [ $? -ne 0 ]; then
|
git tag v$VERSION
|
||||||
echo "Failed to create tag v$VERSION -- aborting"
|
if [ $? -ne 0 ]; then
|
||||||
cleanup_exit 1
|
echo "Failed to create tag v$VERSION -- aborting"
|
||||||
|
cleanup_exit 1
|
||||||
|
fi
|
||||||
|
git push origin v$VERSION
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Failed to push tag v$VERSION to repo -- aborting"
|
||||||
|
cleanup_exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Not creating tag v$VERSION."
|
||||||
fi
|
fi
|
||||||
git push origin v$VERSION
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Failed to push tag v$VERSION to repo -- aborting"
|
|
||||||
cleanup_exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Not creating tag v$VERSION."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Offer to publish the packages.
|
# Offer to publish the packages.
|
||||||
|
|
||||||
echo -n "Publish packages to S3? [y/N] "
|
if [ $CIRCLE_BRANCH == "" ]; then
|
||||||
read response
|
echo -n "Publish packages to S3? [y/N] "
|
||||||
response=`echo $response | tr 'A-Z' 'a-z'`
|
read response
|
||||||
if [ "x$response" == "xy" ]; then
|
response=`echo $response | tr 'A-Z' 'a-z'`
|
||||||
echo "Publishing packages to S3."
|
if [ "x$response" == "xy" ]; then
|
||||||
if [ ! -e "$AWS_FILE" ]; then
|
echo "Publishing packages to S3."
|
||||||
echo "$AWS_FILE does not exist -- aborting."
|
if [ ! -e "$AWS_FILE" ]; then
|
||||||
cleanup_exit 1
|
echo "$AWS_FILE does not exist -- aborting."
|
||||||
fi
|
|
||||||
|
|
||||||
for filepath in `ls *.{deb,rpm}`; do
|
|
||||||
echo "Uploading $filepath to S3"
|
|
||||||
filename=`basename $filepath`
|
|
||||||
echo "Uploading $filename to s3://get.influxdb.org/telegraf/$filename"
|
|
||||||
AWS_CONFIG_FILE=$AWS_FILE aws s3 cp $filepath s3://get.influxdb.org/telegraf/$filename --acl public-read --region us-east-1
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Upload failed -- aborting".
|
|
||||||
cleanup_exit 1
|
cleanup_exit 1
|
||||||
fi
|
fi
|
||||||
done
|
|
||||||
else
|
for filepath in `ls *.{deb,rpm}`; do
|
||||||
echo "Not publishing packages to S3."
|
echo "Uploading $filepath to S3"
|
||||||
|
filename=`basename $filepath`
|
||||||
|
echo "Uploading $filename to s3://get.influxdb.org/telegraf/$filename"
|
||||||
|
AWS_CONFIG_FILE=$AWS_FILE aws s3 cp $filepath s3://get.influxdb.org/telegraf/$filename --acl public-read --region us-east-1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Upload failed -- aborting".
|
||||||
|
cleanup_exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "Not publishing packages to S3."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
Loading…
Reference in New Issue