Skip to content
Draft
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
29 changes: 11 additions & 18 deletions .github/workflows/code-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ jobs:
- name: Set up Conda
uses: ./.github/actions/setup-conda

- name: Build Pandas
id: build
- name: Install pandas in editable mode
id: build-editable
uses: ./.github/actions/build_pandas
with:
editable: false
editable: true

# The following checks are independent of each other and should still be run if one fails

Expand All @@ -58,47 +58,40 @@ jobs:

- name: Run doctests
run: cd ci && ./code_checks.sh doctests
if: ${{ steps.build.outcome == 'success' && always() }}

- name: Install pandas in editable mode
id: build-editable
if: ${{ steps.build.outcome == 'success' && always() }}
uses: ./.github/actions/build_pandas
with:
editable: true
if: ${{ steps.build-editable.outcome == 'success' && always() }}

- name: Check for no warnings when building single-page docs
run: ci/code_checks.sh single-docs
if: ${{ steps.build.outcome == 'success' && always() }}
if: ${{ steps.build-editable.outcome == 'success' && always() }}

- name: Run checks on imported code
run: ci/code_checks.sh code
if: ${{ steps.build.outcome == 'success' && always() }}
if: ${{ steps.build-editable.outcome == 'success' && always() }}

- name: Run docstring validation
run: ci/code_checks.sh docstrings
if: ${{ steps.build.outcome == 'success' && always() }}
if: ${{ steps.build-editable.outcome == 'success' && always() }}

- name: Run check of documentation notebooks
run: ci/code_checks.sh notebooks
if: ${{ steps.build.outcome == 'success' && always() }}
if: ${{ steps.build-editable.outcome == 'success' && always() }}

- name: Use existing environment for type checking
run: |
echo $PATH >> $GITHUB_PATH
echo "PYTHONHOME=$PYTHONHOME" >> $GITHUB_ENV
echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
if: ${{ steps.build.outcome == 'success' && always() }}
if: ${{ steps.build-editable.outcome == 'success' && always() }}

- name: Typing
uses: pre-commit/action@v3.0.1
with:
extra_args: --verbose --hook-stage manual --all-files
if: ${{ steps.build.outcome == 'success' && always() }}
if: ${{ steps.build-editable.outcome == 'success' && always() }}

- name: Run docstring validation script tests
run: pytest scripts
if: ${{ steps.build.outcome == 'success' && always() }}
if: ${{ steps.build-editable.outcome == 'success' && always() }}

asv-benchmarks:
name: ASV Benchmarks
Expand Down
236 changes: 118 additions & 118 deletions .github/workflows/docbuild-and-upload.yml
Original file line number Diff line number Diff line change
@@ -1,118 +1,118 @@
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

env:
ENV_FILE: environment.yml
PANDAS_CI: 1
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PANDAS_VERSION: "${{ github.event_name == 'workflow_dispatch' && github.event.inputs.version || '' }}"
PANDAS_VERSION_OVERRIDE: "${{ github.event_name == 'workflow_dispatch' && github.event.inputs.version || '' }}"

permissions:
contents: read

jobs:
web_and_docs:
name: Doc Build and Upload
runs-on: ubuntu-24.04

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

defaults:
run:
shell: bash -el {0}

steps:
- name: Set pandas version
run: |
echo "PANDAS_VERSION=${GITHUB_REF_NAME:1}" >> "$GITHUB_ENV"
if: github.event_name != 'workflow_dispatch'

- name: Show environment variables
run: |
echo "PANDAS_VERSION=${{ env.PANDAS_VERSION }}"
echo "PANDAS_VERSION_OVERRIDE=${{ env.PANDAS_VERSION_OVERRIDE }}"

- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Set up Conda
uses: ./.github/actions/setup-conda

- name: Build Pandas
uses: ./.github/actions/build_pandas

- name: Extra installs
# https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions-azure-pipelines-travis-ci-and-gitlab-ci-cd
run: sudo apt-get update && sudo apt-get install -y libegl1 libopengl0

- name: Test website
run: python -m pytest web/

- name: Build website
run: python web/pandas_web.py web/pandas --target-path=web/build

- name: Build documentation
run: doc/make.py --warnings-are-errors

- name: Build the interactive terminal
working-directory: web/interactive_terminal
run: jupyter lite build

- name: Build documentation zip
run: doc/make.py 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: 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: 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: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) || (github.event_name == 'workflow_dispatch' && env.PANDAS_VERSION_OVERRIDE != '')

- name: Move docs into site directory
run: mv doc/build/html web/build/docs

- name: Save website as an artifact
uses: actions/upload-artifact@v6
with:
name: website
path: web/build
retention-days: 14
#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
#
#env:
# ENV_FILE: environment.yml
# PANDAS_CI: 1
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# PANDAS_VERSION: "${{ github.event_name == 'workflow_dispatch' && github.event.inputs.version || '' }}"
# PANDAS_VERSION_OVERRIDE: "${{ github.event_name == 'workflow_dispatch' && github.event.inputs.version || '' }}"
#
#permissions:
# contents: read
#
#jobs:
# web_and_docs:
# name: Doc Build and Upload
# runs-on: ubuntu-24.04
#
# 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
#
# defaults:
# run:
# shell: bash -el {0}
#
# steps:
# - name: Set pandas version
# run: |
# echo "PANDAS_VERSION=${GITHUB_REF_NAME:1}" >> "$GITHUB_ENV"
# if: github.event_name != 'workflow_dispatch'
#
# - name: Show environment variables
# run: |
# echo "PANDAS_VERSION=${{ env.PANDAS_VERSION }}"
# echo "PANDAS_VERSION_OVERRIDE=${{ env.PANDAS_VERSION_OVERRIDE }}"
#
# - name: Checkout
# uses: actions/checkout@v6
# with:
# fetch-depth: 0
#
# - name: Set up Conda
# uses: ./.github/actions/setup-conda
#
# - name: Build Pandas
# uses: ./.github/actions/build_pandas
#
# - name: Extra installs
# # https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions-azure-pipelines-travis-ci-and-gitlab-ci-cd
# run: sudo apt-get update && sudo apt-get install -y libegl1 libopengl0
#
# - name: Test website
# run: python -m pytest web/
#
# - name: Build website
# run: python web/pandas_web.py web/pandas --target-path=web/build
#
# - name: Build documentation
# run: doc/make.py --warnings-are-errors
#
# - name: Build the interactive terminal
# working-directory: web/interactive_terminal
# run: jupyter lite build
#
# - name: Build documentation zip
# run: doc/make.py 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: 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: 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: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) || (github.event_name == 'workflow_dispatch' && env.PANDAS_VERSION_OVERRIDE != '')
#
# - name: Move docs into site directory
# run: mv doc/build/html web/build/docs
#
# - name: Save website as an artifact
# uses: actions/upload-artifact@v6
# with:
# name: website
# path: web/build
# retention-days: 14
Loading
Loading