Merge pull request #200 from zquestz/cross_compile

Added travis cross compilation support for linux/solaris/windows
This commit is contained in:
Derek Collison
2016-04-04 18:52:22 -07:00
3 changed files with 23 additions and 0 deletions

4
.gitignore vendored
View File

@@ -34,3 +34,7 @@ gnatsd
# coverage
coverage.out
# Cross compiled binaries
pkg

View File

@@ -16,3 +16,5 @@ script:
- go test -i -race ./...
- go test -v -race ./...
- ./scripts/cov.sh TRAVIS
after_script:
- if [ "$TRAVIS_GO_VERSION" = "1.5" ] && [ "$BUILD_GOOS" = "linux" ] && [ "$TRAVIS_TAG" != "" ]; then ./scripts/cross_compile.sh; ghr --username nats-io --token $GITHUB_TOKEN --replace $TRAVIS_TAG pkg/; fi

17
scripts/cross_compile.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
go get github.com/mitchellh/gox
go get github.com/tcnksm/ghr
export APPNAME="gnatsd"
export OSARCH="linux/386 linux/amd64 linux/arm solaris/amd64 windows/386 windows/amd64"
export DIRS="linux_386 linux_amd64 linux_arm solaris_amd64 windows_386 windows_amd64"
export OUTDIR="pkg"
gox -osarch="$OSARCH" -output "$OUTDIR/$APPNAME-{{.OS}}_{{.Arch}}/$APPNAME"
for dir in $DIRS; do \
(cp README.md $OUTDIR/$APPNAME-$dir/README.md) ;\
(cp LICENSE $OUTDIR/$APPNAME-$dir/LICENSE) ;\
(cd $OUTDIR && zip -q $APPNAME-$dir.zip -r $APPNAME-$dir) ;\
echo "make $OUTDIR/$APPNAME-$dir.zip" ;\
done