From 81f7eebd9cf55e7c4facdfc85ade1a32d9e20117 Mon Sep 17 00:00:00 2001
From: pulpbot <pulp-infra@redhat.com>
Date: Fri, 16 Aug 2024 12:17:36 +0000
Subject: [PATCH] Update CI files

[noissue]
---
 .ci/scripts/validate_commit_message.py      |  8 +--
 .github/template_gitref                     |  2 +-
 .github/workflows/ci.yml                    |  4 ++
 .github/workflows/create-branch.yml         | 15 +++---
 .github/workflows/docs.yml                  | 54 +++++++++++++++++++++
 .github/workflows/scripts/before_install.sh |  2 +-
 .github/workflows/scripts/install.sh        | 19 ++------
 .github/workflows/scripts/script.sh         | 10 +---
 .github/workflows/test.yml                  |  3 +-
 .github/workflows/update_ci.yml             |  2 +-
 doc_requirements.txt                        | 20 +++-----
 template_config.yml                         |  6 +--
 12 files changed, 84 insertions(+), 61 deletions(-)
 create mode 100644 .github/workflows/docs.yml

diff --git a/.ci/scripts/validate_commit_message.py b/.ci/scripts/validate_commit_message.py
index d6f22c71..9c718a83 100755
--- a/.ci/scripts/validate_commit_message.py
+++ b/.ci/scripts/validate_commit_message.py
@@ -9,21 +9,17 @@
 import sys
 from pathlib import Path
 import subprocess
-
-
 import os
 import warnings
 from github import Github
 
-
 NO_ISSUE = "[noissue]"
 CHANGELOG_EXTS = [".feature", ".bugfix", ".doc", ".removal", ".misc", ".deprecation"]
+KEYWORDS = ["fixes", "closes"]
+
 sha = sys.argv[1]
 message = subprocess.check_output(["git", "log", "--format=%B", "-n 1", sha]).decode("utf-8")
 
-
-KEYWORDS = ["fixes", "closes"]
-
 g = Github(os.environ.get("GITHUB_TOKEN"))
 repo = g.get_repo("pulp/pulp_python")
 
diff --git a/.github/template_gitref b/.github/template_gitref
index 9e5cdc02..5df480f7 100644
--- a/.github/template_gitref
+++ b/.github/template_gitref
@@ -1 +1 @@
-2021.08.26-364-g6f9579c
+2021.08.26-378-g72f4b38
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 17800617..db87bfcc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -46,6 +46,9 @@ jobs:
         run: |
           python .ci/scripts/check_requirements.py
 
+  docs:
+    uses: "./.github/workflows/docs.yml"
+
   lint:
     uses: "./.github/workflows/lint.yml"
 
@@ -84,6 +87,7 @@ jobs:
       - "check-commits"
       - "lint"
       - "test"
+      - "docs"
     if: "always()"
     steps:
       - name: "Collect needed jobs results"
diff --git a/.github/workflows/create-branch.yml b/.github/workflows/create-branch.yml
index b207c880..b35c4bef 100644
--- a/.github/workflows/create-branch.yml
+++ b/.github/workflows/create-branch.yml
@@ -26,6 +26,12 @@ jobs:
           fetch-depth: 0
           path: "pulp_python"
 
+      - uses: "actions/checkout@v4"
+        with:
+          fetch-depth: 1
+          repository: "pulp/plugin_template"
+          path: "plugin_template"
+
       - uses: "actions/setup-python@v5"
         with:
           python-version: "3.11"
@@ -33,7 +39,7 @@ jobs:
       - name: "Install python dependencies"
         run: |
           echo ::group::PYDEPS
-          pip install bump2version jinja2 pyyaml packaging
+          pip install bump2version packaging -r plugin_template/requirements.txt
           echo ::endgroup::
 
       - name: "Setting secrets"
@@ -71,13 +77,6 @@ jobs:
         run: |
           find CHANGES -type f -regex ".*\.\(bugfix\|doc\|feature\|misc\|deprecation\|removal\)" -exec git rm {} +
 
