1
0

build.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/bin/bash
  2. set -ex
  3. ## After Docker
  4. echo "travis build no: $TRAVIS_BUILD_NUMBER"
  5. echo "travis tag: $TRAVIS_TAG"
  6. echo "travis go version: $TRAVIS_GO_VERSION"
  7. export RELEASEVER=${TRAVIS_BUILD_NUMBER:-"1"}
  8. echo "releasever: $RELEASEVER"
  9. export VERSION="0.0"
  10. export LOCAL_GIT_TAG=`git name-rev --tags --name-only $(git rev-parse HEAD) | cut -d 'v' -f 2`
  11. if [ "$LOCAL_GIT_TAG" != "undefined" ]; then
  12. export VERSION=$LOCAL_GIT_TAG
  13. fi
  14. echo "Version is $VERSION"
  15. mkdir -p $RELEASEDIR/
  16. mkdir -p $RELEASEDIR/build/
  17. mkdir -p $RELEASEDIR/rpm/
  18. mkdir -p $RELEASEDIR/deb/
  19. rm -rf $RELEASEDIR/build/*
  20. rm -rf $RELEASEDIR/rpm/*
  21. rm -rf $RELEASEDIR/deb/*
  22. mkdir -p $RELEASEDIR/build/usr/sbin/
  23. mkdir -p $RELEASEDIR/build/usr/bin/
  24. mkdir -p $RELEASEDIR/build/var/db/ovpm
  25. mkdir -p $RELEASEDIR/build/$UNITDIR
  26. mkdir -p $RELEASEDIR/deb/conf
  27. go get -v -t -d ./...
  28. #build
  29. #install
  30. GOOS=linux go build -o $RELEASEDIR/build/usr/sbin/ovpmd ./cmd/ovpmd
  31. GOOS=linux go build -o $RELEASEDIR/build/usr/bin/ovpm ./cmd/ovpm
  32. cp $DIR/contrib/systemd/ovpmd.service $RELEASEDIR/build/$UNITDIR
  33. cp $DIR/contrib/yumrepo.repo $RELEASEDIR/rpm/ovpm.repo
  34. cp $DIR/contrib/deb-repo-config $RELEASEDIR/deb/conf/distributions
  35. #package
  36. fpm -s dir -t rpm -n ovpm --version $VERSION --iteration $RELEASEVER --depends openvpn --description "OVPM makes all aspects of OpenVPN server administration a breeze." --before-install $DIR/contrib/beforeinstall.sh --after-install $DIR/contrib/afterinstall.sh --before-remove $DIR/contrib/beforeremove.sh --after-upgrade $DIR/contrib/afterupgrade.sh -p $RELEASEDIR/rpm -C $RELEASEDIR/build .
  37. fpm -s dir -t deb -n ovpm --version $VERSION --iteration $RELEASEVER --depends openvpn --description "OVPM makes all aspects of OpenVPN server administration a breeze." --before-install $DIR/contrib/beforeinstall.sh --after-install $DIR/contrib/afterinstall.sh --before-remove $DIR/contrib/beforeremove.sh --after-upgrade $DIR/contrib/afterupgrade.sh -p $RELEASEDIR/deb -C $RELEASEDIR/build .
  38. #create rpm repo
  39. createrepo --database $RELEASEDIR/rpm
  40. #create deb repo
  41. reprepro -b $RELEASEDIR/deb/ includedeb ovpm $RELEASEDIR/deb/*.deb
  42. # clean
  43. rm -rf $RELEASEDIR/build
  44. echo "packages are ready at ./deb/ and ./rpm/"