Redirect to archive logs
This commit is contained in:
parent
edc9749bce
commit
31371686c9
|
@ -45,7 +45,7 @@ GIT
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
remote: git://github.com/travis-ci/travis-core.git
|
remote: git://github.com/travis-ci/travis-core.git
|
||||||
revision: be085ccf0aa58fba8d383d6ed72d22e47dae5836
|
revision: 2d766c54c2fea70dfc4d937c22413eee937f002b
|
||||||
specs:
|
specs:
|
||||||
travis-core (0.0.1)
|
travis-core (0.0.1)
|
||||||
actionmailer (~> 3.2.11)
|
actionmailer (~> 3.2.11)
|
||||||
|
|
|
@ -12,7 +12,20 @@ class Travis::Api::App
|
||||||
end
|
end
|
||||||
|
|
||||||
get '/:job_id/log' do
|
get '/:job_id/log' do
|
||||||
respond_with service(:find_artifact, params)
|
resource = service(:find_artifact, params).run
|
||||||
|
if !resource || resource.archived?
|
||||||
|
redirect archive_url("/jobs/#{params[:job_id]}/log.txt")
|
||||||
|
else
|
||||||
|
respond_with resource
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def archive_url(path)
|
||||||
|
"https://#{hostname('archive')}#{path}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def hostname(name)
|
||||||
|
"#{name}#{'-staging' if Travis.env == 'staging'}.#{Travis.config.host.split('.')[-2, 2].join('.')}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,9 +18,27 @@ describe 'Jobs' do
|
||||||
response.should deliver_json_for(job, version: 'v2')
|
response.should deliver_json_for(job, version: 'v2')
|
||||||
end
|
end
|
||||||
|
|
||||||
it '/jobs/:id' do
|
context 'GET /jobs/:job_id/log.txt' do
|
||||||
job.log.update_attributes!(content: 'the log')
|
it 'returns log for a job' do
|
||||||
response = get "/jobs/#{job.id}/log.txt", {}, headers
|
job.log.update_attributes!(content: 'the log')
|
||||||
response.should deliver_as_txt('the log', version: 'v2')
|
response = get "/jobs/#{job.id}/log.txt", {}, headers
|
||||||
|
response.should deliver_as_txt('the log', version: 'v2')
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when log is archived' do
|
||||||
|
it 'redirects to archive' do
|
||||||
|
job.log.update_attributes!(content: 'the log', archived_at: Time.now, archive_verified: true)
|
||||||
|
response = get "/jobs/#{job.id}/log.txt", {}, headers
|
||||||
|
response.should redirect_to("https://archive.travis-ci.org/jobs/#{job.id}/log.txt")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when log is missing' do
|
||||||
|
it 'redirects to archive' do
|
||||||
|
job.log.destroy
|
||||||
|
response = get "/jobs/#{job.id}/log.txt", {}, headers
|
||||||
|
response.should redirect_to("https://archive.travis-ci.org/jobs/#{job.id}/log.txt")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user