build.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. set -ex
  3. echo "travis build no: $TRAVIS_BUILD_NUMBER"
  4. echo "travis tag: $TRAVIS_TAG"
  5. echo "travis go version: $TRAVIS_GO_VERSION"
  6. # deps
  7. rpm --import https://mirror.go-repo.io/fedora/RPM-GPG-KEY-GO-REPO
  8. curl -s https://mirror.go-repo.io/fedora/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
  9. yum -y install golang ruby ruby-devel gcc make redhat-rpm-config git rpm-build rpmdevtools createrepo reprepro
  10. gem install fpm
  11. # prep
  12. export DIR="/fs/src/github.com/cad/ovpm"
  13. export RELEASEDIR=$DIR/release
  14. export UNITDIR="/usr/lib/systemd/system/"
  15. export GOPATH="/fs/"
  16. export RELEASEVER=${TRAVIS_BUILD_NUMBER:-"1"}
  17. echo "releasever: $RELEASEVER"
  18. mkdir -p $RELEASEDIR/
  19. mkdir -p $RELEASEDIR/build/
  20. mkdir -p $RELEASEDIR/rpm/
  21. mkdir -p $RELEASEDIR/deb/
  22. rm -rf $RELEASEDIR/build/*
  23. rm -rf $RELEASEDIR/rpm/*
  24. rm -rf $RELEASEDIR/deb/*
  25. mkdir -p $RELEASEDIR/build/usr/sbin/
  26. mkdir -p $RELEASEDIR/build/usr/bin/
  27. mkdir -p $RELEASEDIR/build/var/db/ovpm
  28. mkdir -p $RELEASEDIR/build/$UNITDIR
  29. mkdir -p $RELEASEDIR/deb/conf
  30. go get -v -t -d ./...
  31. #build
  32. #install
  33. GOOS=linux go build -o $RELEASEDIR/build/usr/sbin/ovpmd ./cmd/ovpmd
  34. GOOS=linux go build -o $RELEASEDIR/build/usr/bin/ovpm ./cmd/ovpm
  35. cp $DIR/contrib/systemd/ovpmd.service $RELEASEDIR/build/$UNITDIR
  36. cp $DIR/contrib/yumrepo.repo $RELEASEDIR/rpm/ovpm.repo
  37. cp $DIR/contrib/deb-repo-config $RELEASEDIR/deb/conf/distributions
  38. #package
  39. fpm -s dir -t rpm -n ovpm --version `git name-rev --tags --name-only $(git rev-parse HEAD) | cut -d 'v' -f 2` --iteration $RELEASEVER --depends openvpn --description "OVPM makes all aspects of OpenVPN server administration a breeze." --after-install $DIR/contrib/afterinstall.sh --before-remove $DIR/contrib/beforeremove.sh -p $RELEASEDIR/rpm -C $RELEASEDIR/build .
  40. fpm -s dir -t deb -n ovpm --version `git name-rev --tags --name-only $(git rev-parse HEAD) | cut -d 'v' -f 2` --iteration $RELEASEVER --depends openvpn --description "OVPM makes all aspects of OpenVPN server administration a breeze." --after-install $DIR/contrib/afterinstall.sh --before-remove $DIR/contrib/beforeremove.sh -p $RELEASEDIR/deb -C $RELEASEDIR/build .
  41. #create rpm repo
  42. createrepo --database $RELEASEDIR/rpm
  43. #create deb repo
  44. reprepro -b $RELEASEDIR/deb/ includedeb ovpm $RELEASEDIR/deb/*.deb
  45. # clean
  46. rm -rf $RELEASEDIR/build