[BugFix, CI] Fix GPU benchmarks #542
Workflow file for this run
This file contains 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
# This workflow builds the tensordict docs and deploys them to gh-pages. | |
name: Generate documentation | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- "*" | |
workflow_dispatch: | |
concurrency: | |
# Documentation suggests ${{ github.head_ref }}, but that's only available on pull_request/pull_request_target triggers, so using ${{ github.ref }}. | |
# On master, we want all builds to complete even if merging happens faster to make it easier to discover at which point something broke. | |
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && format('ci-master-{0}', github.sha) || format('ci-{0}', github.ref) }} | |
cancel-in-progress: true | |
jobs: | |
build-docs: | |
strategy: | |
matrix: | |
python_version: ["3.9"] | |
cuda_arch_version: ["12.1"] | |
uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | |
with: | |
repository: pytorch/tensordict | |
upload-artifact: docs | |
runner: "linux.g5.4xlarge.nvidia.gpu" | |
docker-image: "nvidia/cudagl:11.4.0-base" | |
timeout: 120 | |
script: | | |
set -e | |
set -v | |
apt-get update && apt-get install -y git wget gcc g++ | |
root_dir="$(pwd)" | |
conda_dir="${root_dir}/conda" | |
env_dir="${root_dir}/env" | |
os=Linux | |
# 1. Install conda at ./conda | |
printf "* Installing conda\n" | |
wget -O miniconda.sh "http://repo.continuum.io/miniconda/Miniconda3-latest-${os}-x86_64.sh" | |
bash ./miniconda.sh -b -f -p "${conda_dir}" | |
eval "$(${conda_dir}/bin/conda shell.bash hook)" | |
printf "* Creating a test environment\n" | |
conda create --prefix "${env_dir}" -y python=3.8 | |
printf "* Activating\n" | |
conda activate "${env_dir}" | |
# 2. upgrade pip, ninja and packaging | |
apt-get install python3.8 python3-pip unzip -y | |
python3 -m pip install --upgrade pip | |
python3 -m pip install setuptools ninja packaging -U | |
# 3. check python version | |
python3 --version | |
# 4. Check git version | |
git version | |
# 5. Install PyTorch | |
python3 -m pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cpu --quiet --root-user-action=ignore | |
# 6. Install tensordict | |
python3 setup.py develop | |
# 7. Install requirements | |
python3 -m pip install -r docs/requirements.txt --quiet --root-user-action=ignore | |
# 8. Test tensordict installation | |
mkdir _tmp | |
cd _tmp | |
PYOPENGL_PLATFORM=egl MUJOCO_GL=egl python3 -c """from tensordict import *""" | |
cd .. | |
# 10. Build doc | |
cd ./docs | |
make docs | |
cd .. | |
cp -r docs/build/html/* "${RUNNER_ARTIFACT_DIR}" | |
echo $(ls "${RUNNER_ARTIFACT_DIR}") | |
if [[ ${{ github.event_name == 'pull_request' }} ]]; then | |
cp -r docs/build/html/* "${RUNNER_DOCS_DIR}" | |
fi | |
upload: | |
needs: build-docs | |
if: github.repository == 'pytorch/tensordict' && github.event_name == 'push' && | |
((github.ref_type == 'branch' && github.ref_name == 'main') || github.ref_type == 'tag') | |
permissions: | |
contents: write | |
uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | |
with: | |
repository: pytorch/tensordict | |
download-artifact: docs | |
ref: gh-pages | |
test-infra-ref: main | |
script: | | |
set -euo pipefail | |
REF_TYPE=${{ github.ref_type }} | |
REF_NAME=${{ github.ref_name }} | |
# TODO: adopt this behaviour | |
# if [[ "${REF_TYPE}" == branch ]]; then | |
# TARGET_FOLDER="${REF_NAME}" | |
# elif [[ "${REF_TYPE}" == tag ]]; then | |
# case "${REF_NAME}" in | |
# *-rc*) | |
# echo "Aborting upload since this is an RC tag: ${REF_NAME}" | |
# exit 0 | |
# ;; | |
# *) | |
# # Strip the leading "v" as well as the trailing patch version. For example: | |
# # 'v0.15.2' -> '0.15' | |
# TARGET_FOLDER=$(echo "${REF_NAME}" | sed 's/v\([0-9]\+\)\.\([0-9]\+\)\.[0-9]\+/\1.\2/') | |
# ;; | |
# esac | |
# fi | |
TARGET_FOLDER="./" | |
echo "Target Folder: ${TARGET_FOLDER}" | |
# mkdir -p "${TARGET_FOLDER}" | |
# rm -rf "${TARGET_FOLDER}"/* | |
echo $(ls "${RUNNER_ARTIFACT_DIR}") | |
rsync -a "${RUNNER_ARTIFACT_DIR}"/ "${TARGET_FOLDER}" | |
git add "${TARGET_FOLDER}" || true | |
# if [[ "${TARGET_FOLDER}" == main ]]; then | |
# mkdir -p _static | |
# rm -rf _static/* | |
# cp -r "${TARGET_FOLDER}"/_static/* _static | |
# git add _static || true | |
# fi | |
git config user.name 'pytorchbot' | |
git config user.email '[email protected]' | |
git config http.postBuffer 524288000 | |
git commit -m "auto-generating sphinx docs" || true | |
git push |