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
1 change: 0 additions & 1 deletion .ci/scripts/skip_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
DOC_PATTERNS = [
r"^docs/",
r"\.md$",
r"\.txt$",
r"LICENSE.*",
r"CHANGELOG.*",
r"CHANGES.*",
Expand Down
44 changes: 36 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ jobs:
runs-on: ubuntu-latest
outputs:
run_tests: ${{ steps.check.outputs.run_tests }}
run_docs: ${{ steps.check.outputs.run_docs }}
steps:
- uses: "actions/checkout@v4"
with:
Expand All @@ -67,6 +68,13 @@ jobs:
shell: bash
id: check
run: |
# We only test docs on the default branch (usually main)
if [[ "${{ github.base_ref }}" == *"main" ]]; then
echo "run_docs=1" >> $GITHUB_OUTPUT
else
echo "run_docs=0" >> $GITHUB_OUTPUT
fi

set +e
BASE_REF=${{ github.event.pull_request.base.sha }}
echo "Checking against:"
Expand All @@ -80,7 +88,10 @@ jobs:
echo "run_tests=$exit_code" >> $GITHUB_OUTPUT

docs:
needs: "check-changes"
uses: "./.github/workflows/docs.yml"
with:
run_docs: ${{ needs.check-changes.outputs.run_docs }}

lint:
needs:
Expand Down Expand Up @@ -133,13 +144,30 @@ jobs:
- name: "Collect needed jobs results"
working-directory: "."
run: |
if [ ${{ needs.check-changes.outputs.run_tests }} == "1" ]; then
# Full test run - check all jobs
echo '${{toJson(needs)}}' | jq -r 'to_entries[]|select(.value.result!="success")|.key + ": " + .value.result'
echo '${{toJson(needs)}}' | jq -e 'to_entries|map(select(.value.result!="success"))|length == 0'
else
# Docs-only run - check only required jobs (exclude lint and test)
echo '${{toJson(needs)}}' | jq -r 'to_entries[]|select(.key != "lint" and .key != "test")|select(.value.result!="success")|.key + ": " + .value.result'
echo '${{toJson(needs)}}' | jq -e 'to_entries|map(select(.key != "lint" and .key != "test"))|map(select(.value.result!="success"))|length == 0'
RUN_TESTS=${{ needs.check-changes.outputs.run_tests }}
RUN_DOCS=${{ needs.check-changes.outputs.run_docs }}

check_jobs() {
local filter="$1"
local needs_json='${{toJson(needs)}}'
# output failed jobs after filter
echo "$needs_json" | jq -r "to_entries[]|select($filter)|select(.value.result!=\"success\")|.key + \": \" + .value.result"
# fails if not all selected jobs passed
echo "$needs_json" | jq -e "to_entries|map(select($filter))|map(select(.value.result!=\"success\"))|length == 0"
}

if [ "$RUN_TESTS" == "1" ] && [ "$RUN_DOCS" == "1" ]; then
FILTERS="true" # check all jobs
elif [ "$RUN_TESTS" == "1" ] && [ "$RUN_DOCS" == "0" ]; then
echo "Skipping docs: running on non-default branch"
FILTERS='.key != "docs"'
elif [ "$RUN_TESTS" == "0" ] && [ "$RUN_DOCS" == "1" ]; then
echo "Skipping tests: only doc changes"
FILTERS='.key != "lint" and .key != "test"'
else # RUN_TESTS=0, RUN_DOCS=0
echo "What is this PR doing??"
FILTERS='.key != "lint" and .key != "test" and .key != "docs"'
fi

check_jobs "$FILTERS"
echo "CI says: Looks good!"
15 changes: 6 additions & 9 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,14 @@
name: "Docs CI"
on:
workflow_call:
inputs:
run_docs:
description: "Whether to run docs jobs"
required: true
type: string

jobs:
changelog:
if: "endsWith(github.base_ref, 'main')"
runs-on: "ubuntu-latest"
defaults:
run:
Expand All @@ -34,14 +38,7 @@ jobs:
run: |
towncrier build --yes --version 4.0.0.ci
docs:
if: "endsWith(github.base_ref, 'main')"
if: ${{ inputs.run_docs == '1' }}
uses: 'pulp/pulp-docs/.github/workflows/docs-ci.yml@main'
with:
pulpdocs_ref: 'main'

no-test:
if: "!endsWith(github.base_ref, 'main')"
runs-on: "ubuntu-latest"
steps:
- run: |
echo "Skip docs testing on non-default branches."
5 changes: 4 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,11 @@ jobs:
pip install towncrier

- name: "Get release notes"
id: get_release_notes
id: "get_release_notes"
shell: "bash"
run: |
# The last commit before the release commit contains the release CHANGES fragments
git checkout "${TAG_NAME}~"
NOTES=$(towncrier build --draft --version $TAG_NAME)
echo "body<<EOF" >> $GITHUB_OUTPUT
echo "$NOTES" >> $GITHUB_OUTPUT
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scripts/build_python_client.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ rm -rf "pulp_python-client"
./gen-client.sh "../pulp_python/python-api.json" "python" python "pulp_python"

pushd pulp_python-client
python setup.py sdist bdist_wheel --python-tag py3
python -m build

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

tar cvf "../../pulp_python/python-python-client.tar" ./dist

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scripts/publish_client_pypi.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ fi

twine upload -u __token__ -p "${PYPI_API_TOKEN}" \
"dist/pulp_python_client-${VERSION}-py3-none-any.whl" \
"dist/pulp_python-client-${VERSION}.tar.gz" \
"dist/pulp_python_client-${VERSION}.tar.gz" \
;
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 setup.py sdist bdist_wheel --python-tag py3
python -m build
popd
else
if [ ! -f "${PACKAGE}-client/dist/${PACKAGE}_client-${VERSION}-py3-none-any.whl" ]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
- name: "Install python dependencies"
run: |
echo ::group::PYDEPS
pip install towncrier twine wheel httpie docker netaddr boto3 'ansible~=10.3.0' mkdocs jq jsonpatch bump-my-version 'click<8.3'
pip install build towncrier twine wheel httpie docker netaddr boto3 'ansible~=10.3.0' mkdocs jq jsonpatch bump-my-version 'click<8.3'
echo "HTTPIE_CONFIG_DIR=$GITHUB_WORKSPACE/pulp_python/.ci/assets/httpie/" >> $GITHUB_ENV
echo ::endgroup::

Expand Down
Loading