Revert "DEV: Remove the remaining ENV["TRAVIS"] usage (#10041)"

This reverts commit 78aff841e3.

See https://review.discourse.org/t/dev-remove-the-remaining-env-travis-usage-10041/12737/4?u=cvx
This commit is contained in:
Jarek Radosz 2020-06-16 19:36:40 +02:00
parent 78aff841e3
commit 669c940ec3
4 changed files with 85 additions and 56 deletions

View File

@ -58,9 +58,9 @@ desc 'Run all tests (JS and code in a standalone environment)'
task 'docker:test' do task 'docker:test' do
begin begin
@good = true @good = true
unless ENV['SKIP_LINT'] unless ENV['SKIP_LINT']
@good &&= run_or_fail("yarn install") @good &&= run_or_fail("yarn install")
puts "travis_fold:start:lint" if ENV["TRAVIS"]
puts "Running linters/prettyfiers" puts "Running linters/prettyfiers"
puts "eslint #{`yarn eslint -v`}" puts "eslint #{`yarn eslint -v`}"
puts "prettier #{`yarn prettier -v`}" puts "prettier #{`yarn prettier -v`}"
@ -93,9 +93,11 @@ task 'docker:test' do
@good &&= run_or_fail('yarn prettier --list-different "plugins/**/*.scss" "plugins/**/*.es6"') @good &&= run_or_fail('yarn prettier --list-different "plugins/**/*.scss" "plugins/**/*.es6"')
end end
end end
puts "travis_fold:end:lint" if ENV["TRAVIS"]
end end
unless ENV['SKIP_TESTS'] unless ENV['SKIP_TESTS']
puts "travis_fold:start:prepare_tests" if ENV["TRAVIS"]
puts "Cleaning up old test tmp data in tmp/test_data" puts "Cleaning up old test tmp data in tmp/test_data"
`rm -fr tmp/test_data && mkdir -p tmp/test_data/redis && mkdir tmp/test_data/pg` `rm -fr tmp/test_data && mkdir -p tmp/test_data/redis && mkdir tmp/test_data/pg`
@ -153,7 +155,11 @@ task 'docker:test' do
@good &&= run_or_fail("#{command_prefix}bundle exec rake parallel:migrate") @good &&= run_or_fail("#{command_prefix}bundle exec rake parallel:migrate")
end end
puts "travis_fold:end:prepare_tests" if ENV["TRAVIS"]
unless ENV["JS_ONLY"] unless ENV["JS_ONLY"]
puts "travis_fold:start:ruby_tests" if ENV["TRAVIS"]
if ENV['WARMUP_TMP_FOLDER'] if ENV['WARMUP_TMP_FOLDER']
run_or_fail('bundle exec rspec ./spec/requests/groups_controller_spec.rb') run_or_fail('bundle exec rspec ./spec/requests/groups_controller_spec.rb')
end end
@ -204,11 +210,13 @@ task 'docker:test' do
@good &&= run_or_fail("#{fail_fast} bundle exec rake plugin:spec") @good &&= run_or_fail("#{fail_fast} bundle exec rake plugin:spec")
end end
end end
puts "travis_fold:end:ruby_tests" if ENV["TRAVIS"]
end end
unless ENV["RUBY_ONLY"] unless ENV["RUBY_ONLY"]
js_timeout = ENV["JS_TIMEOUT"].presence || 900_000 # 15 minutes js_timeout = ENV["JS_TIMEOUT"].presence || 900_000 # 15 minutes
puts "travis_fold:start:js_tests" if ENV["TRAVIS"]
unless ENV["SKIP_CORE"] unless ENV["SKIP_CORE"]
@good &&= run_or_fail("bundle exec rake qunit:test['#{js_timeout}']") @good &&= run_or_fail("bundle exec rake qunit:test['#{js_timeout}']")
@good &&= run_or_fail("bundle exec rake qunit:test['#{js_timeout}','/wizard/qunit']") @good &&= run_or_fail("bundle exec rake qunit:test['#{js_timeout}','/wizard/qunit']")
@ -221,9 +229,12 @@ task 'docker:test' do
@good &&= run_or_fail("bundle exec rake plugin:qunit['*','#{js_timeout}']") @good &&= run_or_fail("bundle exec rake plugin:qunit['*','#{js_timeout}']")
end end
end end
puts "travis_fold:end:js_tests" if ENV["TRAVIS"]
end end
end end
ensure ensure
puts "travis_fold:start:terminating" if ENV["TRAVIS"]
puts "Terminating" puts "Terminating"
if ENV['PAUSE_ON_TERMINATE'] if ENV['PAUSE_ON_TERMINATE']
@ -235,7 +246,11 @@ task 'docker:test' do
Process.kill("TERM", @pg_pid) if @pg_pid Process.kill("TERM", @pg_pid) if @pg_pid
Process.wait @redis_pid if @redis_pid Process.wait @redis_pid if @redis_pid
Process.wait @pg_pid if @pg_pid Process.wait @pg_pid if @pg_pid
puts "travis_fold:end:terminating" if ENV["TRAVIS"]
end
if !@good
exit 1
end end
exit 1 unless @good
end end

View File

