passenger 5.3.5 → 5.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +13 -0
  3. data/README.md +2 -1
  4. data/Rakefile +0 -5
  5. data/build/agent.rb +2 -1
  6. data/build/cxx_tests.rb +18 -20
  7. data/build/integration_tests.rb +6 -2
  8. data/build/support/cxx_dependency_map.rb +2019 -1966
  9. data/dev/colorize-logs +272 -0
  10. data/src/agent/Core/AdminPanelConnector.h +3 -3
  11. data/src/agent/Core/ApiServer.h +4 -4
  12. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
  13. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +2 -2
  14. data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -5
  15. data/src/agent/Core/ApplicationPool/Pool.h +4 -4
  16. data/src/agent/Core/ApplicationPool/Process.h +10 -15
  17. data/src/agent/Core/ApplicationPool/Socket.h +2 -2
  18. data/src/agent/Core/ApplicationPool/TestSession.h +3 -3
  19. data/src/agent/Core/Config.h +4 -2
  20. data/src/agent/Core/Controller.h +4 -4
  21. data/src/agent/Core/Controller/Config.h +1 -1
  22. data/src/agent/Core/Controller/SendRequest.cpp +2 -2
  23. data/src/agent/Core/Controller/TurboCaching.h +2 -2
  24. data/src/agent/Core/CoreMain.cpp +2 -2
  25. data/src/agent/Core/OptionParser.h +2 -2
  26. data/src/agent/Core/ResponseCache.h +3 -3
  27. data/src/agent/Core/SecurityUpdateChecker.h +2 -2
  28. data/src/agent/Core/SpawningKit/Config.h +2 -1
  29. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
  30. data/src/agent/Core/SpawningKit/Context.h +1 -1
  31. data/src/agent/Core/SpawningKit/DirectSpawner.h +3 -3
  32. data/src/agent/Core/SpawningKit/DummySpawner.h +3 -3
  33. data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
  34. data/src/agent/Core/SpawningKit/Exceptions.h +2 -2
  35. data/src/agent/Core/SpawningKit/Factory.h +1 -1
  36. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
  37. data/src/agent/Core/SpawningKit/Handshake/Perform.h +13 -2
  38. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -3
  39. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
  40. data/src/agent/Core/SpawningKit/Journey.h +4 -5
  41. data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
  42. data/src/agent/Core/SpawningKit/Result.h +20 -8
  43. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
  44. data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -6
  45. data/src/agent/Core/SpawningKit/Spawner.h +2 -2
  46. data/src/agent/Core/TelemetryCollector.h +13 -7
  47. data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
  48. data/src/agent/README.md +1 -1
  49. data/src/agent/Shared/ApiAccountUtils.h +1 -1
  50. data/src/agent/Shared/ApiServerUtils.h +3 -3
  51. data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
  52. data/src/agent/Shared/Fundamentals/Initialization.cpp +4 -4
  53. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
  54. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +4 -3
  55. data/src/agent/Watchdog/ApiServer.h +3 -3
  56. data/src/agent/Watchdog/Config.h +3 -2
  57. data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
  58. data/src/agent/Watchdog/WatchdogMain.cpp +93 -27
  59. data/src/apache2_module/Config.cpp +14 -14
  60. data/src/apache2_module/Config.h +8 -16
  61. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +505 -491
  62. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +39 -17
  63. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +24 -1
  64. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +31 -1
  65. data/src/{cxx_supportlib/Utils/MemoryBarrier.h → apache2_module/ConfigGeneral/Common.h} +17 -25
  66. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +12 -1
  67. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +16 -1
  68. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +19 -5
  69. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +26 -9
  70. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +6 -1
  71. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +10 -1
  72. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -1
  73. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +11 -1
  74. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +23 -1
  75. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +34 -1
  76. data/src/apache2_module/Hooks.cpp +3 -3
  77. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -1
  78. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +36 -1
  79. data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.cpp +2 -2
  80. data/src/cxx_supportlib/{Utils → Algorithms}/Hasher.h +4 -4
  81. data/src/cxx_supportlib/AppTypeDetector/Detector.h +1 -1
  82. data/src/cxx_supportlib/ConfigKit/Schema.h +2 -2
  83. data/src/cxx_supportlib/ConfigKit/Store.h +1 -1
  84. data/src/cxx_supportlib/Constants.h +1 -1
  85. data/src/cxx_supportlib/{Utils → DataStructures}/HashMap.h +4 -4
  86. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +5 -5
  87. data/src/cxx_supportlib/DataStructures/LString.h +3 -3
  88. data/src/cxx_supportlib/{Utils → DataStructures}/StringMap.h +36 -36
  89. data/src/cxx_supportlib/FileTools/FileManip.cpp +1 -1
  90. data/src/cxx_supportlib/FileTools/PathManip.cpp +2 -2
  91. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
  92. data/src/cxx_supportlib/Hooks.h +2 -2
  93. data/src/cxx_supportlib/{Utils → IOTools}/BufferedIO.h +5 -5
  94. data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.cpp +2 -2
  95. data/src/cxx_supportlib/{Utils → IOTools}/IOUtils.h +3 -3
  96. data/src/cxx_supportlib/{Utils → IOTools}/MessageIO.h +7 -7
  97. data/src/cxx_supportlib/{MessageReadersWriters.h → IOTools/MessageSerialization.h} +5 -5
  98. data/src/cxx_supportlib/InstanceDirectory.h +4 -4
  99. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  100. data/src/cxx_supportlib/{Utils → JsonTools}/JsonUtils.h +5 -5
  101. data/src/cxx_supportlib/LoggingKit/Context.h +2 -2
  102. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +3 -3
  103. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +2 -2
  104. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +5 -5
  105. data/src/cxx_supportlib/ProcessManagement/Utils.h +10 -0
  106. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  107. data/src/cxx_supportlib/{Crypto.cpp → SecurityKit/Crypto.cpp} +4 -4
  108. data/src/cxx_supportlib/{Crypto.h → SecurityKit/Crypto.h} +4 -4
  109. data/src/cxx_supportlib/{Utils → SecurityKit}/MemZeroGuard.h +0 -0
  110. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +2 -2
  111. data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
  112. data/src/cxx_supportlib/ServerKit/Context.h +2 -2
  113. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
  114. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +3 -3
  115. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +2 -2
  116. data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -10
  117. data/src/cxx_supportlib/ServerKit/Server.h +3 -3
  118. data/src/cxx_supportlib/{Utils → StrIntTools}/DateParsing.h +5 -5
  119. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.cpp +3 -3
  120. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtils.h +0 -0
  121. data/src/cxx_supportlib/{Utils → StrIntTools}/StrIntUtilsNoStrictAliasing.cpp +2 -2
  122. data/src/cxx_supportlib/{Utils → StrIntTools}/StringScanning.h +5 -5
  123. data/src/cxx_supportlib/{Utils → StrIntTools}/Template.h +30 -5
  124. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +34 -0
  125. data/src/cxx_supportlib/{Utils → SystemTools}/ProcessMetricsCollector.h +6 -6
  126. data/src/cxx_supportlib/{Utils → SystemTools}/SystemMetricsCollector.h +3 -3
  127. data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.cpp +1 -1
  128. data/src/cxx_supportlib/{Utils → SystemTools}/SystemTime.h +0 -0
  129. data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
  130. data/src/cxx_supportlib/Utils.cpp +2 -2
  131. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +3 -3
  132. data/src/cxx_supportlib/Utils/Curl.h +2 -2
  133. data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
  134. data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
  135. data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -2
  136. data/src/cxx_supportlib/Utils/Timer.h +2 -2
  137. data/src/cxx_supportlib/Utils/VariantMap.h +3 -3
  138. data/src/cxx_supportlib/WatchdogLauncher.h +3 -3
  139. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +1 -1
  140. data/src/cxx_supportlib/WrapperRegistry/Registry.h +1 -1
  141. data/src/cxx_supportlib/vendor-modified/psg_sysqueue.h +3 -0
  142. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  143. data/src/ruby_supportlib/phusion_passenger/common_library.rb +11 -11
  144. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +4 -4
  145. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  146. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
  147. data/src/ruby_supportlib/phusion_passenger/packaging.rb +20 -19
  148. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +22 -4
  149. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +33 -13
  150. data/src/schema_printer/SchemaPrinterMain.cpp +2 -0
  151. metadata +28 -86
  152. data/.editorconfig +0 -134
  153. data/CODE_OF_CONDUCT.md +0 -52
  154. data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +0 -48
  155. data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +0 -33
  156. data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +0 -25
  157. data/dev/ci/README.md +0 -134
  158. data/dev/ci/lib/functions.sh +0 -129
  159. data/dev/ci/lib/set-container-envvars.sh +0 -53
  160. data/dev/ci/lib/setup-container.sh +0 -46
  161. data/dev/ci/run-tests-natively +0 -24
  162. data/dev/ci/run-tests-with-docker +0 -42
  163. data/dev/ci/scripts/debug-console-wrapper.sh +0 -29
  164. data/dev/ci/scripts/docker-entrypoint-stage2.sh +0 -17
  165. data/dev/ci/scripts/docker-entrypoint.sh +0 -17
  166. data/dev/ci/scripts/inituidgid +0 -17
  167. data/dev/ci/scripts/run-tests-natively-stage2.sh +0 -17
  168. data/dev/ci/scripts/setup-host-natively.sh +0 -11
  169. data/dev/ci/setup-host +0 -56
  170. data/dev/ci/tests/apache2/run +0 -6
  171. data/dev/ci/tests/apache2/setup +0 -4
  172. data/dev/ci/tests/binaries/Jenkinsfile +0 -105
  173. data/dev/ci/tests/binaries/build-linux +0 -38
  174. data/dev/ci/tests/binaries/build-macos +0 -40
  175. data/dev/ci/tests/binaries/prepare-macos +0 -38
  176. data/dev/ci/tests/binaries/test-linux +0 -45
  177. data/dev/ci/tests/binaries/test-macos +0 -38
  178. data/dev/ci/tests/cxx/run +0 -9
  179. data/dev/ci/tests/cxx/setup +0 -4
  180. data/dev/ci/tests/debian/Jenkinsfile +0 -89
  181. data/dev/ci/tests/debian/run +0 -60
  182. data/dev/ci/tests/nginx-dynamic/run +0 -20
  183. data/dev/ci/tests/nginx-dynamic/setup +0 -4
  184. data/dev/ci/tests/nginx/run +0 -5
  185. data/dev/ci/tests/nginx/setup +0 -4
  186. data/dev/ci/tests/nodejs/run +0 -4
  187. data/dev/ci/tests/nodejs/setup +0 -4
  188. data/dev/ci/tests/rpm/Jenkinsfile +0 -68
  189. data/dev/ci/tests/rpm/run +0 -63
  190. data/dev/ci/tests/ruby/run +0 -4
  191. data/dev/ci/tests/ruby/setup +0 -4
  192. data/dev/ci/tests/source-packaging/run +0 -4
  193. data/dev/ci/tests/source-packaging/setup +0 -4
  194. data/dev/ci/tests/standalone/run +0 -4
  195. data/dev/ci/tests/standalone/setup +0 -4
  196. data/dev/configkit-schemas/index.json +0 -1850
  197. data/dev/configkit-schemas/update_schema_inline_comments.rb +0 -118
  198. data/dev/rack.test/config.ru +0 -5
  199. data/dev/rack.test/public/asset.txt +0 -1
  200. data/dev/vagrant/apache_default_site.conf +0 -35
  201. data/dev/vagrant/apache_passenger.conf +0 -5
  202. data/dev/vagrant/apache_passenger.load +0 -1
  203. data/dev/vagrant/apache_ports.conf +0 -24
  204. data/dev/vagrant/apache_rack_test.conf +0 -9
  205. data/dev/vagrant/bashrc +0 -23
  206. data/dev/vagrant/nginx.conf +0 -39
  207. data/dev/vagrant/nginx_rakefile +0 -33
  208. data/dev/vagrant/nginx_start +0 -32
  209. data/dev/vagrant/provision.sh +0 -117
  210. data/dev/vagrant/sudoers.conf +0 -5
  211. data/resources/templates/error_renderer/.editorconfig +0 -19
