Files
ansible-docs/.github/workflows/reusable-deploy-docs.yaml
dependabot[bot] ade186daf4 Bump actions/download-artifact from 7 to 8 (#3506)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 08:38:23 +00:00

135 lines
4.0 KiB
YAML

---
name: Deploy docs
"on":
workflow_call:
inputs:
repository-owner:
description: GitHub account or org that owns the repository
type: string
required: false
default: ansible
repository-branch:
description: Branch, tag, or commit SHA
type: string
required: false
default: devel
ansible-package-version:
type: string
description: Ansible community package version
required: false
default: devel
deployment-environment:
description: Deployment environment
type: string
required: false
default: test
secrets:
DEPLOY_DOC_BUILD:
required: true
jobs:
log-inputs:
runs-on: ubuntu-latest
steps:
- name: Log the workflow inputs if deployed
env:
deployment_environment: "${{ inputs.deployment-environment }}"
package_version: "${{ inputs.ansible-package-version }}"
owner: "${{ inputs.repository-owner }}"
branch: "${{ inputs.repository-branch }}"
run: |
{
echo "## Deployment details :shipit:";
echo "Publish to: ${deployment_environment}";
echo "Package version: ${package_version}";
echo "Owner: ${owner}";
echo "Branch: ${branch}";
} >> "${GITHUB_STEP_SUMMARY}"
deploy-package-docs:
runs-on: ubuntu-latest
environment:
name: deploy-package-docs
url: ${{ env.ENV_URL }}
env:
DEST_REPO: ansible-community/package-doc-builds
USER_EMAIL: "41898282+github-actions[bot]@users.noreply.github.com"
USER_NAME: "github-actions[bot]"
steps:
- name: Download the build archive
uses: actions/download-artifact@v8
with:
name: package-docs-build
- name: Extract the tarball
run: >-
tar -xvzf
ansible-package-docs-html-*.tar.gz
--one-top-level
- name: Set the production branch and url
if: inputs.deployment-environment == 'production'
env:
BRANCH_NAME: ${{ inputs.ansible-package-version }}
PROD_URL: https://ansible.readthedocs.io/projects/ansible
run: |
echo "BRANCH=${BRANCH_NAME}" >> "${GITHUB_ENV}"
echo "ENV_URL=${PROD_URL}/${BRANCH_NAME}" >> "${GITHUB_ENV}"
- name: Set the test branch and url
if: inputs.deployment-environment == 'test'
env:
TEST_URL: https://ansible-community.github.io/package-doc-builds
run: |
echo "BRANCH=gh-pages" >> "${GITHUB_ENV}"
echo "ENV_URL=${TEST_URL}" >> "${GITHUB_ENV}"
- name: Checkout the deploy directory
uses: actions/checkout@v6
with:
repository: ${{ env.DEST_REPO }}
ref: ${{ env.BRANCH }}
path: deploy-directory
fetch-depth: 0
ssh-key: ${{ secrets.DEPLOY_DOC_BUILD }}
persist-credentials: true
- name: Copy the generated HTML and assets for production
run: >-
rsync -av --delete --mkpath
ansible-package-docs-html-*/
deploy-directory/docs
- name: Create a norobots.txt file for the test site
if: inputs.deployment-environment == 'test'
run: |
echo "User-agent: *" > deploy-directory/docs/norobots.txt
echo "Disallow: /" >> deploy-directory/docs/norobots.txt
- name: Configure the git user
run: |
git config --local user.email "${USER_EMAIL}"
git config --local user.name "${USER_NAME}"
working-directory: deploy-directory
- name: Git add the generated HTML and assets
run: git add ./docs --all --force
working-directory: deploy-directory
- name: Commit generated HTML and assets
run: >-
git diff-index --quiet HEAD ||
git commit -m "Push docs build $(date '+%Y-%m-%d')-${{
github.run_id
}}-${{
github.run_number
}}-${{
github.run_attempt
}}"
working-directory: deploy-directory
- name: Push build to deploy repository
run: git push origin
working-directory: deploy-directory