Solved the TC Issue raised #63223
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Doc Build and Upload | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - 3.0.x | |
| tags: | |
| - '*' | |
| pull_request: | |
| branches: | |
| - main | |
| - 3.0.x | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'The pandas version to override' | |
| required: false | |
| type: string | |
| publish_prod: | |
| description: 'Publish to production' | |
| type: boolean | |
| default: false | |
| defaults: | |
| run: | |
| shell: bash -euox pipefail {0} | |
| permissions: {} | |
| jobs: | |
| web_and_docs: | |
| name: Doc Build and Upload | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| contents: read | |
| concurrency: | |
| # https://github.community/t/concurrecy-not-work-for-push/183068/7 | |
| group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-web-docs | |
| cancel-in-progress: true | |
| steps: | |
| - name: Set pandas version | |
| env: | |
| INPUT_VERSION: ${{ github.event.inputs.version }} | |
| EVENT_NAME: ${{ github.event_name }} | |
| INPUT_PUBLISH_PROD: ${{ github.event.inputs.publish_prod }} | |
| run: | | |
| # tags include a `v` prefix. | |
| tag_version_pat="^v[0-9]+\.[0-9]+\.[0-9]+(rc[0-9]+)?$" | |
| version_pat="^[0-9]+\.[0-9]+\.[0-9]+(rc[0-9]+)?$" | |
| if [[ -n "$INPUT_VERSION" ]]; then | |
| PANDAS_VERSION="$INPUT_VERSION" | |
| echo "PANDAS_VERSION=$PANDAS_VERSION" >> "$GITHUB_ENV" | |
| elif [[ "$EVENT_NAME" == "push" && "$GITHUB_REF_NAME" =~ $tag_version_pat ]]; then | |
| PANDAS_VERSION="${GITHUB_REF_NAME:1}" | |
| echo "PANDAS_VERSION=$PANDAS_VERSION" >> "$GITHUB_ENV" | |
| else | |
| PANDAS_VERSION="" | |
| fi | |
| if [[ "$EVENT_NAME" == "push" && -n "$PANDAS_VERSION" ]]; then | |
| PUBLISH_PROD="true" | |
| elif [[ "$INPUT_PUBLISH_PROD" == "true" ]]; then | |
| PUBLISH_PROD="true" | |
| else | |
| PUBLISH_PROD="false" | |
| fi | |
| echo "PUBLISH_PROD=$PUBLISH_PROD" >> "$GITHUB_ENV" | |
| if [[ "$PUBLISH_PROD" == "true" ]] && | |
| [[ ! "$PANDAS_VERSION" =~ $version_pat ]] | |
| then | |
| echo "Invalid version $PANDAS_VERSION for publishing to prod." | |
| exit 1 | |
| fi | |
| - name: Checkout | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Create virtual environment with Pixi | |
| uses: ./.github/actions/setup-pixi | |
| with: | |
| environment: docs-and-web | |
| - name: Build pandas | |
| run: | | |
| pixi run \ | |
| --environment docs-and-web \ | |
| build-pandas \ | |
| --editable \ | |
| -Csetup-args="--werror" | |
| - name: Test website | |
| run: | | |
| pixi run \ | |
| --environment docs-and-web \ | |
| ci-test-website | |
| - name: Test build single page doc | |
| run: | | |
| pixi run \ | |
| --environment docs-and-web \ | |
| ci-test-single-page-doc pandas.Series.value_counts | |
| pixi run \ | |
| --environment docs-and-web \ | |
| ci-test-single-page-doc pandas.Series.str.split | |
| - name: Test nbconvert doc notebooks | |
| run: | | |
| pixi run \ | |
| --environment docs-and-web \ | |
| ci-test-nbconvert-doc-notebooks "$(find doc/source -name '*.ipynb')" | |
| - name: Build website | |
| run: | | |
| pixi run \ | |
| --environment docs-and-web \ | |
| ci-build-website | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build documentation | |
| run: | | |
| pixi run \ | |
| --environment docs-and-web \ | |
| ci-build-documentation \ | |
| html | |
| - name: Build the interactive terminal | |
| working-directory: web/interactive_terminal | |
| run: | | |
| pixi run \ | |
| --environment docs-and-web \ | |
| ci-build-interactive_terminal | |
| - name: Build documentation zip | |
| run: | | |
| pixi run \ | |
| --environment docs-and-web \ | |
| ci-build-documentation \ | |
| zip_html | |
| - name: Install ssh key | |
| run: | | |
| mkdir -m 700 -p ~/.ssh | |
| echo "${{ secrets.server_ssh_key }}" > ~/.ssh/id_rsa | |
| chmod 600 ~/.ssh/id_rsa | |
| echo "${{ secrets.server_ip }} ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFjYkJBk7sos+r7yATODogQc3jUdW1aascGpyOD4bohj8dWjzwLJv/OJ/fyOQ5lmj81WKDk67tGtqNJYGL9acII=" > ~/.ssh/known_hosts | |
| if: (github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/'))) || github.event_name == 'workflow_dispatch' | |
| - name: Copy cheatsheets into site directory | |
| run: cp doc/cheatsheet/Pandas_Cheat_Sheet* web/build/ | |
| - name: Upload web | |
| run: rsync -az --delete --exclude='pandas-docs' --exclude='docs' --exclude='benchmarks' web/build/ web@${{ secrets.server_ip }}:/var/www/html | |
| if: false # github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| - name: Upload dev docs | |
| run: rsync -az --delete doc/build/html/ web@${{ secrets.server_ip }}:/var/www/html/pandas-docs/dev | |
| if: false # github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| - name: Upload prod docs | |
| run: rsync -az --delete doc/build/html/ web@${{ secrets.server_ip }}:/var/www/html/pandas-docs/version/${{ env.PANDAS_VERSION }} | |
| if: false # ${{ env.PUBLISH_PROD == 'true' }} | |
| - name: Move docs into site directory | |
| run: mv doc/build/html web/build/docs | |
| - name: Save website as an artifact | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: website | |
| path: web/build | |
| retention-days: 14 |