diff --git a/.ci/ansible/inventory.yaml b/.ci/ansible/inventory.yaml index 3b85c5f4..ad2fbcea 100644 --- a/.ci/ansible/inventory.yaml +++ b/.ci/ansible/inventory.yaml @@ -5,7 +5,7 @@ all: hosts: pulp: pulp-fixtures: - minio: + rustfs: ci-sftp: vars: ansible_connection: docker diff --git a/.ci/ansible/start_container.yaml b/.ci/ansible/start_container.yaml index f0b4d43c..d471c649 100644 --- a/.ci/ansible/start_container.yaml +++ b/.ci/ansible/start_container.yaml @@ -64,9 +64,9 @@ from botocore.exceptions import ClientError client = boto3.client( "s3", - aws_access_key_id="{{ minio_access_key }}", - aws_secret_access_key="{{ minio_secret_key }}", - endpoint_url="http://minio:9000", + aws_access_key_id="{{ rustfs_access_key }}", + aws_secret_access_key="{{ rustfs_secret_key }}", + endpoint_url="http://rustfs:9000", region_name="eu-central-1", ) try: diff --git a/.ci/scripts/calc_constraints.py b/.ci/scripts/calc_constraints.py index 83e197aa..4b60a810 100755 --- a/.ci/scripts/calc_constraints.py +++ b/.ci/scripts/calc_constraints.py @@ -26,10 +26,14 @@ def fetch_pulpcore_upper_bound(requirement): with urllib.request.urlopen(CORE_TEMPLATE_URL) as f: template = yaml.safe_load(f.read()) - supported_versions = template["supported_release_branches"] - supported_versions.append(template["latest_release_branch"]) + supported_branches = [ + *template["supported_release_branches"], + template["latest_release_branch"], + ] applicable_versions = sorted( - requirement.specifier.filter((Version(v) for v in supported_versions)) + Version(branch) + for branch in supported_branches + if requirement.specifier.contains(Version(f"{branch}.999999")) ) if len(applicable_versions) == 0: raise Exception("No supported pulpcore version in required range.") diff --git a/.ci/scripts/pr_labels.py b/.ci/scripts/pr_labels.py index 0c478a21..e36f5884 100755 --- a/.ci/scripts/pr_labels.py +++ b/.ci/scripts/pr_labels.py @@ -1,4 +1,10 @@ #!/bin/env python3 +# /// script +# requires-python = ">=3.12" +# dependencies = [ +# "gitpython>=3.1.62", +# ] +# /// # This script is running with elevated privileges from the main branch against pull requests. diff --git a/.github/workflows/pr_checks.yml b/.github/workflows/pr_checks.yml index 794be327..fbe045a0 100644 --- a/.github/workflows/pr_checks.yml +++ b/.github/workflows/pr_checks.yml @@ -40,7 +40,7 @@ jobs: fetch-depth: 0 - uses: "actions/setup-python@v6" with: - python-version: "3.11" + python-version: "3.14" - name: "Install uv" uses: "astral-sh/setup-uv@v7" with: @@ -49,7 +49,7 @@ jobs: run: | uv pip install GitPython==3.1.42 git fetch origin ${{ github.event.pull_request.head.sha }} - python .ci/scripts/pr_labels.py "origin/${{ github.base_ref }}" "${{ github.event.pull_request.head.sha }}" >> "$GITHUB_ENV" + uv run --script .ci/scripts/pr_labels.py "origin/${{ github.base_ref }}" "${{ github.event.pull_request.head.sha }}" >> "$GITHUB_ENV" - uses: "actions/github-script@v8" name: "Apply PR Labels" with: diff --git a/.github/workflows/scripts/before_install.sh b/.github/workflows/scripts/before_install.sh index 6b356a8c..550ea249 100755 --- a/.github/workflows/scripts/before_install.sh +++ b/.github/workflows/scripts/before_install.sh @@ -76,19 +76,19 @@ services: VARSYAML if [ "$TEST" = "s3" ]; then - MINIO_ACCESS_KEY=AKIAIT2Z5TDYPX3ARJBA - MINIO_SECRET_KEY=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 + RUSTFS_ACCESS_KEY=AKIAIT2Z5TDYPX3ARJBA + RUSTFS_SECRET_KEY=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 cat >> .ci/ansible/vars/main.yaml << VARSYAML - - name: "minio" - image: "minio/minio" + - name: "rustfs" + image: "rustfs/rustfs" env: - MINIO_ACCESS_KEY: "${MINIO_ACCESS_KEY}" - MINIO_SECRET_KEY: "${MINIO_SECRET_KEY}" + RUSTFS_ACCESS_KEY: "${RUSTFS_ACCESS_KEY}" + RUSTFS_SECRET_KEY: "${RUSTFS_SECRET_KEY}" command: "server /data" s3_test: true -minio_access_key: "${MINIO_ACCESS_KEY}" -minio_secret_key: "${MINIO_SECRET_KEY}" -pulp_scenario_settings: {"MEDIA_ROOT": "", "STORAGES": {"default": {"BACKEND": "storages.backends.s3boto3.S3Boto3Storage", "OPTIONS": {"access_key": "AKIAIT2Z5TDYPX3ARJBA", "addressing_style": "path", "bucket_name": "pulp3", "default_acl": "@none", "endpoint_url": "http://minio:9000", "region_name": "eu-central-1", "secret_key": "fqRvjWaPU5o0fCqQuUWbj9Fainj2pVZtBCiDiieS", "signature_version": "s3v4"}}, "staticfiles": {"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"}}, "api_root": "/rerouted/djnd/", "domain_enabled": true} +rustfs_access_key: "${RUSTFS_ACCESS_KEY}" +rustfs_secret_key: "${RUSTFS_SECRET_KEY}" +pulp_scenario_settings: {"MEDIA_ROOT": "", "STORAGES": {"default": {"BACKEND": "storages.backends.s3boto3.S3Boto3Storage", "OPTIONS": {"access_key": "AKIAIT2Z5TDYPX3ARJBA", "addressing_style": "path", "bucket_name": "pulp3", "default_acl": "@none", "endpoint_url": "http://rustfs:9000", "region_name": "eu-central-1", "secret_key": "fqRvjWaPU5o0fCqQuUWbj9Fainj2pVZtBCiDiieS", "signature_version": "s3v4"}}, "staticfiles": {"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"}}, "api_root": "/rerouted/djnd/", "domain_enabled": true} # MinIO omits 100-continue on 0-byte PUTs; stock botocore hangs without this (boto/botocore#3123). pulp_scenario_env: {"BOTO_EXPERIMENTAL__NO_EMPTY_CONTINUE": "true"} VARSYAML diff --git a/template_config.yml b/template_config.yml index 20d5d711..abf925dc 100644 --- a/template_config.yml +++ b/template_config.yml @@ -72,7 +72,7 @@ pulp_settings_s3: addressing_style: "path" bucket_name: "pulp3" default_acl: "@none" - endpoint_url: "http://minio:9000" + endpoint_url: "http://rustfs:9000" region_name: "eu-central-1" secret_key: "fqRvjWaPU5o0fCqQuUWbj9Fainj2pVZtBCiDiieS" signature_version: "s3v4"