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 0.15 #1988

Merged
merged 2 commits into from
Oct 31, 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
3 changes: 1 addition & 2 deletions .ci/ansible/Containerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ RUN pip3 install --upgrade pip setuptools wheel && \
{{ " " }}-r ./{{ item.name }}/ci_requirements.txt
{%- endif -%}
{%- endfor %}
{{ " " }}-c ./{{ plugins[0].name }}/.ci/assets/ci_constraints.txt \
pipdeptree && \
{{ " " }}-c ./{{ plugins[0].name }}/.ci/assets/ci_constraints.txt && \
rm -rf /root/.cache/pip

{% if pulp_env is defined and pulp_env %}
Expand Down
5 changes: 0 additions & 5 deletions .ci/assets/ci_constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,3 @@ pulpcore>=3.21.30,!=3.23.*,!=3.24.*,!=3.25.*,!=3.26.*,!=3.27.*,!=3.29.*,!=3.30.*

tablib!=3.6.0
# 3.6.0: This release introduced a regression removing the "html" optional dependency.



# Newer version seem to have a conflict around packaging, that pip fails to resolve in time. Remove this when this starts to impose an issue.
pipdeptree<=3.23.1
11 changes: 8 additions & 3 deletions .ci/scripts/check_release.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ def main():
for branch in branches:
if branch != DEFAULT_BRANCH:
# Check if a Z release is needed
reasons = []
changes = repo.git.ls_tree("-r", "--name-only", f"origin/{branch}", "CHANGES/")
z_changelog = False
for change in changes.split("\n"):
Expand All @@ -76,23 +77,27 @@ def main():
)
elif ext in Z_CHANGELOG_EXTS:
z_changelog = True
if z_changelog:
reasons.append("Backports")

last_tag = repo.git.describe("--tags", "--abbrev=0", f"origin/{branch}")
req_txt_diff = repo.git.diff(
f"{last_tag}", f"origin/{branch}", "--name-only", "--", "requirements.txt"
)
if z_changelog or req_txt_diff:
if req_txt_diff:
reasons.append("requirements.txt")

if reasons:
curr_version = Version(last_tag)
assert curr_version.base_version.startswith(
branch
), "Current-version has to belong to the current branch!"
next_version = Version(f"{branch}.{curr_version.micro + 1}")
reason = "CHANGES" if z_changelog else "requirements.txt"
print(
f"A Z-release is needed for {branch}, "
f"Prev: {last_tag}, "
f"Next: {next_version.base_version}, "
f"Reason: {reason}"
f"Reason: {','.join(reasons)}"
)
releases.append(next_version)
else:
Expand Down
2 changes: 1 addition & 1 deletion .ci/scripts/pr_labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def main():
f".{item['directory']}" for item in PYPROJECT_TOML["tool"]["towncrier"]["type"]
}
except KeyError:
CHANGELOG_EXTS = {"feature", "bugfix", "doc", "removal", "misc"}
CHANGELOG_EXTS = {".feature", ".bugfix", ".doc", ".removal", ".misc"}

repo = Repo(".")

Expand Down
2 changes: 1 addition & 1 deletion .github/template_gitref
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2021.08.26-383-gc4cd2b8
2021.08.26-388-g9788dc0
2 changes: 1 addition & 1 deletion .github/workflows/scripts/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -156,5 +156,5 @@ if [[ "$TEST" = "azure" ]]; then
fi

echo ::group::PIP_LIST
cmd_prefix bash -c "pip3 list && pipdeptree"
cmd_prefix bash -c "pip3 list"
echo ::endgroup::
10 changes: 6 additions & 4 deletions .github/workflows/scripts/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,14 @@ pushd ../pulp-openapi-generator

# Workaround: Domains are not supported by the published bindings.
# Sadly: Different pulpcore-versions aren't either...
# So we exclude the prebuilt ones only for domains disabled.
if [ "$(jq -r '.domain_enabled' <<<"${REPORTED_STATUS}")" = "true" ] || [ "$(jq -r '.online_workers[0].pulp_href|startswith("/pulp/api/v3/")' <<< "${REPORTED_STATUS}")" = "false" ]
# * In the 'pulp' scenario we use the published/prebuilt bindings, so we can test it.
# * In other scenarios we generate new bindings from server spec, so we have a more
# reliable client.
if [ "$TEST" = "pulp" ]
then
BUILT_CLIENTS=""
else
BUILT_CLIENTS=" ansible "
else
BUILT_CLIENTS=""
fi

for ITEM in $(jq -r '.versions[] | tojson' <<<"${REPORTED_STATUS}")
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,5 +147,5 @@ jobs:
docker logs pulp || true
docker exec pulp ls -latr /etc/yum.repos.d/ || true
docker exec pulp cat /etc/yum.repos.d/* || true
docker exec pulp bash -c "pip3 list && pip3 install pipdeptree && pipdeptree"
docker exec pulp bash -c "pip3 list" || true
...
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ include test_requirements.txt
include unittest_requirements.txt
include pyproject.toml
include pulp_ansible/app/schema/*
exclude releasing.md
20 changes: 16 additions & 4 deletions pulp_ansible/tests/functional/api/git/test_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,27 @@ def test_sync_collection_from_git(ansible_repo, sync_and_count, ansible_distribu
collection_name = "pulp.squeezer"
with tempfile.TemporaryDirectory() as temp_dir:
# The install command needs --pre so a pre-release collection versions install
cmd = "ansible-galaxy collection install --pre {} -c -s {} -p {}".format(
collection_name, distribution.client_url, temp_dir
)

directory = "{}/ansible_collections/{}".format(temp_dir, collection_name.replace(".", "/"))

assert not path.exists(directory), "Directory {} already exists".format(directory)

subprocess.run(cmd.split())
subprocess.run(
[
"ansible-galaxy",
"collection",
"install",
"--pre",
collection_name,
"-c",
"-s",
distribution.client_url,
"-p",
temp_dir,
],
cwd=temp_dir,
check=True,
)

assert path.exists(directory), "Could not find directory {}".format(directory)

Expand Down
27 changes: 27 additions & 0 deletions releasing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[//]: # "WARNING: DO NOT EDIT!"
[//]: # ""
[//]: # "This file was generated by plugin_template, and is managed by it. Please use"
[//]: # "'./plugin-template --github pulp_ansible' to update this file."
[//]: # ""
[//]: # "For more info visit https://github.com/pulp/plugin_template"
# Releasing (For Internal Use)

This document outlines the steps to perform a release.

### Determine if a Release is Required
- Run the release checker script:
```
python3 .ci/scripts/check_release.py
```

### Create a New Y-branch (e.g., 3.23)
- If a new minor version (Y) is needed, trigger a [Create New Release Branch](https://github.com/pulp/pulp_ansible/actions/workflows/create-branch.yml) job via the GitHub Actions.
- Look for the "Bump minor version" pull request and merge it.

### Release a New Z-version (Patch Release) (e.g., 3.23.1, 3.22.12)
- Trigger a [Release Pipeline](https://github.com/pulp/pulp_ansible/actions/workflows/release.yml) job by specifying the release branch (X.Y) via the GitHub Actions.

### Final Steps (Optional but Recommended)
- Ensure the new version appears on PyPI.
- Verify that the changelog has been updated by looking for the "Update Changelog" pull request.
- Post a brief announcement about the new release on the [Pulp Discourse](https://discourse.pulpproject.org/).