@@ -1,42 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -eo pipefail
3
-
4
- SELFDIR=$(dirname "$0")
5
- SELFDIR=$(cd "$SELFDIR" && pwd)
6
- PASSENGER_ROOT=$(cd "$SELFDIR/../.." && pwd)
7
- # shellcheck source=lib/functions.sh
8
- source "$SELFDIR/lib/functions.sh"
9
- cd "$PASSENGER_ROOT"
10
-
11
- autodetect_environment
12
- sanity_check_environment
13
- echo
14
-
15
- if [[ "$OS" != linux ]]; then
16
- echo "ERROR: this script can only be run on Linux." >&2
17
- exit 1
18
- fi
19
-
20
- if tty -s; then
21
- TTY_ARGS='-t -i'
22
- else
23
- TTY_ARGS=
24
- fi
25
-
26
- run_exec docker run --rm $TTY_ARGS \
27
- -v "$PASSENGER_ROOT:/passenger" \
28
- -v "$CACHE_DIR:/passenger/.ci_cache" \
29
- -e "APP_UID=$(id -u)" \
30
- -e "APP_GID=$(id -g)" \
31
- -e "DEBUG_CONSOLE=$DEBUG_CONSOLE" \
32
- -e "TEST_RUBY_VERSION=$TEST_RUBY_VERSION" \
33
- -e "COMPILE_CONCURRENCY=$COMPILE_CONCURRENCY" \
34
- -e "SUDO=$SUDO" \
35
- phusion/passenger-ci-docker-env:1.0.1 \
36
- /sbin/my_init --skip-runit --skip-startup-files --quiet -- \
37
- /passenger/dev/ci/scripts/inituidgid \
38
- /sbin/setuser app \
39
- /bin/bash -lc 'cd /passenger && exec "$@"' \
40
- ./dev/ci/scripts/docker-entrypoint.sh \
41
- ./dev/ci/scripts/docker-entrypoint.sh \
42
- "$@"
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -eo pipefail
3
-
4
- SELFDIR=$(dirname "$0")
5
- SELFDIR=$(cd "$SELFDIR" && pwd)
6
- PASSENGER_ROOT=$(cd "$SELFDIR/../../.." && pwd)
7
- # shellcheck source=lib/functions.sh
8
- source "$SELFDIR/../lib/functions.sh"
9
-
10
- if ! "$@"; then
11
- echo
12
- echo "-----------------------------"
13
- echo
14
- echo "*** An error occurred ***"
15
-
16
- if [[ "$DEBUG_CONSOLE" == 1 ]]; then
17
- echo
18
- echo "*** DEBUG_CONSOLE set to 1, so launching a debugging console..."
19
- echo
20
- # shellcheck source=../lib/set-container-envvars.sh
21
- set +e
22
- source "$PASSENGER_ROOT/dev/ci/lib/set-container-envvars.sh"
23
- header2 "Launching bash"
24
- bash -l
25
- else
26
- echo "If you want to debug this, run '$CI_COMMAND' with the environment variable DEBUG_CONSOLE=1."
27
- fi
28
- exit 1
29
- fi
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -eo pipefail
3
-
4
- SELFDIR=/passenger/dev/ci/scripts
5
- PASSENGER_ROOT=/passenger
6
- # shellcheck source=../lib/functions.sh
7
- source "$SELFDIR/../lib/functions.sh"
8
-
9
- # shellcheck source=../lib/setup-container.sh
10
- source "$PASSENGER_ROOT/dev/ci/lib/setup-container.sh"
11
- add_bundler_path_to_gem_path
12
- echo
13
- echo
14
-
15
- header "Running test suite: $1"
16
- # shellcheck source=/dev/null
17
- source "$PASSENGER_ROOT/dev/ci/tests/$1/run"
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -eo pipefail
3
-
4
- SELFDIR=/passenger/dev/ci/scripts
5
- PASSENGER_ROOT=/passenger
6
- # shellcheck source=../lib/functions.sh
7
- source "$SELFDIR/../lib/functions.sh"
8
- cd "$PASSENGER_ROOT"
9
-
10
- header "Inside Docker container"
11
-
12
- autodetect_environment
13
- echo
14
-
15
- export CI_COMMAND="./dev/ci/run-tests-with-docker $*"
16
- exec "$PASSENGER_ROOT/dev/ci/scripts/debug-console-wrapper.sh" \
17
- "$PASSENGER_ROOT/dev/ci/scripts/docker-entrypoint-stage2.sh" "$@"
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -e
3
-
4
- chown -R "$APP_UID:$APP_GID" /home/app
5
- groupmod -g "$APP_GID" app
6
- usermod -u "$APP_UID" -g "$APP_GID" app
7
-
8
- # There's something strange with either Docker or the kernel, so that
9
- # the 'app' user cannot access its home directory even after a proper
10
- # chown/chmod. We work around it like this.
11
- mv /home/app /home/app2
12
- cp -dpR /home/app2 /home/app
13
- rm -rf /home/app2
14
-
15
- if [[ $# -gt 0 ]]; then
16
- exec "$@"
17
- fi
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -eo pipefail
3
-
4
- SELFDIR=$(dirname "$0")
5
- SELFDIR=$(cd "$SELFDIR" && pwd)
6
- PASSENGER_ROOT=$(cd "$SELFDIR/../../.." && pwd)
7
- # shellcheck source=lib/functions.sh
8
- source "$SELFDIR/../lib/functions.sh"
9
-
10
- # shellcheck source=lib/set-container-envvars.sh
11
- source "$SELFDIR/../lib/set-container-envvars.sh"
12
- add_bundler_path_to_gem_path
13
- echo
14
-
15
- header "Running test suite: $1"
16
- # shellcheck source=/dev/null
17
- source "$PASSENGER_ROOT/dev/ci/tests/$1/run"
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -eo pipefail
3
-
4
- SELFDIR=$(dirname "$0")
5
- SELFDIR=$(cd "$SELFDIR" && pwd)
6
- PASSENGER_ROOT=$(cd "$SELFDIR/../../.." && pwd)
7
- # shellcheck source=../lib/functions.sh
8
- source "$SELFDIR/../lib/functions.sh"
9
-
10
- # shellcheck source=../lib/setup-container.sh
11
- source "$PASSENGER_ROOT/dev/ci/lib/setup-container.sh"
@@ -1,56 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -eo pipefail
3
-
4
- SELFDIR=$(dirname "$0")
5
- SELFDIR=$(cd "$SELFDIR" && pwd)
6
- PASSENGER_ROOT=$(cd "$SELFDIR/../.." && pwd)
7
- # shellcheck source=lib/functions.sh
8
- source "$SELFDIR/lib/functions.sh"
9
- cd "$PASSENGER_ROOT"
10
-
11
- header "Setting up stuff on the host"
12
-
13
- autodetect_environment
14
- sanity_check_environment
15
- echo
16
-
17
- if [[ "$OS" = macos && "$1" = "" ]]; then
18
- echo "Usage: ./dev/ci/setup-host <TEST NAME>" >&2
19
- exit 1
20
- fi
21
-
22
- if $IN_JENKINS; then
23
- # Relax permissions. Necessary for unit tests which test permissions.
24
- header2 "Relaxing file permissions"
25
- echo "+ Setting umask"
26
- umask u=rwx,g=rx,o=rx
27
- run chmod g+rx,o+rx .
28
- echo "+ chmodding files"
29
- find ./* -type f -print0 | xargs -0 -n 512 chmod g+r,o+r
30
- echo "+ chmodding directories"
31
- find ./* -type d -print0 | xargs -0 -n 512 chmod g+rx,o+rx
32
-
33
- # Create this file now because otherwise it would be owned by root,
34
- # which Jenkins cannot remove.
35
- run touch test/test.log
36
-
37
- echo
38
- fi
39
-
40
- header2 "Creating cache directories"
41
- run mkdir -p "$CACHE_DIR"
42
- run mkdir -p "$CACHE_DIR/bundle"
43
- run mkdir -p "$CACHE_DIR/ccache"
44
- run mkdir -p "$CACHE_DIR/yarn"
45
- echo
46
-
47
- # Directory must exist so that Jenkinsfile can run archiveArtefacts().
48
- header2 "Creating buildout directory"
49
- run mkdir -p buildout buildout/testlogs
50
- echo
51
-
52
- if [[ "$OS" = macos ]]; then
53
- export CI_COMMAND="./dev/ci/setup-host $*"
54
- exec "$PASSENGER_ROOT/dev/ci/scripts/debug-console-wrapper.sh" \
55
- "$PASSENGER_ROOT/dev/ci/scripts/setup-host-natively.sh" "$@"
56
- fi
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -e
3
-
4
- run ./bin/passenger-install-apache2-module --auto
5
- run rvmsudo ./bin/passenger-install-apache2-module --auto --no-compile
6
- run bundle exec drake "-j$COMPILE_CONCURRENCY" test:integration:apache2
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -e
3
-
4
- retry_run 3 rake test:install_deps BASE_DEPS=yes NODE_MODULES=yes
@@ -1,105 +0,0 @@
1
- JOB_NAME_AS_ID = null
2
-
3
- def setupLinuxTest(enablerFlag, architecture, block) {
4
- if (enablerFlag) {
5
- node('linux') {
6
- withEnv([
7
- "OUTPUT_DIR=${env.WORKSPACE}/output-linux-${architecture}",
8
- "CACHE_DIR=${env.JENKINS_HOME}/cache/${env.JOB_NAME_AS_ID}/linux-${architecture}/executor-${env.EXECUTOR_NUMBER}",
9
- "ARCHITECTURE=${architecture}"
10
- ], block)
11
- }
12
- } else {
13
- echo 'Test skipped.'
14
- }
15
- }
16
-
17
- def setupMacosTest(enablerFlag, block) {
18
- if (enablerFlag) {
19
- node('macos') {
20
- withEnv([
21
- "OUTPUT_DIR=${env.WORKSPACE}/output-macos",
22
- "CACHE_DIR=${env.JENKINS_HOME}/cache/${env.JOB_NAME_AS_ID}/macos/executor-${env.EXECUTOR_NUMBER}",
23
- "RUNTIME_DIR=${env.JENKINS_HOME}/cache/${env.JOB_NAME_AS_ID}/macos/executor-${env.EXECUTOR_NUMBER}/runtime"
24
- ], block)
25
- }
26
- } else {
27
- echo 'Test skipped.'
28
- }
29
- }
30
-
31
- pipeline {
32
- agent { node { label 'master-pipeline' } }
33
-
34
- options {
35
- buildDiscarder(logRotator(numToKeepStr: '10'))
36
- timeout(time: 45, unit: 'MINUTES')
37
- disableConcurrentBuilds()
38
- timestamps()
39
- ansiColor('xterm')
40
- }
41
-
42
- parameters {
43
- booleanParam(name: 'LINUX_X86', defaultValue: true, description: 'Linux x86 binaries')
44
- booleanParam(name: 'LINUX_X86_64', defaultValue: true, description: 'Linux x86_64 binaries')
45
- booleanParam(name: 'MACOS', defaultValue: true, description: 'macOS binaries')
46
- }
47
-
48
- stages {
49
- stage('Initialize') {
50
- steps {
51
- script {
52
- // The syntaxes 'env.FOO = FOO = ...' and 'FOO = env.FOO = ...'
53
- // do not work for some reason; one of them will become null.
54
- // So we split the assignments in two separate statements.
55
-
56
- env.JOB_NAME_AS_ID = env.JOB_NAME.replace(' ', '-')
57
- JOB_NAME_AS_ID = env.JOB_NAME_AS_ID
58
-
59
- if (env.JOB_NAME.indexOf('Enterprise') != -1) {
60
- env.ENTERPRISE = '1'
61
- } else {
62
- env.ENTERPRISE = '0'
63
- }
64
-
65
- // For debugging purposes
66
- sh 'env | sort'
67
- }
68
- }
69
- }
70
-
71
- stage('Build') {
72
- steps {
73
- script {
74
- parallel(
75
- 'Linux x86': {
76
- setupLinuxTest(params.LINUX_X86, 'x86') {
77
- checkout scm
78
- sh './dev/ci/tests/binaries/build-linux'
79
- archiveArtifacts artifacts: 'output-linux-x86/**/*'
80
- sh './dev/ci/tests/binaries/test-linux'
81
- }
82
- },
83
- 'Linux x86_64': {
84
- setupLinuxTest(params.LINUX_X86_64, 'x86_64') {
85
- checkout scm
86
- sh './dev/ci/tests/binaries/build-linux'
87
- archiveArtifacts artifacts: 'output-linux-x86_64/**/*'
88
- sh './dev/ci/tests/binaries/test-linux'
89
- }
90
- },
91
- 'macOS': {
92
- setupMacosTest(params.MACOS) {
93
- checkout scm
94
- sh './dev/ci/tests/binaries/prepare-macos'
95
- sh './dev/ci/tests/binaries/build-macos'
96
- archiveArtifacts artifacts: 'output-macos/**/*'
97
- sh './dev/ci/tests/binaries/test-macos'
98
- }
99
- }
100
- )
101
- }
102
- }
103
- }
104
- }
105
- }
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env bash
2
- # This script is from the "Passenger binaries test" Jenkins job. It builds
3
- # generic Linux binaries for a specific architecture.
4
- #
5
- # Required environment variables:
6
- #
7
- # WORKSPACE
8
- # ARCHITECTURE
9
- #
10
- # Optional environment variables:
11
- #
12
- # PASSENGER_ROOT (defaults to $WORKSPACE)
13
- # OUTPUT_DIR (defaults to $WORKSPACE/output)
14
- # CACHE_DIR (defaults to $WORKSPACE/cache)
15
-
16
- set -e
17
- SELFDIR=$(dirname "$0")
18
- cd "$SELFDIR/../../../../packaging/binaries"
19
- # shellcheck source=../../../../packaging/binaries/shared/lib/library.sh
20
- source "./shared/lib/library.sh"
21
-
22
- require_envvar WORKSPACE "$WORKSPACE"
23
- require_envvar ARCHITECTURE "$ARCHITECTURE"
24
-
25
- PASSENGER_ROOT="${PASSENGER_ROOT:-$WORKSPACE}"
26
- OUTPUT_DIR="${OUTPUT_DIR:-$WORKSPACE/output}"
27
- CACHE_DIR="${CACHE_DIR:-$WORKSPACE/cache}"
28
-
29
- run mkdir -p "$OUTPUT_DIR"
30
- run mkdir -p "$CACHE_DIR"
31
-
32
- run ./linux/build \
33
- -p "$PASSENGER_ROOT" \
34
- -c "$CACHE_DIR" \
35
- -o "$OUTPUT_DIR" \
36
- -a "$ARCHITECTURE" \
37
- -j 1 \
38
- passenger nginx
@@ -1,40 +0,0 @@
1
- #!/usr/bin/env bash
2
- # This script is from the "Passenger binaries test" Jenkins job. It builds
3
- # generic macOS binaries.
4
- #
5
- # Required environment variables:
6
- #
7
- # WORKSPACE
8
- #
9
- # Optional environment variables:
10
- #
11
- # PASSENGER_ROOT (defaults to $WORKSPACE)
12
- # OUTPUT_DIR (defaults to $WORKSPACE/output)
13
- # CACHE_DIR (defaults to $WORKSPACE/cache)
14
- # RUNTIME_DIR (defaults to $CACHE_DIR/runtime)
15
-
16
- set -e
17
- SELFDIR=$(dirname "$0")
18
- cd "$SELFDIR/../../../../packaging/binaries"
19
- # shellcheck source=../../../../packaging/binaries/shared/lib/library.sh
20
- source "./shared/lib/library.sh"
21
-
22
- require_envvar WORKSPACE "$WORKSPACE"
23
-
24
- PASSENGER_ROOT="${PASSENGER_ROOT:-$WORKSPACE}"
25
- OUTPUT_DIR="${OUTPUT_DIR:-$WORKSPACE/output}"
26
- CACHE_DIR="${CACHE_DIR:-$WORKSPACE/cache}"
27
- RUNTIME_DIR="${RUNTIME_DIR:-$CACHE_DIR/runtime}"
28
-
29
- RUNTIME_VERSION=$(cat shared/definitions/macos_runtime_version)
30
-
31
- run mkdir -p "$OUTPUT_DIR"
32
- run mkdir -p "$CACHE_DIR"
33
-
34
- run ./macos/build \
35
- -p "$PASSENGER_ROOT" \
36
- -r "$RUNTIME_DIR/$RUNTIME_VERSION" \
37
- -c "$CACHE_DIR" \
38
- -o "$OUTPUT_DIR" \
39
- -j 1 \
40
- passenger nginx
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env bash
2
- # This script is from the "Passenger binaries test" Jenkins job. It set ups
3
- # a runtime directory for the "build-macos" script.
4
- #
5
- # Required environment variables:
6
- #
7
- # WORKSPACE
8
- #
9
- # Optional environment variables:
10
- #
11
- # PASSENGER_ROOT (defaults to $WORKSPACE)
12
- # OUTPUT_DIR (defaults to $WORKSPACE/output)
13
- # CACHE_DIR (defaults to $WORKSPACE/cache)
14
- # RUNTIME_DIR (defaults to $CACHE_DIR/runtime)
15
-
16
- set -e
17
- SELFDIR=$(dirname "$0")
18
- cd "$SELFDIR/../../../../packaging/binaries"
19
- # shellcheck source=../../../../packaging/binaries/shared/lib/library.sh
20
- source "./shared/lib/library.sh"
21
-
22
- require_envvar WORKSPACE "$WORKSPACE"
23
-
24
- PASSENGER_ROOT="${PASSENGER_ROOT:-$WORKSPACE}"
25
- OUTPUT_DIR="${OUTPUT_DIR:-$WORKSPACE/output}"
26
- CACHE_DIR="${CACHE_DIR:-$WORKSPACE/cache}"
27
- RUNTIME_DIR="${RUNTIME_DIR:-$CACHE_DIR/runtime}"
28
-
29
- RUNTIME_VERSION=$(cat shared/definitions/macos_runtime_version)
30
-
31
- run mkdir -p "$OUTPUT_DIR"
32
- run mkdir -p "$CACHE_DIR"
33
- run mkdir -p "$RUNTIME_DIR/$RUNTIME_VERSION"
34
-
35
- run ./macos/setup-runtime \
36
- -c "$CACHE_DIR" \
37
- -o "$RUNTIME_DIR/$RUNTIME_VERSION" \
38
- -j 1