-      - name: Checkout plugin template
-        uses: actions/checkout@v4
-        with:
-          repository: pulp/plugin_template
-          path: plugin_template
-          fetch-depth: 0
-
       - name: Update CI branches in template_config
         working-directory: plugin_template
         run: |
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 00000000..692ba626
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,54 @@
+# WARNING: DO NOT EDIT!
+#
+# This file was generated by plugin_template, and is managed by it. Please use
+# './plugin-template --github pulp_python' to update this file.
+#
+# For more info visit https://github.com/pulp/plugin_template
+
+---
+name: "Docs"
+on:
+  workflow_call:
+
+jobs:
+  test:
+    if: "endsWith(github.base_ref, 'main')"
+    runs-on: "ubuntu-20.04"
+    defaults:
+      run:
+        working-directory: "pulp_python"
+    steps:
+      - uses: "actions/checkout@v4"
+        with:
+          fetch-depth: 1
+          path: "pulp_python"
+      - uses: "actions/setup-python@v5"
+        with:
+          python-version: "3.11"
+      - name: "Setup cache key"
+        run: |
+          git ls-remote https://github.com/pulp/pulp-docs main | tee pulp-docs-main-sha
+      - uses: "actions/cache@v4"
+        with:
+          path: "~/.cache/pip"
+          key: ${{ runner.os }}-pip-${{ hashFiles('pulp-docs-main-sha') }}
+          restore-keys: |
+            ${{ runner.os }}-pip-
+      - name: "Install python dependencies"
+        run: |
+          echo ::group::PYDEPS
+          pip install -r doc_requirements.txt
+          echo ::endgroup::
+      - name: "Build changelog"
+        run: |
+          towncrier build --yes --version 4.0.0.ci
+      - name: "Build docs"
+        run: |
+          pulp-docs build
+
+  no-test:
+    if: "!endsWith(github.base_ref, 'main')"
+    runs-on: "ubuntu-20.04"
+    steps:
+      - run: |
+          echo "Skip docs testing on non-main branches."
diff --git a/.github/workflows/scripts/before_install.sh b/.github/workflows/scripts/before_install.sh
index 80be9043..eaefed7d 100755
--- a/.github/workflows/scripts/before_install.sh
+++ b/.github/workflows/scripts/before_install.sh
@@ -57,7 +57,7 @@ fi
 
 for i in {1..3}
 do
-  ansible-galaxy collection install "amazon.aws:1.5.0" && s=0 && break || s=$? && sleep 3
+  ansible-galaxy collection install "amazon.aws:8.1.0" && s=0 && break || s=$? && sleep 3
 done
 if [[ $s -gt 0 ]]
 then
diff --git a/.github/workflows/scripts/install.sh b/.github/workflows/scripts/install.sh
index 3cb61b79..491f8797 100755
--- a/.github/workflows/scripts/install.sh
+++ b/.github/workflows/scripts/install.sh
@@ -21,20 +21,13 @@ PLUGIN_SOURCE="./pulp_python/dist/pulp_python-${PLUGIN_VERSION}-py3-none-any.whl
 export PULP_API_ROOT="/pulp/"
 
 PIP_REQUIREMENTS=("pulp-cli")
-if [[ "$TEST" = "docs" || "$TEST" = "publish" ]]
-then
-  PIP_REQUIREMENTS+=("-r" "doc_requirements.txt")
-  git clone https://github.com/pulp/pulpcore.git ../pulpcore
-  PIP_REQUIREMENTS+=("psycopg2-binary" "-r" "../pulpcore/doc_requirements.txt")
-fi
 
+# This must be the **only** call to "pip install" on the test runner.
 pip install ${PIP_REQUIREMENTS[*]}
 
-if [[ "$TEST" != "docs" ]]
-then
-  PULP_CLI_VERSION="$(pip freeze | sed -n -e 's/pulp-cli==//p')"
-  git clone --depth 1 --branch "$PULP_CLI_VERSION" https://github.com/pulp/pulp-cli.git ../pulp-cli
-fi
+# Check out the pulp-cli branch matching the installed version.
+PULP_CLI_VERSION="$(pip freeze | sed -n -e 's/pulp-cli==//p')"
+git clone --depth 1 --branch "$PULP_CLI_VERSION" https://github.com/pulp/pulp-cli.git ../pulp-cli
 
 cd .ci/ansible/
 if [ "$TEST" = "s3" ]; then
@@ -128,9 +121,7 @@ if [ "${PULP_API_ROOT:-}" ]; then
 fi
 
 pulp config create --base-url https://pulp --api-root "$PULP_API_ROOT" --username "admin" --password "password"
-if [[ "$TEST" != "docs" ]]; then
-  cp ~/.config/pulp/cli.toml "${REPO_ROOT}/../pulp-cli/tests/cli.toml"
-fi
+cp ~/.config/pulp/cli.toml "${REPO_ROOT}/../pulp-cli/tests/cli.toml"
 
 ansible-playbook build_container.yaml
 ansible-playbook start_container.yaml