@ -8,6 +8,8 @@
# => RUN_SMOKE_TESTS executes the smoke tests instead of the regular tests from docker.rake # => 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 # See lib/tasks/docker.rake and lib/tasks/smoke_test.rake for more information
puts "travis_fold:end:starting_docker_container" if ENV["TRAVIS"]
def log(message) def log(message)
puts "[#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}] #{message}" puts "[#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}] #{message}"
end end
@ -20,17 +22,24 @@ def run_or_fail(command)
end end
unless ENV['NO_UPDATE'] unless ENV['NO_UPDATE']
puts "travis_fold:start:pulling_latest_discourse" if ENV["TRAVIS"]
run_or_fail("git reset --hard") run_or_fail("git reset --hard")
run_or_fail("git fetch") run_or_fail("git fetch")
checkout = ENV['COMMIT_HASH'] || "FETCH_HEAD" checkout = ENV['COMMIT_HASH'] || "FETCH_HEAD"
run_or_fail("LEFTHOOK=0 git checkout #{checkout}") run_or_fail("LEFTHOOK=0 git checkout #{checkout}")
puts "travis_fold:end:pulling_latest_discourse" if ENV["TRAVIS"]
puts "travis_fold:start:bundle" if ENV["TRAVIS"]
run_or_fail("bundle") run_or_fail("bundle")
puts "travis_fold:end:bundle" if ENV["TRAVIS"]
end end
log("Running tests") log("Running tests")
if ENV['RUN_SMOKE_TESTS'] if ENV['RUN_SMOKE_TESTS']
run_or_fail("bundle exec rake smoke:test") run_or_fail("bundle exec rake smoke:test")
else else

View File

@ -6,29 +6,31 @@ describe OptimizedImage do
let(:upload) { build(:upload) } let(:upload) { build(:upload) }
before { upload.id = 42 } before { upload.id = 42 }
describe '.crop' do unless ENV["TRAVIS"]
it 'should produce cropped images (requires ImageMagick 7)' do describe '.crop' do
tmp_path = "/tmp/cropped.png" it 'should produce cropped images (requires ImageMagick 7)' do
tmp_path = "/tmp/cropped.png"
begin begin
OptimizedImage.crop( OptimizedImage.crop(
"#{Rails.root}/spec/fixtures/images/logo.png", "#{Rails.root}/spec/fixtures/images/logo.png",
tmp_path, tmp_path,
5, 5,
5 5
) )
# we don't want to deal with something new here every time image magick # we don't want to deal with something new here every time image magick
# is upgraded or pngquant is upgraded, lets just test the basics ... # is upgraded or pngquant is upgraded, lets just test the basics ...
# cropped image should be less than 120 bytes # cropped image should be less than 120 bytes
cropped_size = File.size(tmp_path) cropped_size = File.size(tmp_path)
expect(cropped_size).to be < 120 expect(cropped_size).to be < 120
expect(cropped_size).to be > 50 expect(cropped_size).to be > 50
ensure ensure
File.delete(tmp_path) if File.exists?(tmp_path) File.delete(tmp_path) if File.exists?(tmp_path)
end
end end
end end

View File

@ -24,45 +24,48 @@ describe UserAvatarsController do
after do after do
FileUtils.rm(Discourse.store.path_for(upload)) FileUtils.rm(Discourse.store.path_for(upload))
end end
# travis is not good here, no image magick
if !ENV["TRAVIS"]
let :upload do
File.open(file_from_fixtures("cropped.png")) do |f|
UploadCreator.new(
f,
"test.png"
).create_for(-1)
end
end
let :upload do let :user do
File.open(file_from_fixtures("cropped.png")) do |f| user = Fabricate(:user)
UploadCreator.new( user.user_avatar.update_columns(custom_upload_id: upload.id)
f, user.update_columns(uploaded_avatar_id: upload.id)
"test.png" user
).create_for(-1) end
it 'automatically corrects bad avatar extensions' do
orig = Discourse.store.path_for(upload)
upload.update_columns(
original_filename: 'bob.jpg',
extension: 'jpg',
url: upload.url + '.jpg'
)
# at this point file is messed up
FileUtils.mv(orig, Discourse.store.path_for(upload))
SiteSetting.avatar_sizes = "50"
get "/user_avatar/default/#{user.username}/50/#{upload.id}.png"
expect(OptimizedImage.where(upload_id: upload.id).count).to eq(1)
expect(response.status).to eq(200)
upload.reload
expect(upload.extension).to eq('png')
end end
end end
let :user do
user = Fabricate(:user)
user.user_avatar.update_columns(custom_upload_id: upload.id)
user.update_columns(uploaded_avatar_id: upload.id)
user
end
it 'automatically corrects bad avatar extensions' do
orig = Discourse.store.path_for(upload)
upload.update_columns(
original_filename: 'bob.jpg',
extension: 'jpg',
url: upload.url + '.jpg'
)
# at this point file is messed up
FileUtils.mv(orig, Discourse.store.path_for(upload))
SiteSetting.avatar_sizes = "50"
get "/user_avatar/default/#{user.username}/50/#{upload.id}.png"
expect(OptimizedImage.where(upload_id: upload.id).count).to eq(1)
expect(response.status).to eq(200)
upload.reload
expect(upload.extension).to eq('png')
end
end end
it 'handles non local content correctly' do it 'handles non local content correctly' do