Skip to content
Snippets Groups Projects
Commit 6c55a9d8 authored by Jacob Vosmaer (GitLab)'s avatar Jacob Vosmaer (GitLab)
Browse files

Remove support for legacy tar.gz pages artifacts

parent 4131c39a
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -74,25 +74,13 @@ module Projects
end
 
def extract_archive!(temp_path)
if artifacts.ends_with?('.tar.gz') || artifacts.ends_with?('.tgz')
extract_tar_archive!(temp_path)
elsif artifacts.ends_with?('.zip')
if artifacts.ends_with?('.zip')
extract_zip_archive!(temp_path)
else
raise InvaildStateError, 'unsupported artifacts format'
end
end
 
def extract_tar_archive!(temp_path)
build.artifacts_file.use_file do |artifacts_path|
results = Open3.pipeline(%W(gunzip -c #{artifacts_path}),
%W(dd bs=#{BLOCK_SIZE} count=#{blocks}),
%W(tar -x -C #{temp_path} #{SITE_PATH}),
err: '/dev/null')
raise FailedToExtractError, 'pages failed to extract' unless results.compact.all?(&:success?)
end
end
def extract_zip_archive!(temp_path)
raise InvaildStateError, 'missing artifacts metadata' unless build.artifacts_metadata?
 
Loading
Loading
Loading
Loading
@@ -21,76 +21,72 @@ describe Projects::UpdatePagesService do
end
 
context 'legacy artifacts' do
%w(tar.gz zip).each do |format|
let(:extension) { format }
let(:extension) { 'zip' }
 
context "for valid #{format}" do
before do
build.update_attributes(legacy_artifacts_file: file)
build.update_attributes(legacy_artifacts_metadata: metadata)
end
describe 'pages artifacts' do
context 'with expiry date' do
before do
build.update_attributes(legacy_artifacts_file: file)
build.update_attributes(legacy_artifacts_metadata: metadata)
build.artifacts_expire_in = "2 days"
build.save!
end
 
describe 'pages artifacts' do
context 'with expiry date' do
before do
build.artifacts_expire_in = "2 days"
build.save!
end
it "doesn't delete artifacts" do
expect(execute).to eq(:success)
expect(build.reload.artifacts?).to eq(true)
end
end
context 'without expiry date' do
it "does delete artifacts" do
expect(execute).to eq(:success)
it "doesn't delete artifacts" do
expect(execute).to eq(:success)
 
expect(build.reload.artifacts?).to eq(false)
end
end
expect(build.reload.artifacts?).to eq(true)
end
end
 
it 'succeeds' do
expect(project.pages_deployed?).to be_falsey
context 'without expiry date' do
it "does delete artifacts" do
expect(execute).to eq(:success)
expect(project.pages_deployed?).to be_truthy
 
# Check that all expected files are extracted
%w[index.html zero .hidden/file].each do |filename|
expect(File.exist?(File.join(project.public_pages_path, filename))).to be_truthy
end
expect(build.reload.artifacts?).to eq(false)
end
end
end
 
it 'limits pages size' do
stub_application_setting(max_pages_size: 1)
expect(execute).not_to eq(:success)
end
it 'succeeds' do
expect(project.pages_deployed?).to be_falsey
expect(execute).to eq(:success)
expect(project.pages_deployed?).to be_truthy
 
it 'removes pages after destroy' do
expect(PagesWorker).to receive(:perform_in)
expect(project.pages_deployed?).to be_falsey
expect(execute).to eq(:success)
expect(project.pages_deployed?).to be_truthy
project.destroy
expect(project.pages_deployed?).to be_falsey
end
# Check that all expected files are extracted
%w[index.html zero .hidden/file].each do |filename|
expect(File.exist?(File.join(project.public_pages_path, filename))).to be_truthy
end
end
 
it 'fails if sha on branch is not latest' do
build.update_attributes(ref: 'feature')
it 'limits pages size' do
stub_application_setting(max_pages_size: 1)
expect(execute).not_to eq(:success)
end
 
expect(execute).not_to eq(:success)
end
it 'removes pages after destroy' do
expect(PagesWorker).to receive(:perform_in)
expect(project.pages_deployed?).to be_falsey
expect(execute).to eq(:success)
expect(project.pages_deployed?).to be_truthy
project.destroy
expect(project.pages_deployed?).to be_falsey
end
 
it 'fails for empty file fails' do
build.update_attributes(legacy_artifacts_file: empty_file)
it 'fails if sha on branch is not latest' do
build.update_attributes(ref: 'feature')
 
expect { execute }
.to raise_error(Projects::UpdatePagesService::FailedToExtractError)
end
end
expect(execute).not_to eq(:success)
end
it 'fails for empty file fails' do
build.update_attributes(legacy_artifacts_file: empty_file)
expect { execute }
.to raise_error(Projects::UpdatePagesService::FailedToExtractError)
end
end
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment