Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
2 changes: 1 addition & 1 deletion .ci/assets/ci_constraints.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Pulpcore versions without the openapi command do no longer work in the CI
# Pulpcore versions without the django 5 storage compatibility will fail, >3.63,<3.70
pulpcore>=3.21.30,!=3.23.*,!=3.24.*,!=3.25.*,!=3.26.*,!=3.27.*,!=3.29.*,!=3.30.*,!=3.31.*,!=3.32.*,!=3.33.*,!=3.34.*,!=3.35.*,!=3.36.*,!=3.37.*,!=3.38.*,!=3.40.*,!=3.41.*,!=3.42.*,!=3.43.*,!=3.44.*,!=3.45.*,!=3.46.*,!=3.47.*,!=3.48.*,!=3.50.*,!=3.51.*,!=3.52.*,!=3.53.*,!=3.54.*,!=3.64.*,!=3.65.*,!=3.66.*,!=3.67.*,!=3.68.*,!=3.69.*
pulpcore>=3.49.0,!=3.50.*,!=3.51.*,!=3.52.*,!=3.53.*,!=3.54.*,!=3.64.*,!=3.65.*,!=3.66.*,!=3.67.*,!=3.68.*,!=3.69.*


tablib!=3.6.0
Expand Down
10 changes: 7 additions & 3 deletions .ci/scripts/calc_constraints.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.")
Expand Down
6 changes: 6 additions & 0 deletions .ci/scripts/skip_tests.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.12"
# dependencies = [
# "gitpython>=3.1.62",
# ]
# ///
"""
skip_tests.py - Check if only documentation files were changed in a git branch

Expand Down
8 changes: 8 additions & 0 deletions .ci/scripts/validate_commit_message.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
# This file is managed by the plugin template.
# Do not edit.

# /// script
# requires-python = ">=3.12"
# dependencies = [
# "pygithub",
# "pyyaml",
# ]
# ///

import os
import re
import subprocess
Expand Down
17 changes: 3 additions & 14 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,13 @@ jobs:
uses: "astral-sh/setup-uv@v7"
with:
enable-cache: true
- name: "Install python dependencies"
run: |
uv pip install build packaging twine wheel mkdocs jq
- name: "Build package"
run: |
python3 -m build
twine check dist/*
uv build
uvx twine check dist/*
- name: "Install built packages"
run: |
# This seems to be the only way to inject the constraints file.
uv pip install dist/pulp_python-*-py3-none-any.whl -c .ci/assets/ci_constraints.txt
- name: "Generate api specs"
run: |
Expand Down Expand Up @@ -88,15 +86,6 @@ jobs:
if-no-files-found: "error"
retention-days: 5
overwrite: true
- name: "Upload python client docs"
uses: "actions/upload-artifact@v7"
with:
name: "python-client-docs.tar"
path: |
pulp_python/python-python-client-docs.tar
if-no-files-found: "error"
retention-days: 5
overwrite: true
- name: "Build Ruby bindings packages"
run: |
.github/workflows/scripts/build_ruby_client.sh
Expand Down
14 changes: 3 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,12 @@ jobs:
path: "pulp_python"
- uses: "actions/setup-python@v6"
with:
python-version: "3.11"
python-version: "3.12"
- name: "Install uv"
uses: "astral-sh/setup-uv@v7"
with:
enable-cache: true
- name: "Install python dependencies"
run: |
uv pip install requests pygithub pyyaml
- name: "Check commit message"
if: github.event_name == 'pull_request'
env:
PY_COLORS: "1"
ANSIBLE_FORCE_COLOR: "1"
Expand All @@ -61,16 +57,12 @@ jobs:

- uses: "actions/setup-python@v6"
with:
python-version: "3.11"
python-version: "3.12"
- name: "Install uv"
uses: "astral-sh/setup-uv@v7"
with:
enable-cache: true

- name: "Install python dependencies"
run: |
uv pip install gitpython

- name: "Analyze changed files"
id: "check"
shell: "bash"
Expand All @@ -86,7 +78,7 @@ jobs:
BASE_REF=${{ github.event.pull_request.base.sha }}
echo "Checking against:"
git name-rev $BASE_REF
python3 .ci/scripts/skip_tests.py . $BASE_REF
uv run --script .ci/scripts/skip_tests.py . $BASE_REF
exit_code=$?
if [ $exit_code -ne 0 ] && [ $exit_code -ne 1 ]; then
echo "Error: skip_tests.py returned unexpected exit code $exit_code"
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/pr_checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ jobs:
enable-cache: true
- name: "Determine PR labels"
run: |
uv pip install GitPython==3.1.42
git fetch origin ${{ github.event.pull_request.head.sha }}
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"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sanity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:

- uses: "actions/setup-python@v6"
with:
python-version: "3.11"
python-version: "3.12"
- name: "Install uv"
uses: "astral-sh/setup-uv@v7"
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scripts/before_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ if [ -f .github/workflows/scripts/pre_before_install.sh ]; then
source .github/workflows/scripts/pre_before_install.sh
fi

COMPONENT_VERSION="$(bump-my-version show current_version | tail -n -1 | python -c 'from packaging.version import Version; print(Version(input()))')"
COMPONENT_VERSION="$(python -c 'import tomllib; from packaging.version import Version; print(Version(tomllib.load(open("pyproject.toml", "rb"))["tool"]["bumpversion"]["current_version"]))')"
COMPONENT_SOURCE="./pulp_python/dist/pulp_python-${COMPONENT_VERSION}-py3-none-any.whl"
if [ "$TEST" = "s3" ]; then
COMPONENT_SOURCE="${COMPONENT_SOURCE} pulpcore[s3]"
Expand Down
31 changes: 4 additions & 27 deletions .github/workflows/scripts/build_python_client.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

# This script expects all <app_label>-api.json files to exist in the plugins root directory.
# It produces a <app_label>-python-client.tar and <app_label>-python-client-docs.tar file in the plugins root directory.
# It produces a <app_label>-python-client.tar file in the plugins root directory.

# WARNING: DO NOT EDIT!
#
Expand All @@ -21,34 +21,11 @@ rm -rf "pulp_python-client"
./gen-client.sh "../pulp_python/python-api.json" "python" python "pulp_python"

pushd pulp_python-client
python -m build

twine check "dist/pulp_python_client-"*"-py3-none-any.whl"
twine check "dist/pulp_python_client-"*".tar.gz"

uv build
uvx twine check "dist/pulp_python_client-"*"-py3-none-any.whl"
uvx twine check "dist/pulp_python_client-"*".tar.gz"
tar cvf "../../pulp_python/python-python-client.tar" ./dist

find ./docs/* -exec sed -i 's/Back to README/Back to HOME/g' {} \;
find ./docs/* -exec sed -i 's/README//g' {} \;
cp README.md docs/index.md
sed -i 's/docs\///g' docs/index.md
find ./docs/* -exec sed -i 's/\.md//g' {} \;

cat >> mkdocs.yml << DOCSYAML
---
site_name: PulpPython Client
site_description: Python bindings
site_author: Pulp Team
site_url: https://docs.pulpproject.org/pulp_python_client/
repo_name: pulp/pulp_python
repo_url: https://github.com/pulp/pulp_python
theme: readthedocs
DOCSYAML

# Building the bindings docs
mkdocs build

# Pack the built site.
tar cvf ../../pulp_python/python-python-client-docs.tar ./site
popd
popd
2 changes: 1 addition & 1 deletion .github/workflows/scripts/check_commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ set -euv

for SHA in $(curl -H "Authorization: token $GITHUB_TOKEN" "$GITHUB_CONTEXT" | jq -r '.[].sha')
do
python3 .ci/scripts/validate_commit_message.py "$SHA"
uv run --script .ci/scripts/validate_commit_message.py "$SHA"
done
2 changes: 1 addition & 1 deletion .github/workflows/scripts/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ pushd ../pulp-openapi-generator
rm -rf "./${PACKAGE}-client"
./gen-client.sh "${COMPONENT}-api.json" "${COMPONENT}" python "${PACKAGE}"
pushd "${PACKAGE}-client"
python -m build
uv build
popd
else
if [ ! -f "${PACKAGE}-client/dist/${PACKAGE}_client-${VERSION}-py3-none-any.whl" ]
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/scripts/update_backport_labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@
#
# For more info visit https://github.com/pulp/plugin_template

# /// script
# requires-python = ">=3.12"
# dependencies = [
# "pyyaml",
# "requests",
# ]
# ///

# This script is running with elevated privileges from the main branch against pull requests.

import os
import random

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:

- uses: "actions/setup-python@v6"
with:
python-version: "3.11"
python-version: "3.12"
- name: "Install uv"
uses: "astral-sh/setup-uv@v7"
with:
Expand Down Expand Up @@ -77,7 +77,7 @@ jobs:

- name: "Install python dependencies"
run: |
uv pip install build towncrier twine wheel httpie docker netaddr boto3 'ansible~=10.3.0' mkdocs jq jsonpatch bump-my-version
uv pip install httpie docker netaddr boto3 'ansible~=10.3.0' mkdocs jsonpatch
echo "HTTPIE_CONFIG_DIR=$GITHUB_WORKSPACE/pulp_python/.ci/assets/httpie/" >> $GITHUB_ENV

- name: "Set environment variables"
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/update-labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
steps:
- uses: "actions/setup-python@v6"
with:
python-version: "3.11"
python-version: "3.12"
- name: "Install uv"
uses: "astral-sh/setup-uv@v7"
with:
Expand All @@ -33,13 +33,10 @@ jobs:
run: |
git config --global user.name 'pulpbot'
git config --global user.email 'pulp-infra@redhat.com'
- name: "Install python dependencies"
run: |
uv pip install requests pyyaml
- uses: "actions/checkout@v6"
- name: "Update labels"
run: |
python3 .github/workflows/scripts/update_backport_labels.py
uv run --script .github/workflows/scripts/update_backport_labels.py
env:
GITHUB_TOKEN: "${{ secrets.RELEASE_TOKEN }}"
...
Loading