build.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/bash
  2. export PATH=/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin
  3. subdirs=$*
  4. if [ ! -n "$subdirs" ]; then
  5. subdirs=`find . -type d -name '*-*' -printf '%f '`
  6. fi
  7. if [ ! -d ./ubuntu-trusty ]; then
  8. echo 'Must run from linux-build-farm subfolder.'
  9. exit 1
  10. fi
  11. rm -f zt1-src.tar.gz
  12. cd ..
  13. git archive --format=tar.gz --prefix=ZeroTierOne/ -o linux-build-farm/zt1-src.tar.gz HEAD
  14. cd linux-build-farm
  15. # Note that --privileged is used so we can bind mount VM shares when building in a VM.
  16. # It has no other impact or purpose, but probably doesn't matter here in any case.
  17. for distro in $subdirs; do
  18. echo
  19. echo "--- BUILDING FOR $distro ---"
  20. echo
  21. cd $distro
  22. if [ -d x64 ]; then
  23. cd x64
  24. mv ../../zt1-src.tar.gz .
  25. docker build -t zt1-build-${distro}-x64 .
  26. mv zt1-src.tar.gz ../..
  27. cd ..
  28. fi
  29. if [ -d x86 ]; then
  30. cd x86
  31. mv ../../zt1-src.tar.gz .
  32. docker build -t zt1-build-${distro}-x86 .
  33. mv zt1-src.tar.gz ../..
  34. cd ..
  35. fi
  36. rm -f *.deb *.rpm
  37. # exit 0
  38. if [ ! -n "`echo $distro | grep -F debian`" -a ! -n "`echo $distro | grep -F ubuntu`" ]; then
  39. if [ -d x64 ]; then
  40. docker run --rm -v `pwd`:/artifacts --privileged -it zt1-build-${distro}-x64 /bin/bash -c 'cd /ZeroTierOne ; make redhat ; cd .. ; cp `find /root/rpmbuild -type f -name *.rpm` /artifacts ; ls -l /artifacts'
  41. fi
  42. if [ -d x86 ]; then
  43. docker run --rm -v `pwd`:/artifacts --privileged -it zt1-build-${distro}-x86 /bin/bash -c 'cd /ZeroTierOne ; make redhat ; cd .. ; cp `find /root/rpmbuild -type f -name *.rpm` /artifacts ; ls -l /artifacts'
  44. fi
  45. else
  46. if [ -d x64 ]; then
  47. docker run --rm -v `pwd`:/artifacts --privileged -it zt1-build-${distro}-x64 /bin/bash -c 'cd /ZeroTierOne ; make debian ; cd .. ; cp *.deb /artifacts ; ls -l /artifacts'
  48. fi
  49. if [ -d x86 ]; then
  50. docker run --rm -v `pwd`:/artifacts --privileged -it zt1-build-${distro}-x86 /bin/bash -c 'cd /ZeroTierOne ; make debian ; cd .. ; cp *.deb /artifacts ; ls -l /artifacts'
  51. fi
  52. fi
  53. cd ..
  54. done
  55. rm -f zt1-src.tar.gz