diff --git a/.github/workflows/scripts/script.sh b/.github/workflows/scripts/script.sh
index 0e9c935d..60284868 100755
--- a/.github/workflows/scripts/script.sh
+++ b/.github/workflows/scripts/script.sh
@@ -18,7 +18,7 @@ source .github/workflows/scripts/utils.sh
 export POST_SCRIPT=$PWD/.github/workflows/scripts/post_script.sh
 export FUNC_TEST_SCRIPT=$PWD/.github/workflows/scripts/func_test_script.sh
 
-# Needed for both starting the service and building the docs.
+# Needed for starting the service
 # Gets set in .github/settings.yml, but doesn't seem to inherited by
 # this script.
 export DJANGO_SETTINGS_MODULE=pulpcore.app.settings
@@ -26,14 +26,6 @@ export PULP_SETTINGS=$PWD/.ci/ansible/settings/settings.py
 
 export PULP_URL="https://pulp"
 
-if [[ "$TEST" = "docs" ]]; then
-  if [[ "$GITHUB_WORKFLOW" == "Python CI" ]]; then
-    towncrier build --yes --version 4.0.0.ci
-  fi
-  pulp-docs build
-  exit
-fi
-
 REPORTED_STATUS="$(pulp status)"
 
 echo "machine pulp
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index afc64d68..7ac023e9 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -22,7 +22,6 @@ jobs:
       matrix:
         env:
           - TEST: pulp
-          - TEST: docs
           - TEST: azure
           - TEST: s3
           - TEST: lowerbounds
@@ -72,7 +71,7 @@ jobs:
       - name: "Install python dependencies"
         run: |
           echo ::group::PYDEPS
-          pip install towncrier twine wheel httpie docker netaddr boto3 ansible mkdocs jq jsonpatch
+          pip install towncrier twine wheel httpie docker netaddr boto3 'ansible~=10.3.0' mkdocs jq jsonpatch
           echo "HTTPIE_CONFIG_DIR=$GITHUB_WORKSPACE/pulp_python/.ci/assets/httpie/" >> $GITHUB_ENV
           echo ::endgroup::
 
diff --git a/.github/workflows/update_ci.yml b/.github/workflows/update_ci.yml
index 65598424..fe7f3624 100644
--- a/.github/workflows/update_ci.yml
+++ b/.github/workflows/update_ci.yml
@@ -36,7 +36,7 @@ jobs:
       - name: "Install python dependencies"
         run: |
           echo ::group::PYDEPS
-          pip install gitpython requests packaging jinja2 pyyaml
+          pip install gitpython packaging -r plugin_template/requirements.txt
           echo ::endgroup::
 
       - name: "Configure Git with pulpbot name and email"
diff --git a/doc_requirements.txt b/doc_requirements.txt
index aeca75a0..6456b7d8 100644
--- a/doc_requirements.txt
+++ b/doc_requirements.txt
@@ -1,16 +1,8 @@
-build
-coreapi
-django
-djangorestframework
-django-filter
-drf-nested-routers
-mistune
-plantuml
-pyyaml
-sphinx
-sphinx-rtd-theme
-sphinxcontrib-openapi
+# WARNING: DO NOT EDIT!
+#
+# This file was generated by plugin_template, and is managed by it. Please use
+# './plugin-template --github pulp_python' to update this file.
+#
+# For more info visit https://github.com/pulp/plugin_template
 towncrier
-twine
-# Unified docs
 pulp-docs @ git+https://github.com/pulp/pulp-docs@main
diff --git a/template_config.yml b/template_config.yml
index 8710b782..3cdc761b 100644
--- a/template_config.yml
+++ b/template_config.yml
@@ -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 plugin_template@2021.08.26-364-g6f9579c
+# generated with plugin_template@2021.08.26-378-g72f4b38
 
 api_root: /pulp/
 black: false
@@ -12,7 +12,6 @@ check_stray_pulpcore_imports: true
 ci_base_image: ghcr.io/pulp/pulp-ci-centos9
 ci_env: {}
 ci_trigger: '{pull_request: {branches: [''*'']}}'
-ci_update_docs: false
 cli_package: pulp-cli
 cli_repo: https://github.com/pulp/pulp-cli.git
 core_import_allowed: []
@@ -20,13 +19,10 @@ deploy_client_to_pypi: true
 deploy_client_to_rubygems: true
 deploy_to_pypi: true
 disabled_redis_runners: []
-doc_requirements_from_pulpcore: true
 docker_fixtures: false
-docs_test: true
 flake8: true
 flake8_ignore: []
 github_org: pulp
-issue_tracker: github
 latest_release_branch: '3.12'
 lint_requirements: true
 noissue_marker: '[noissue]'