-
Notifications
You must be signed in to change notification settings - Fork 77
141 lines (123 loc) · 4.81 KB
/
docs.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# 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