Skip to content
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CI files for branch 2.4 #394

Merged
merged 1 commit into from
Aug 1, 2024
Merged
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
10 changes: 8 additions & 2 deletions .ci/ansible/Containerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,26 @@ ADD ./{{ item.name }} ./{{ item.name }}
# S3 botocore needs to be patched to handle responses from minio during 0-byte uploads
# Hacking botocore (https://github.com/boto/botocore/pull/1990)

RUN pip3 install
RUN pip3 install --upgrade pip setuptools wheel && \
rm -rf /root/.cache/pip && \
pip3 install
{%- if s3_test | default(false) -%}
{{ " " }}git+https://github.com/gerrod3/botocore.git@fix-100-continue
{%- endif -%}
{%- for item in plugins -%}
{{ " " }}{{ item.source }}
{%- if item.upperbounds | default(false) -%}
{{ " " }}-c ./{{ item.name }}/upperbounds_constraints.txt
{%- endif -%}
{%- if item.lowerbounds | default(false) -%}
{{ " " }}-c ./{{ item.name }}/lowerbounds_constraints.txt
{%- endif -%}
{%- if item.ci_requirements | default(false) -%}
{{ " " }}-r ./{{ item.name }}/ci_requirements.txt
{%- endif -%}
{%- endfor %}
{{ " " }}-c ./{{ plugins[0].name }}/.ci/assets/ci_constraints.txt
{{ " " }}-c ./{{ plugins[0].name }}/.ci/assets/ci_constraints.txt && \
rm -rf /root/.cache/pip

{% if pulp_env is defined and pulp_env %}
{% for key, value in pulp_env.items() %}
Expand Down
118 changes: 118 additions & 0 deletions .ci/scripts/calc_constraints.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# WARNING: DO NOT EDIT!
#
# This file was generated by plugin_template, and is managed by it. Please use
# './plugin-template --github pulp_ostree' to update this file.
#
# For more info visit https://github.com/pulp/plugin_template

import argparse
import fileinput
import urllib.request
import sys
from packaging.requirements import Requirement
from packaging.version import Version
import yaml


CORE_TEMPLATE_URL = "https://raw.githubusercontent.com/pulp/pulpcore/main/template_config.yml"


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"])
applicable_versions = sorted(
requirement.specifier.filter((Version(v) for v in supported_versions))
)
if len(applicable_versions) == 0:
raise Exception("No supported pulpcore version in required range.")
return f"{requirement.name}~={applicable_versions[-1]}"


def split_comment(line):
split_line = line.split("#", maxsplit=1)
try:
comment = " # " + split_line[1].strip()
except IndexError:
comment = ""
return split_line[0].strip(), comment


def to_upper_bound(req):
try:
requirement = Requirement(req)
except ValueError:
return f"# UNPARSABLE: {req}"
else:
if requirement.name == "pulpcore":
# An exception to allow for pulpcore deprecation policy.
return fetch_pulpcore_upper_bound(requirement)
for spec in requirement.specifier:
if spec.operator == "~=":
return f"# NO BETTER CONSTRAINT: {req}"
if spec.operator == "<=":
operator = "=="
max_version = spec.version
return f"{requirement.name}{operator}{max_version}"
if spec.operator == "<":
operator = "~="
version = Version(spec.version)
if version.micro != 0:
max_version = f"{version.major}.{version.minor}.{version.micro-1}"
elif version.minor != 0:
max_version = f"{version.major}.{version.minor-1}"
elif version.major != 0:
max_version = f"{version.major-1}.0"
else:
return f"# NO BETTER CONSTRAINT: {req}"
return f"{requirement.name}{operator}{max_version}"
return f"# NO UPPER BOUND: {req}"


def to_lower_bound(req):
try:
requirement = Requirement(req)
except ValueError:
return f"# UNPARSABLE: {req}"
else:
for spec in requirement.specifier:
if spec.operator == ">=":
if requirement.name == "pulpcore":
# Currently an exception to allow for pulpcore bugfix releases.
# TODO Semver libraries should be allowed too.
operator = "~="
else:
operator = "=="
min_version = spec.version
return f"{requirement.name}{operator}{min_version}"
return f"# NO LOWER BOUND: {req}"


def main():
"""Calculate constraints for the lower bound of dependencies where possible."""
parser = argparse.ArgumentParser(
prog=sys.argv[0],
description="Calculate constraints for the lower or upper bound of dependencies where "
"possible.",
)
parser.add_argument("-u", "--upper", action="store_true")
parser.add_argument("filename", nargs="*")
args = parser.parse_args()

with fileinput.input(files=args.filename) as req_file:
for line in req_file:
if line.strip().startswith("#"):
# Shortcut comment only lines
print(line.strip())
else:
req, comment = split_comment(line)
if args.upper:
new_req = to_upper_bound(req)
else:
new_req = to_lower_bound(req)
print(new_req + comment)


if __name__ == "__main__":
main()
34 changes: 0 additions & 34 deletions .ci/scripts/calc_deps_lowerbounds.py

This file was deleted.

2 changes: 1 addition & 1 deletion .github/template_gitref
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2021.08.26-351-g4e8a1a7
2021.08.26-364-g6f9579c
103 changes: 0 additions & 103 deletions .github/workflows/kanban.yml

This file was deleted.

6 changes: 4 additions & 2 deletions .github/workflows/scripts/before_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,11 @@ then
exit $s
fi

if [[ "$TEST" = "pulp" ]]; then
python3 .ci/scripts/calc_constraints.py -u requirements.txt > upperbounds_constraints.txt
fi
if [[ "$TEST" = "lowerbounds" ]]; then
python3 .ci/scripts/calc_deps_lowerbounds.py > lowerbounds_constraints.txt
sed -i 's/\[.*\]//g' lowerbounds_constraints.txt
python3 .ci/scripts/calc_constraints.py requirements.txt > lowerbounds_constraints.txt
fi

if [ -f $POST_BEFORE_INSTALL ]; then
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/scripts/build_python_client.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ cd "$(dirname "$(realpath -e "$0")")"/../../..
pushd ../pulp-openapi-generator
rm -rf "pulp_ostree-client"

# We need to copy that over to be visible in the container.
cp "../pulp_ostree/ostree-api.json" .
./gen-client.sh "ostree-api.json" "ostree" python "pulp_ostree"
./gen-client.sh "../pulp_ostree/ostree-api.json" "ostree" python "pulp_ostree"

pushd pulp_ostree-client
python setup.py sdist bdist_wheel --python-tag py3
Expand Down
10 changes: 1 addition & 9 deletions .github/workflows/scripts/build_ruby_client.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,7 @@ cd "$(dirname "$(realpath -e "$0")")"/../../..
pushd ../pulp-openapi-generator
rm -rf "pulp_ostree-client"

# We need to copy that over to be visible in the container.
#cp "../pulp_ostree/ostree-api.json" .
#./gen-client.sh "ostree-api.json" "ostree" ruby "pulp_ostree"

# -------------
# The generator still needs to have it called api.json at this time...
cp "../pulp_ostree/api.json" .
./gen-client.sh "api.json" "ostree" ruby "pulp_ostree"
# -------------
./gen-client.sh "../pulp_ostree/ostree-api.json" "ostree" ruby "pulp_ostree"

pushd pulp_ostree-client
gem build pulp_ostree_client
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/scripts/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ if [[ -f ../../ci_requirements.txt ]]; then
ci_requirements: true
VARSYAML
fi
if [ "$TEST" = "pulp" ]; then
cat >> vars/main.yaml << VARSYAML
upperbounds: true
VARSYAML
fi
if [ "$TEST" = "lowerbounds" ]; then
cat >> vars/main.yaml << VARSYAML
lowerbounds: true
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/update_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ name: "Ostree CI Update"
on:
schedule:
# * is a special character in YAML so you have to quote this string
# runs at 2:30 UTC every Sunday
- cron: '30 2 * * 0'
# runs at 10:30 UTC every Sunday
- cron: '30 10 * * 0'
workflow_dispatch:

jobs:
Expand Down Expand Up @@ -79,7 +79,7 @@ jobs:
- name: "Run update"
working-directory: "pulp_ostree"
run: |
../plugin_template/scripts/update_ci.sh
../plugin_template/scripts/update_ci.sh --release

- name: "Create Pull Request for CI files"
uses: "peter-evans/create-pull-request@v6"
Expand Down
2 changes: 1 addition & 1 deletion docs/template_gitref
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2021.08.26-351-g4e8a1a7
2021.08.26-364-g6f9579c
3 changes: 1 addition & 2 deletions template_config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This config represents the latest values used when running the plugin-template. Any settings that
# were not present before running plugin-template have been added with their default values.

# generated with [email protected]351-g4e8a1a7
# generated with [email protected]364-g6f9579c

api_root: /pulp/
black: true
Expand All @@ -27,7 +27,6 @@ flake8: true
flake8_ignore: []
github_org: pulp
issue_tracker: github
kanban: true
latest_release_branch: '2.3'
lint_requirements: true
noissue_marker: '[noissue]'
Expand Down
Loading