Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

chore: enable using GitLab EE in functional tests#1778

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
nejch merged 2 commits intomainfromjlvillal/gitlab-ee
Jul 26, 2022
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletionstests/functional/api/test_groups.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -218,8 +218,9 @@ def test_group_subgroups_projects(gl, user):
group4.delete()


@pytest.mark.skip
def test_group_wiki(group):
def test_group_wiki(gitlab_ee, group):
if not gitlab_ee:
pytest.skip("Requires GitLab EE to run")
content = "Group Wiki page content"
wiki = group.wikis.create({"title": "groupwikipage", "content": content})
assert wiki in group.wikis.list()
Expand All@@ -234,8 +235,9 @@ def test_group_wiki(group):
assert wiki not in group.wikis.list()


@pytest.mark.skip(reason="EE feature")
def test_group_hooks(group):
def test_group_hooks(gitlab_ee, group):
if not gitlab_ee:
pytest.skip("Requires GitLab EE to run")
hook = group.hooks.create({"url": "http://hook.url"})
assert hook in group.hooks.list()

Expand Down
27 changes: 27 additions & 0 deletionstests/functional/conftest.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,16 @@ def fixture_dir(test_dir):
def reset_gitlab(gl: gitlab.Gitlab) -> None:
"""Delete resources (such as projects, groups, users) that shouldn't
exist."""
if is_gitlab_ee(gl):
logging.info("GitLab EE detected")
# NOTE(jlvillal): By default in GitLab EE it will wait 7 days before
# deleting a group. Change it to 0 days.
settings = gl.settings.get()
if settings.deletion_adjourned_period != 0:
logging.info("Setting deletion_adjourned_period to 0")
settings.deletion_adjourned_period = 0
settings.save()

for project in gl.projects.list():
for deploy_token in project.deploytokens.list():
logging.info(
Expand DownExpand Up@@ -180,6 +190,23 @@ def gl(gitlab_config):
return instance


def is_gitlab_ee(gl: gitlab.Gitlab) -> bool:
"""Determine if we are running with GitLab EE as opposed to GitLab CE"""
try:
license = gl.get_license()
except gitlab.exceptions.GitlabLicenseError:
license = None
# If we have a license then we assume we are running on GitLab EE
if license:
return True
return False


@pytest.fixture(scope="session")
def gitlab_ee(gl) -> bool:
return is_gitlab_ee(gl=gl)


@pytest.fixture(scope="session")
def gitlab_runner(gl):
container = "gitlab-runner-test"
Expand Down
4 changes: 2 additions & 2 deletionstests/functional/fixtures/.env
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
GITLAB_IMAGE=gitlab/gitlab-ce
GITLAB_TAG=14.9.2-ce.0
GITLAB_IMAGE=gitlab/gitlab-ee
GITLAB_TAG=14.9.2-ee.0
51 changes: 51 additions & 0 deletionstests/functional/fixtures/create_license.rb
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
# NOTE: As of 2022-06-01 the GitLab Enterprise Edition License has the following
# section:
# Notwithstanding the foregoing, you may copy and modify the Software for development
# and testing purposes, without requiring a subscription.
#
# https://gitlab.com/gitlab-org/gitlab/-/blob/29503bc97b96af8d4876dc23fc8996e3dab7d211/ee/LICENSE
#
# This code is strictly intended for use in the testing framework of python-gitlab

# Code inspired by MIT licensed code at: https://github.com/CONIGUERO/gitlab-license.git

require 'openssl'
require 'gitlab/license'

# Generate a 2048 bit key pair.
license_encryption_key = OpenSSL::PKey::RSA.generate(2048)

# Save the private key
File.open("/.license_encryption_key", "w") { |f| f.write(license_encryption_key.to_pem) }
# Save the public key
public_key = license_encryption_key.public_key
File.open("/.license_encryption_key.pub", "w") { |f| f.write(public_key.to_pem) }
File.open("/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub", "w") { |f| f.write(public_key.to_pem) }

Gitlab::License.encryption_key = license_encryption_key

# Build a new license.
license = Gitlab::License.new

license.licensee = {
"Name" => "python-gitlab-ci",
"Company" => "python-gitlab-ci",
"Email" => "python-gitlab-ci@example.com",
}

# The date the license starts.
license.starts_at = Date.today
# Want to make sure we get at least 1 day of usage. Do two days after because if CI
# started at 23:59 we could be expired in one minute if we only did one next_day.
license.expires_at = Date.today.next_day.next_day

# Use 'ultimate' plan so that we can test all features in the CI
license.restrictions = {
:plan => "ultimate",
:id => rand(1000..99999999)
}

# Export the license, which encrypts and encodes it.
data = license.export

File.open("/python-gitlab-ci.gitlab-license", 'w') { |file| file.write(data) }
4 changes: 3 additions & 1 deletiontests/functional/fixtures/docker-compose.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,12 +31,14 @@ services:
gitlab_exporter['enable'] = false
grafana['enable'] = false
letsencrypt['enable'] = false
gitlab_rails['initial_license_file'] = '/python-gitlab-ci.gitlab-license'
entrypoint:
- /bin/sh
- -c
- chmod 644 /opt/gitlab/embedded/service/gitlab-rails/db/fixtures/production/* && /assets/wrapper
-ruby /create_license.rb &&chmod 644 /opt/gitlab/embedded/service/gitlab-rails/db/fixtures/production/* && /assets/wrapper
volumes:
- ${PWD}/tests/functional/fixtures/set_token.rb:/opt/gitlab/embedded/service/gitlab-rails/db/fixtures/production/003_set_token.rb
- ${PWD}/tests/functional/fixtures/create_license.rb:/create_license.rb
ports:
- '8080:80'
- '2222:22'
Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp