Commit 4e0b9a77 authored by Dan Davison's avatar Dan Davison

Merge branch 'pypi-pull-test' into 'master'

Add package manager pypi install test

See merge request gitlab-org/gitlab!62381
parents 9dcf1c12 70de310b
...@@ -26,10 +26,10 @@ module QA ...@@ -26,10 +26,10 @@ module QA
end end
end end
let(:gitlab_address_with_port) do let(:uri) { URI.parse(Runtime::Scenario.gitlab_address) }
uri = URI.parse(Runtime::Scenario.gitlab_address) let(:gitlab_address_with_port) { "#{uri.scheme}://#{uri.host}:#{uri.port}" }
"#{uri.scheme}://#{uri.host}:#{uri.port}" let(:gitlab_host_with_port) { "#{uri.host}:#{uri.port}" }
end let(:personal_access_token) { Runtime::Env.personal_access_token }
before do before do
Flow::Login.sign_in Flow::Login.sign_in
...@@ -42,14 +42,25 @@ module QA ...@@ -42,14 +42,25 @@ module QA
content: content:
<<~YAML <<~YAML
image: python:latest image: python:latest
stages:
- run
- install
run: run:
stage: run
script: script:
- pip install twine - pip install twine
- python setup.py sdist bdist_wheel - python setup.py sdist bdist_wheel
- "TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url #{gitlab_address_with_port}/api/v4/projects/${CI_PROJECT_ID}/packages/pypi dist/*" - "TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url #{gitlab_address_with_port}/api/v4/projects/${CI_PROJECT_ID}/packages/pypi dist/*"
tags: tags:
- "runner-for-#{project.name}" - "runner-for-#{project.name}"
install:
stage: install
script:
- "pip install mypypipackage --no-deps --index-url http://#{personal_access_token}:#{personal_access_token}@#{gitlab_host_with_port}/api/v4/projects/${CI_PROJECT_ID}/packages/pypi/simple --trusted-host #{gitlab_host_with_port}"
tags:
- "runner-for-#{project.name}"
YAML YAML
}, },
{ {
...@@ -87,6 +98,16 @@ module QA ...@@ -87,6 +98,16 @@ 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
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 end
after do after do
...@@ -95,20 +116,22 @@ module QA ...@@ -95,20 +116,22 @@ module QA
project&.remove_via_api! project&.remove_via_api!
end end
it 'publishes a pypi package and deletes it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1087' do context 'when at the project level' do
Page::Project::Menu.perform(&:click_packages_link) it 'publishes and installs a pypi package and deletes it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1087' do
Page::Project::Menu.perform(&:click_packages_link)
Page::Project::Packages::Index.perform do |index| Page::Project::Packages::Index.perform do |index|
expect(index).to have_package(package.name) expect(index).to have_package(package.name)
index.click_package(package.name) index.click_package(package.name)
end end
Page::Project::Packages::Show.perform(&:click_delete) Page::Project::Packages::Show.perform(&:click_delete)
Page::Project::Packages::Index.perform do |index| Page::Project::Packages::Index.perform do |index|
aggregate_failures do aggregate_failures do
expect(index).to have_content("Package deleted successfully") expect(index).to have_content("Package deleted successfully")
expect(index).not_to have_package(package.name) expect(index).not_to have_package(package.name)
end
end end
end end
end end
......
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