2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-08-19 18:10:17 +08:00
|
|
|
# This script is run in the discourse_test docker image
|
|
|
|
# Available environment variables:
|
2017-12-20 22:46:38 +08:00
|
|
|
# => NO_UPDATE disables updating the source code within the discourse_test docker image
|
|
|
|
# => COMMIT_HASH used by the discourse_test docker image to load a specific commit of discourse
|
|
|
|
# this can also be set to a branch, e.g. "origin/tests-passed"
|
|
|
|
# => RUN_SMOKE_TESTS executes the smoke tests instead of the regular tests from docker.rake
|
|
|
|
# See lib/tasks/docker.rake and lib/tasks/smoke_test.rake for more information
|
2017-08-19 18:10:17 +08:00
|
|
|
|
2019-05-29 19:28:02 +08:00
|
|
|
def log(message)
|
2019-05-29 20:06:32 +08:00
|
|
|
puts "[#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}] #{message}"
|
2019-05-29 18:06:43 +08:00
|
|
|
end
|
|
|
|
|
2014-06-20 07:26:25 +08:00
|
|
|
def run_or_fail(command)
|
2019-05-29 19:28:02 +08:00
|
|
|
log(command)
|
2014-06-20 07:26:25 +08:00
|
|
|
pid = Process.spawn(command)
|
|
|
|
Process.wait(pid)
|
|
|
|
exit 1 unless $?.exitstatus == 0
|
|
|
|
end
|
|
|
|
|
|
|
|
unless ENV["NO_UPDATE"]
|
2018-10-03 22:32:16 +08:00
|
|
|
run_or_fail("git reset --hard")
|
2020-04-21 09:48:58 +08:00
|
|
|
run_or_fail("git fetch")
|
2014-06-20 07:26:25 +08:00
|
|
|
|
2023-03-15 18:54:47 +08:00
|
|
|
checkout = ENV["COMMIT_HASH"] || "origin/tests-passed"
|
2020-04-21 09:48:58 +08:00
|
|
|
run_or_fail("LEFTHOOK=0 git checkout #{checkout}")
|
2018-09-12 23:43:21 +08:00
|
|
|
|
2014-06-20 07:26:25 +08:00
|
|
|
run_or_fail("bundle")
|
|
|
|
end
|
|
|
|
|
2019-05-29 18:06:43 +08:00
|
|
|
log("Running tests")
|
2021-06-03 02:29:47 +08:00
|
|
|
|
2017-12-20 22:46:38 +08:00
|
|
|
if ENV["RUN_SMOKE_TESTS"]
|
|
|
|
run_or_fail("bundle exec rake smoke:test")
|
|
|
|
else
|
|
|
|
run_or_fail("bundle exec rake docker:test")
|
|
|
|
end
|