Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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