Automate circleci package process

This commit is contained in:
Cameron Sparr 2015-08-10 12:58:58 -06:00
parent e3c6101b93
commit 46cdb40800
2 changed files with 66 additions and 50 deletions

View File

@ -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

View File

@ -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'`
if [ "x$response" == "xn" ]; then
echo "Packaging aborted." echo "Packaging aborted."
cleanup_exit 1 cleanup_exit 1
fi
fi fi
if [ $ARCH == "i386" ]; then if [ $ARCH == "i386" ]; then
@ -309,10 +315,11 @@ 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'`
if [ "x$response" == "xy" ]; then
echo "Creating tag v$VERSION and pushing to repo" echo "Creating tag v$VERSION and pushing to repo"
git tag v$VERSION git tag v$VERSION
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
@ -324,18 +331,19 @@ if [ "x$response" == "xy" ]; then
echo "Failed to push tag v$VERSION to repo -- aborting" echo "Failed to push tag v$VERSION to repo -- aborting"
cleanup_exit 1 cleanup_exit 1
fi fi
else else
echo "Not creating tag v$VERSION." echo "Not creating tag v$VERSION."
fi
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'`
if [ "x$response" == "xy" ]; then
echo "Publishing packages to S3." echo "Publishing packages to S3."
if [ ! -e "$AWS_FILE" ]; then if [ ! -e "$AWS_FILE" ]; then
echo "$AWS_FILE does not exist -- aborting." echo "$AWS_FILE does not exist -- aborting."
@ -352,8 +360,9 @@ if [ "x$response" == "xy" ]; then
cleanup_exit 1 cleanup_exit 1
fi fi
done done
else else
echo "Not publishing packages to S3." echo "Not publishing packages to S3."
fi
fi fi
########################################################################### ###########################################################################