Commit ba5697fd authored by Zeger-Jan van de Weg's avatar Zeger-Jan van de Weg Committed by Kamil Trzcinski

Fix legacy migration test

parent 1756604f
...@@ -34,8 +34,6 @@ class ArtifactUploader < GitlabUploader ...@@ -34,8 +34,6 @@ class ArtifactUploader < GitlabUploader
end end
def default_path def default_path
File.join(job.project_id.to_s, File.join(job.created_at.utc.strftime('%Y_%m'), job.project_id.to_s, job.id.to_s)
job.created_at.utc.strftime('%Y_%m'),
job.id.to_s)
end end
end end
...@@ -14,8 +14,8 @@ class CreateJobArtifacts < ActiveRecord::Migration ...@@ -14,8 +14,8 @@ class CreateJobArtifacts < ActiveRecord::Migration
t.datetime_with_timezone :updated_at, null: false t.datetime_with_timezone :updated_at, null: false
t.string :file t.string :file
end
add_foreign_key :ci_job_artifacts, :ci_builds, column: :job_id, on_delete: :cascade t.foreign_key :ci_builds, column: :job_id, on_delete: :cascade
end
end end
end end
...@@ -16,20 +16,22 @@ describe MigrateOldArtifacts do ...@@ -16,20 +16,22 @@ describe MigrateOldArtifacts do
end end
context 'with migratable data' do context 'with migratable data' do
let(:project1) { create(:project, ci_id: 2) } set(:project1) { create(:project, ci_id: 2) }
let(:project2) { create(:project, ci_id: 3) } set(:project2) { create(:project, ci_id: 3) }
let(:project3) { create(:project) } set(:project3) { create(:project) }
let(:pipeline1) { create(:ci_empty_pipeline, project: project1) } set(:pipeline1) { create(:ci_empty_pipeline, project: project1) }
let(:pipeline2) { create(:ci_empty_pipeline, project: project2) } set(:pipeline2) { create(:ci_empty_pipeline, project: project2) }
let(:pipeline3) { create(:ci_empty_pipeline, project: project3) } set(:pipeline3) { create(:ci_empty_pipeline, project: project3) }
let!(:build_with_legacy_artifacts) { create(:ci_build, pipeline: pipeline1) } let!(:build_with_legacy_artifacts) { create(:ci_build, pipeline: pipeline1) }
let!(:build_without_artifacts) { create(:ci_build, pipeline: pipeline1) } let!(:build_without_artifacts) { create(:ci_build, pipeline: pipeline1) }
let!(:build2) { create(:ci_build, :artifacts, pipeline: pipeline2) } let!(:build2) { create(:ci_build, pipeline: pipeline2) }
let!(:build3) { create(:ci_build, :artifacts, pipeline: pipeline3) } let!(:build3) { create(:ci_build, pipeline: pipeline3) }
before do before do
setup_builds(build2, build3)
store_artifacts_in_legacy_path(build_with_legacy_artifacts) store_artifacts_in_legacy_path(build_with_legacy_artifacts)
end end
...@@ -113,5 +115,24 @@ describe MigrateOldArtifacts do ...@@ -113,5 +115,24 @@ describe MigrateOldArtifacts do
build.project.ci_id.to_s, build.project.ci_id.to_s,
build.id.to_s) build.id.to_s)
end end
def new_legacy_path(build)
File.join(directory,
build.created_at.utc.strftime('%Y_%m'),
build.project_id.to_s,
build.id.to_s)
end
def setup_builds(*builds)
builds.each do |build|
FileUtils.mkdir_p(new_legacy_path(build))
build.update_columns(
artifacts_file: 'ci_build_artifacts.zip',
artifacts_metadata: 'ci_build_artifacts_metadata.gz')
build.reload
end
end
end end
end end
...@@ -120,6 +120,7 @@ module TestEnv ...@@ -120,6 +120,7 @@ module TestEnv
FileUtils.mkdir_p(repos_path) FileUtils.mkdir_p(repos_path)
FileUtils.mkdir_p(backup_path) FileUtils.mkdir_p(backup_path)
FileUtils.mkdir_p(pages_path) FileUtils.mkdir_p(pages_path)
FileUtils.mkdir_p(artifacts_path)
end end
def clean_gitlab_test_path def clean_gitlab_test_path
...@@ -233,6 +234,10 @@ module TestEnv ...@@ -233,6 +234,10 @@ module TestEnv
Gitlab.config.pages.path Gitlab.config.pages.path
end end
def artifacts_path
Gitlab.config.artifacts.path
end
# When no cached assets exist, manually hit the root path to create them # When no cached assets exist, manually hit the root path to create them
# #
# Otherwise they'd be created by the first test, often timing out and # Otherwise they'd be created by the first test, often timing out and
......
...@@ -26,7 +26,7 @@ describe ArtifactUploader do ...@@ -26,7 +26,7 @@ describe ArtifactUploader do
subject { uploader.store_dir } subject { uploader.store_dir }
it { is_expected.to start_with(path) } it { is_expected.to start_with(path) }
it { is_expected.to end_with("#{job.project_id}/#{job.created_at.utc.strftime('%Y_%m')}/#{job.id}") } it { is_expected.to end_with("#{job.project_id}/#{job.id}") }
end end
describe '#cache_dir' do describe '#cache_dir' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment