build.sh 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #!/bin/bash
  2. ############################################################################
  3. #
  4. # Title: Build Salt Script for macOS
  5. # Authors: CR Oldham, Shane Lee
  6. # Date: December 2015
  7. #
  8. # Description: This script downloads and installs all dependencies and build
  9. # tools required to create a .pkg file for installation on macOS.
  10. # Salt and all dependencies will be installed to /opt/salt. A
  11. # .pkg file will then be created based on the contents of
  12. # /opt/salt
  13. #
  14. # Requirements:
  15. # - XCode Command Line Tools (xcode-select --install)
  16. #
  17. # Usage:
  18. # This script can be passed 3 parameters
  19. # $1 : <version> : the version of salt to build
  20. # (a git tag, not a branch)
  21. # (defaults to git-repo state)
  22. # $2 : <pythin ver> : The version of Python to use in the
  23. # build. Default is 2
  24. # $3 : <package dir> : the staging area for the package
  25. # defaults to /tmp/salt_pkg
  26. #
  27. # Example:
  28. # The following will build Salt v2015.8.3 with Python 2 and
  29. # stage all files in /tmp/custom_pkg:
  30. #
  31. # ./build.sh v2015.8.3 2 /tmp/custom_pkg
  32. #
  33. ############################################################################
  34. ############################################################################
  35. # Make sure the script is launched with sudo
  36. ############################################################################
  37. if [[ $(id -u) -ne 0 ]]
  38. then
  39. exec sudo /bin/bash -c "$(printf '%q ' "$BASH_SOURCE" "$@")"
  40. fi
  41. ############################################################################
  42. # Check passed parameters, set defaults
  43. ############################################################################
  44. echo -n -e "\033]0;Build: Variables\007"
  45. if [ "$1" == "" ]; then
  46. VERSION=`git describe`
  47. else
  48. VERSION=$1
  49. fi
  50. if [ "$2" == "" ]; then
  51. PYVER=2
  52. else
  53. PYVER=$2
  54. fi
  55. if [ "$3" == "" ]; then
  56. PKGDIR=/tmp/salt_pkg
  57. else
  58. PKGDIR=$3
  59. fi
  60. ############################################################################
  61. # Additional Parameters Required for the script to function properly
  62. ############################################################################
  63. SRCDIR=`git rev-parse --show-toplevel`
  64. PKGRESOURCES=$SRCDIR/pkg/osx
  65. if [ "$PYVER" == "2" ]; then
  66. PYTHON=/opt/salt/bin/python
  67. else
  68. PYTHON=/opt/salt/bin/python3
  69. fi
  70. CPUARCH=`uname -m`
  71. ############################################################################
  72. # Make sure this is the Salt Repository
  73. ############################################################################
  74. if [[ ! -e "$SRCDIR/.git" ]] && [[ ! -e "$SRCDIR/scripts/salt" ]]; then
  75. echo "This directory doesn't appear to be a git repository."
  76. echo "The macOS build process needs some files from a Git checkout of Salt."
  77. echo "Run this script from the root of the Git checkout."
  78. exit -1
  79. fi
  80. ############################################################################
  81. # Create the Build Environment
  82. ############################################################################
  83. echo -n -e "\033]0;Build: Build Environment\007"
  84. $PKGRESOURCES/build_env.sh $PYVER
  85. ############################################################################
  86. # Install Salt
  87. ############################################################################
  88. echo -n -e "\033]0;Build: Install Salt\007"
  89. rm -rf $SRCDIR/build
  90. rm -rf $SRCDIR/dist
  91. $PYTHON $SRCDIR/setup.py build -e "$PYTHON -E -s"
  92. $PYTHON $SRCDIR/setup.py install
  93. ############################################################################
  94. # Build Package
  95. ############################################################################
  96. echo -n -e "\033]0;Build: Package Salt\007"
  97. $PKGRESOURCES/build_pkg.sh $VERSION $PYVER $PKGDIR
  98. ############################################################################
  99. # Sign Package
  100. ############################################################################
  101. $PKGRESOURCES/build_sig.sh salt-$VERSION-py$PYVER-$CPUARCH.pkg salt-$VERSION-py$PYVER-$CPUARCH-signed.pkg