Merge branch '340869_add_different_auth_tokens_in_maven_scenario' into 'master'
Update maven repository QA spec See merge request gitlab-org/gitlab!74067
This commit is contained in:
commit
5078f4b054
|
@ -43,7 +43,7 @@ def duplicates_enabled?
|
||||||
|
|
||||||
def with_allow_duplicates_button
|
def with_allow_duplicates_button
|
||||||
within_element :allow_duplicates_toggle do
|
within_element :allow_duplicates_toggle do
|
||||||
toggle = find('button.gl-toggle')
|
toggle = find('button.gl-toggle:not(.is-disabled)')
|
||||||
yield(toggle)
|
yield(toggle)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,77 +3,56 @@
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage do
|
RSpec.describe 'Package', :orchestrated, :packages, :object_storage do
|
||||||
describe 'Maven Repository' do
|
describe 'Maven Repository' do
|
||||||
|
using RSpec::Parameterized::TableSyntax
|
||||||
include Runtime::Fixtures
|
include Runtime::Fixtures
|
||||||
|
include_context 'packages registry qa scenario'
|
||||||
|
|
||||||
let(:group_id) { 'com.gitlab.qa' }
|
let(:group_id) { 'com.gitlab.qa' }
|
||||||
let(:artifact_id) { "maven-#{SecureRandom.hex(8)}" }
|
let(:artifact_id) { "maven-#{SecureRandom.hex(8)}" }
|
||||||
let(:another_artifact_id) { "maven-#{SecureRandom.hex(8)}" }
|
|
||||||
let(:package_name) { "#{group_id}/#{artifact_id}".tr('.', '/') }
|
let(:package_name) { "#{group_id}/#{artifact_id}".tr('.', '/') }
|
||||||
let(:auth_token) do
|
let(:package_version) { '1.3.7' }
|
||||||
unless Page::Main::Menu.perform(&:signed_in?)
|
let(:package_type) { 'maven' }
|
||||||
Flow::Login.sign_in
|
|
||||||
end
|
|
||||||
|
|
||||||
Resource::PersonalAccessToken.fabricate!.token
|
let(:package_gitlab_ci_file) do
|
||||||
|
{
|
||||||
|
file_path: '.gitlab-ci.yml',
|
||||||
|
content:
|
||||||
|
<<~YAML
|
||||||
|
deploy:
|
||||||
|
image: maven:3.6-jdk-11
|
||||||
|
script:
|
||||||
|
- 'mvn deploy -s settings.xml'
|
||||||
|
only:
|
||||||
|
- "#{package_project.default_branch}"
|
||||||
|
tags:
|
||||||
|
- "runner-for-#{package_project.group.name}"
|
||||||
|
YAML
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:project) do
|
let(:package_pom_file) do
|
||||||
Resource::Project.fabricate_via_api! do |project|
|
|
||||||
project.name = 'maven-package-project'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
let(:another_project) do
|
|
||||||
Resource::Project.fabricate_via_api! do |another_project|
|
|
||||||
another_project.name = 'another-maven-package-project'
|
|
||||||
another_project.group = project.group
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
let(:package) do
|
|
||||||
Resource::Package.init do |package|
|
|
||||||
package.name = package_name
|
|
||||||
package.project = project
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
let!(:runner) do
|
|
||||||
Resource::Runner.fabricate! do |runner|
|
|
||||||
runner.name = "qa-runner-#{Time.now.to_i}"
|
|
||||||
runner.tags = ["runner-for-#{project.group.name}"]
|
|
||||||
runner.executor = :docker
|
|
||||||
runner.token = project.group.runners_token
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
let!(:gitlab_address_with_port) do
|
|
||||||
uri = URI.parse(Runtime::Scenario.gitlab_address)
|
|
||||||
"#{uri.scheme}://#{uri.host}:#{uri.port}"
|
|
||||||
end
|
|
||||||
|
|
||||||
let(:pom_xml) do
|
|
||||||
{
|
{
|
||||||
file_path: 'pom.xml',
|
file_path: 'pom.xml',
|
||||||
content: <<~XML
|
content: <<~XML
|
||||||
<project>
|
<project>
|
||||||
<groupId>#{group_id}</groupId>
|
<groupId>#{group_id}</groupId>
|
||||||
<artifactId>#{artifact_id}</artifactId>
|
<artifactId>#{artifact_id}</artifactId>
|
||||||
<version>1.0</version>
|
<version>#{package_version}</version>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>#{project.name}</id>
|
<id>#{package_project.name}</id>
|
||||||
<url>#{gitlab_address_with_port}/api/v4/groups/#{project.group.id}/-/packages/maven</url>
|
<url>#{gitlab_address_with_port}/api/v4/groups/#{package_project.group.id}/-/packages/maven</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
<repository>
|
<repository>
|
||||||
<id>#{project.name}</id>
|
<id>#{package_project.name}</id>
|
||||||
<url>#{gitlab_address_with_port}/api/v4/projects/#{project.id}/packages/maven</url>
|
<url>#{gitlab_address_with_port}/api/v4/projects/#{package_project.id}/packages/maven</url>
|
||||||
</repository>
|
</repository>
|
||||||
<snapshotRepository>
|
<snapshotRepository>
|
||||||
<id>#{project.name}</id>
|
<id>#{package_project.name}</id>
|
||||||
<url>#{gitlab_address_with_port}/api/v4/projects/#{project.id}/packages/maven</url>
|
<url>#{gitlab_address_with_port}/api/v4/projects/#{package_project.id}/packages/maven</url>
|
||||||
</snapshotRepository>
|
</snapshotRepository>
|
||||||
</distributionManagement>
|
</distributionManagement>
|
||||||
</project>
|
</project>
|
||||||
|
@ -81,36 +60,43 @@ module QA
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:pom_xml_another_project) do
|
let(:client_gitlab_ci_file) do
|
||||||
|
{
|
||||||
|
file_path: '.gitlab-ci.yml',
|
||||||
|
content:
|
||||||
|
<<~YAML
|
||||||
|
install:
|
||||||
|
image: maven:3.6-jdk-11
|
||||||
|
script:
|
||||||
|
- "mvn install -s settings.xml"
|
||||||
|
only:
|
||||||
|
- "#{client_project.default_branch}"
|
||||||
|
tags:
|
||||||
|
- "runner-for-#{client_project.group.name}"
|
||||||
|
YAML
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:client_pom_file) do
|
||||||
{
|
{
|
||||||
file_path: 'pom.xml',
|
file_path: 'pom.xml',
|
||||||
content: <<~XML
|
content: <<~XML
|
||||||
<project>
|
<project>
|
||||||
<groupId>#{group_id}</groupId>
|
<groupId>#{group_id}</groupId>
|
||||||
<artifactId>#{another_artifact_id}</artifactId>
|
<artifactId>maven_client</artifactId>
|
||||||
<version>1.0</version>
|
<version>1.0</version>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>#{another_project.name}</id>
|
<id>#{package_project.name}</id>
|
||||||
<url>#{gitlab_address_with_port}/api/v4/groups/#{another_project.group.id}/-/packages/maven</url>
|
<url>#{gitlab_address_with_port}/api/v4/groups/#{package_project.group.id}/-/packages/maven</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<distributionManagement>
|
|
||||||
<repository>
|
|
||||||
<id>#{another_project.name}</id>
|
|
||||||
<url>#{gitlab_address_with_port}/api/v4/projects/#{another_project.id}/packages/maven</url>
|
|
||||||
</repository>
|
|
||||||
<snapshotRepository>
|
|
||||||
<id>#{another_project.name}</id>
|
|
||||||
<url>#{gitlab_address_with_port}/api/v4/projects/#{another_project.id}/packages/maven</url>
|
|
||||||
</snapshotRepository>
|
|
||||||
</distributionManagement>
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>#{group_id}</groupId>
|
<groupId>#{group_id}</groupId>
|
||||||
<artifactId>#{artifact_id}</artifactId>
|
<artifactId>#{artifact_id}</artifactId>
|
||||||
<version>1.0</version>
|
<version>#{package_version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -118,7 +104,7 @@ module QA
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:settings_xml) do
|
let(:settings_xml_with_pat) do
|
||||||
{
|
{
|
||||||
file_path: 'settings.xml',
|
file_path: 'settings.xml',
|
||||||
content: <<~XML
|
content: <<~XML
|
||||||
|
@ -126,12 +112,12 @@ module QA
|
||||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
|
||||||
<servers>
|
<servers>
|
||||||
<server>
|
<server>
|
||||||
<id>#{project.name}</id>
|
<id>#{package_project.name}</id>
|
||||||
<configuration>
|
<configuration>
|
||||||
<httpHeaders>
|
<httpHeaders>
|
||||||
<property>
|
<property>
|
||||||
<name>Private-Token</name>
|
<name>Private-Token</name>
|
||||||
<value>#{auth_token}</value>
|
<value>#{personal_access_token}</value>
|
||||||
</property>
|
</property>
|
||||||
</httpHeaders>
|
</httpHeaders>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
@ -142,188 +128,62 @@ module QA
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:gitlab_ci_deploy_yml) do
|
where(:authentication_token_type, :maven_header_name) do
|
||||||
{
|
:personal_access_token | 'Private-Token'
|
||||||
file_path: '.gitlab-ci.yml',
|
:ci_job_token | 'Job-Token'
|
||||||
content:
|
:project_deploy_token | 'Deploy-Token'
|
||||||
<<~YAML
|
|
||||||
deploy:
|
|
||||||
image: maven:3.6-jdk-11
|
|
||||||
script:
|
|
||||||
- 'mvn deploy -s settings.xml'
|
|
||||||
- "mvn dependency:get -Dartifact=#{group_id}:#{artifact_id}:1.0"
|
|
||||||
only:
|
|
||||||
- "#{project.default_branch}"
|
|
||||||
tags:
|
|
||||||
- "runner-for-#{project.group.name}"
|
|
||||||
YAML
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:gitlab_ci_install_yml) do
|
with_them do
|
||||||
{
|
let(:token) do
|
||||||
file_path: '.gitlab-ci.yml',
|
case authentication_token_type
|
||||||
content:
|
when :personal_access_token
|
||||||
<<~YAML
|
personal_access_token
|
||||||
install:
|
when :ci_job_token
|
||||||
image: maven:3.6-jdk-11
|
'${env.CI_JOB_TOKEN}'
|
||||||
script:
|
when :project_deploy_token
|
||||||
- "mvn install"
|
project_deploy_token.password
|
||||||
only:
|
|
||||||
- "#{project.default_branch}"
|
|
||||||
tags:
|
|
||||||
- "runner-for-#{another_project.group.name}"
|
|
||||||
YAML
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
after do
|
|
||||||
runner.remove_via_api!
|
|
||||||
project.remove_via_api!
|
|
||||||
another_project.remove_via_api!
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'pushes and pulls a Maven package via CI and deletes it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1627' do
|
|
||||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
|
||||||
commit.project = project
|
|
||||||
commit.commit_message = 'Add .gitlab-ci.yml'
|
|
||||||
commit.add_files([
|
|
||||||
gitlab_ci_deploy_yml,
|
|
||||||
settings_xml,
|
|
||||||
pom_xml
|
|
||||||
])
|
|
||||||
end
|
|
||||||
|
|
||||||
project.visit!
|
|
||||||
Flow::Pipeline.visit_latest_pipeline
|
|
||||||
|
|
||||||
Page::Project::Pipeline::Show.perform do |pipeline|
|
|
||||||
pipeline.click_job('deploy')
|
|
||||||
end
|
|
||||||
|
|
||||||
Page::Project::Job::Show.perform do |job|
|
|
||||||
expect(job).to be_successful(timeout: 800)
|
|
||||||
end
|
|
||||||
|
|
||||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
|
||||||
commit.project = another_project
|
|
||||||
commit.commit_message = 'Add .gitlab-ci.yml'
|
|
||||||
commit.add_files([
|
|
||||||
gitlab_ci_install_yml,
|
|
||||||
pom_xml_another_project
|
|
||||||
])
|
|
||||||
end
|
|
||||||
|
|
||||||
another_project.visit!
|
|
||||||
Flow::Pipeline.visit_latest_pipeline
|
|
||||||
|
|
||||||
Page::Project::Pipeline::Show.perform do |pipeline|
|
|
||||||
pipeline.click_job('install')
|
|
||||||
end
|
|
||||||
|
|
||||||
Page::Project::Job::Show.perform do |job|
|
|
||||||
expect(job).to be_successful(timeout: 800)
|
|
||||||
end
|
|
||||||
|
|
||||||
project.visit!
|
|
||||||
|
|
||||||
Page::Project::Menu.perform(&:click_packages_link)
|
|
||||||
|
|
||||||
Page::Project::Packages::Index.perform do |index|
|
|
||||||
expect(index).to have_package(package_name)
|
|
||||||
|
|
||||||
index.click_package(package_name)
|
|
||||||
end
|
|
||||||
|
|
||||||
Page::Project::Packages::Show.perform do |show|
|
|
||||||
expect(show).to have_package_info(package_name, "1.0")
|
|
||||||
show.click_delete
|
|
||||||
end
|
|
||||||
|
|
||||||
Page::Project::Packages::Index.perform do |index|
|
|
||||||
expect(index).to have_content("Package deleted successfully")
|
|
||||||
expect(index).not_to have_package(package_name)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when "allow duplicate" setting is disabled' do
|
|
||||||
before do
|
|
||||||
Flow::Login.sign_in
|
|
||||||
|
|
||||||
project.group.visit!
|
|
||||||
|
|
||||||
Page::Group::Menu.perform(&:go_to_package_settings)
|
|
||||||
Page::Group::Settings::PackageRegistries.perform(&:set_allow_duplicates_disabled)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'prevents users from publishing duplicate Maven packages at the group level', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1830' do
|
|
||||||
with_fixtures([pom_xml, settings_xml]) do |dir|
|
|
||||||
Service::DockerRun::Maven.new(dir).publish!
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
project.visit!
|
let(:settings_xml) do
|
||||||
Page::Project::Menu.perform(&:click_packages_link)
|
{
|
||||||
|
file_path: 'settings.xml',
|
||||||
Page::Project::Packages::Index.perform do |index|
|
content: <<~XML
|
||||||
expect(index).to have_package(package_name)
|
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
end
|
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
|
||||||
|
<servers>
|
||||||
|
<server>
|
||||||
|
<id>#{package_project.name}</id>
|
||||||
|
<configuration>
|
||||||
|
<httpHeaders>
|
||||||
|
<property>
|
||||||
|
<name>#{maven_header_name}</name>
|
||||||
|
<value>#{token}</value>
|
||||||
|
</property>
|
||||||
|
</httpHeaders>
|
||||||
|
</configuration>
|
||||||
|
</server>
|
||||||
|
</servers>
|
||||||
|
</settings>
|
||||||
|
XML
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it "pushes and pulls a maven package via maven using #{params[:authentication_token_type]}" do
|
||||||
|
# pushing
|
||||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||||
commit.project = another_project
|
commit.project = package_project
|
||||||
commit.commit_message = 'Add .gitlab-ci.yml'
|
commit.commit_message = 'Add .gitlab-ci.yml'
|
||||||
commit.add_files([
|
commit.add_files([
|
||||||
gitlab_ci_deploy_yml,
|
package_gitlab_ci_file,
|
||||||
settings_xml,
|
package_pom_file,
|
||||||
pom_xml
|
settings_xml
|
||||||
])
|
])
|
||||||
end
|
end
|
||||||
|
|
||||||
another_project.visit!
|
package_project.visit!
|
||||||
Flow::Pipeline.visit_latest_pipeline
|
|
||||||
|
|
||||||
Page::Project::Pipeline::Show.perform do |pipeline|
|
|
||||||
pipeline.click_job('deploy')
|
|
||||||
end
|
|
||||||
|
|
||||||
Page::Project::Job::Show.perform do |job|
|
|
||||||
expect(job).not_to be_successful(timeout: 800)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when "allow duplicate" setting is enabled' do
|
|
||||||
before do
|
|
||||||
Flow::Login.sign_in
|
|
||||||
|
|
||||||
project.group.visit!
|
|
||||||
|
|
||||||
Page::Group::Menu.perform(&:go_to_package_settings)
|
|
||||||
Page::Group::Settings::PackageRegistries.perform(&:set_allow_duplicates_enabled)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'allows users to publish duplicate Maven packages at the group level', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1829' do
|
|
||||||
with_fixtures([pom_xml, settings_xml]) do |dir|
|
|
||||||
Service::DockerRun::Maven.new(dir).publish!
|
|
||||||
end
|
|
||||||
|
|
||||||
project.visit!
|
|
||||||
Page::Project::Menu.perform(&:click_packages_link)
|
|
||||||
|
|
||||||
Page::Project::Packages::Index.perform do |index|
|
|
||||||
expect(index).to have_package(package_name)
|
|
||||||
end
|
|
||||||
|
|
||||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
|
||||||
commit.project = another_project
|
|
||||||
commit.commit_message = 'Add .gitlab-ci.yml'
|
|
||||||
commit.add_files([
|
|
||||||
gitlab_ci_deploy_yml,
|
|
||||||
settings_xml,
|
|
||||||
pom_xml
|
|
||||||
])
|
|
||||||
end
|
|
||||||
|
|
||||||
another_project.visit!
|
|
||||||
Flow::Pipeline.visit_latest_pipeline
|
Flow::Pipeline.visit_latest_pipeline
|
||||||
|
|
||||||
Page::Project::Pipeline::Show.perform do |pipeline|
|
Page::Project::Pipeline::Show.perform do |pipeline|
|
||||||
|
@ -333,6 +193,123 @@ module QA
|
||||||
Page::Project::Job::Show.perform do |job|
|
Page::Project::Job::Show.perform do |job|
|
||||||
expect(job).to be_successful(timeout: 800)
|
expect(job).to be_successful(timeout: 800)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Page::Project::Menu.perform(&:click_packages_link)
|
||||||
|
|
||||||
|
Page::Project::Packages::Index.perform do |index|
|
||||||
|
expect(index).to have_package(package_name)
|
||||||
|
|
||||||
|
index.click_package(package_name)
|
||||||
|
end
|
||||||
|
|
||||||
|
Page::Project::Packages::Show.perform do |show|
|
||||||
|
expect(show).to have_package_info(package_name, package_version)
|
||||||
|
end
|
||||||
|
|
||||||
|
# pulling
|
||||||
|
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||||
|
commit.project = client_project
|
||||||
|
commit.commit_message = 'Add .gitlab-ci.yml'
|
||||||
|
commit.add_files([
|
||||||
|
client_gitlab_ci_file,
|
||||||
|
client_pom_file,
|
||||||
|
settings_xml
|
||||||
|
])
|
||||||
|
end
|
||||||
|
|
||||||
|
client_project.visit!
|
||||||
|
|
||||||
|
Flow::Pipeline.visit_latest_pipeline
|
||||||
|
|
||||||
|
Page::Project::Pipeline::Show.perform do |pipeline|
|
||||||
|
pipeline.click_job('install')
|
||||||
|
end
|
||||||
|
|
||||||
|
Page::Project::Job::Show.perform do |job|
|
||||||
|
expect(job).to be_successful(timeout: 800)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'duplication setting' do
|
||||||
|
before do
|
||||||
|
package_project.group.visit!
|
||||||
|
|
||||||
|
Page::Group::Menu.perform(&:go_to_package_settings)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when disabled' do
|
||||||
|
before do
|
||||||
|
Page::Group::Settings::PackageRegistries.perform(&:set_allow_duplicates_disabled)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "prevents users from publishing group level Maven packages duplicates using #{params[:authentication_token_type]}" do
|
||||||
|
create_duplicated_package
|
||||||
|
|
||||||
|
push_duplicated_package
|
||||||
|
|
||||||
|
client_project.visit!
|
||||||
|
|
||||||
|
show_latest_deploy_job
|
||||||
|
|
||||||
|
Page::Project::Job::Show.perform do |job|
|
||||||
|
expect(job).not_to be_successful(timeout: 800)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when enabled' do
|
||||||
|
before do
|
||||||
|
Page::Group::Settings::PackageRegistries.perform(&:set_allow_duplicates_enabled)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "allows users to publish group level Maven packages duplicates using #{params[:authentication_token_type]}" do
|
||||||
|
create_duplicated_package
|
||||||
|
|
||||||
|
push_duplicated_package
|
||||||
|
|
||||||
|
show_latest_deploy_job
|
||||||
|
|
||||||
|
Page::Project::Job::Show.perform do |job|
|
||||||
|
expect(job).to be_successful(timeout: 800)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_duplicated_package
|
||||||
|
with_fixtures([package_pom_file, settings_xml_with_pat]) do |dir|
|
||||||
|
Service::DockerRun::Maven.new(dir).publish!
|
||||||
|
end
|
||||||
|
|
||||||
|
package_project.visit!
|
||||||
|
|
||||||
|
Page::Project::Menu.perform(&:click_packages_link)
|
||||||
|
|
||||||
|
Page::Project::Packages::Index.perform do |index|
|
||||||
|
expect(index).to have_package(package_name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def push_duplicated_package
|
||||||
|
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||||
|
commit.project = client_project
|
||||||
|
commit.commit_message = 'Add .gitlab-ci.yml'
|
||||||
|
commit.add_files([
|
||||||
|
package_gitlab_ci_file,
|
||||||
|
package_pom_file,
|
||||||
|
settings_xml
|
||||||
|
])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def show_latest_deploy_job
|
||||||
|
client_project.visit!
|
||||||
|
|
||||||
|
Flow::Pipeline.visit_latest_pipeline
|
||||||
|
|
||||||
|
Page::Project::Pipeline::Show.perform do |pipeline|
|
||||||
|
pipeline.click_job('deploy')
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -43,7 +43,7 @@ module QA
|
||||||
|
|
||||||
let(:project_deploy_token) do
|
let(:project_deploy_token) do
|
||||||
Resource::DeployToken.fabricate_via_browser_ui! do |deploy_token|
|
Resource::DeployToken.fabricate_via_browser_ui! do |deploy_token|
|
||||||
deploy_token.name = 'helm-package-deploy-token'
|
deploy_token.name = 'package-deploy-token'
|
||||||
deploy_token.project = package_project
|
deploy_token.project = package_project
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue