-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revised docs deployments #947
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
name: Build Docs for the latest | ||
|
||
on: | ||
workflow_dispatch: # run on request (no need for PR) | ||
push: | ||
branches: | ||
- develop | ||
|
||
jobs: | ||
Build-Docs: | ||
runs-on: ubuntu-20.04 | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.10" | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install tox | ||
sudo apt-get install pandoc | ||
- name: Build-Docs | ||
run: | | ||
tox -e build-docs | ||
- name: Create gh-pages branch | ||
run: | | ||
echo RELEASE_VERSION=${GITHUB_REF#refs/*/} >> $GITHUB_ENV | ||
echo SOURCE_NAME=${GITHUB_REF#refs/*/} >> $GITHUB_OUTPUT | ||
echo SOURCE_BRANCH=${GITHUB_REF#refs/heads/} >> $GITHUB_OUTPUT | ||
echo SOURCE_TAG=${GITHUB_REF#refs/tags/} >> $GITHUB_OUTPUT | ||
existed_in_remote=$(git ls-remote --heads origin gh-pages) | ||
|
||
if [[ -z ${existed_in_remote} ]]; then | ||
echo "Creating gh-pages branch" | ||
git config --local user.email "action@github.com" | ||
git config --local user.name "GitHub Action" | ||
git checkout --orphan gh-pages | ||
git reset --hard | ||
touch .nojekyll | ||
git add .nojekyll | ||
git commit -m "Initializing gh-pages branch" | ||
git push origin gh-pages | ||
git checkout ${{steps.branch_name.outputs.SOURCE_NAME}} | ||
echo "Created gh-pages branch" | ||
else | ||
echo "Branch gh-pages already exists" | ||
fi | ||
- name: Commit docs to gh-pages branch | ||
run: | | ||
git fetch | ||
git checkout gh-pages | ||
mkdir -p /tmp/docs_build | ||
cp -r docs/build/html/* /tmp/docs_build/ | ||
rm -rf ${{ env.RELEASE_VERSION }}/* | ||
echo '<html><head><meta http-equiv="refresh" content="0; url=stable/" /></head></html>' > index.html | ||
mkdir -p ${{ env.RELEASE_VERSION }} | ||
cp -r /tmp/docs_build/* ./${{ env.RELEASE_VERSION }} | ||
ln -sfn ${{ env.RELEASE_VERSION }} latest | ||
rm -rf /tmp/docs_build | ||
git config --local user.email "action@github.com" | ||
git config --local user.name "GitHub Action" | ||
git add ./index.html ./latest ${{ env.RELEASE_VERSION }} | ||
git commit -m "Update documentation" -a || true | ||
- name: Push changes | ||
uses: ad-m/github-push-action@master | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
branch: gh-pages |
Original file line number | Diff line number | Diff line change | ||
---|---|---|---|---|
@@ -1,7 +1,6 @@ | ||||
name: Build Docs for releases | ||||
|
||||
on: | ||||
workflow_dispatch: # run on request (no need for PR) | ||||
release: | ||||
types: [published] | ||||
|
||||
|
@@ -20,15 +19,53 @@ jobs: | |||
with: | ||||
python-version: "3.10" | ||||
- name: Install dependencies | ||||
run: python -m pip install tox | ||||
run: | | ||||
python -m pip install tox | ||||
sudo apt-get install pandoc | ||||
- name: Build-Docs | ||||
run: | | ||||
tox -e build-docs | ||||
- name: Create gh-pages branch | ||||
run: | | ||||
echo RELEASE_VERSION=${GITHUB_REF#refs/*/} >> $GITHUB_ENV | ||||
tox -e build-doc | ||||
# - name: Deploy | ||||
# uses: peaceiris/actions-gh-pages@v3 | ||||
# with: | ||||
# github_token: ${{ secrets.GITHUB_TOKEN }} | ||||
# publish_dir: ./public | ||||
# destination_dir: ${{ env.RELEASE_VERSION }} | ||||
# force_orphan: true | ||||
echo SOURCE_NAME=${GITHUB_REF#refs/*/} >> $GITHUB_OUTPUT | ||||
echo SOURCE_BRANCH=${GITHUB_REF#refs/heads/} >> $GITHUB_OUTPUT | ||||
echo SOURCE_TAG=${GITHUB_REF#refs/tags/} >> $GITHUB_OUTPUT | ||||
existed_in_remote=$(git ls-remote --heads origin gh-pages) | ||||
|
||||
if [[ -z ${existed_in_remote} ]]; then | ||||
echo "Creating gh-pages branch" | ||||
git config --local user.email "action@github.com" | ||||
git config --local user.name "GitHub Action" | ||||
git checkout --orphan gh-pages | ||||
git reset --hard | ||||
touch .nojekyll | ||||
git add .nojekyll | ||||
git commit -m "Initializing gh-pages branch" | ||||
git push origin gh-pages | ||||
git checkout ${{steps.branch_name.outputs.SOURCE_NAME}} | ||||
echo "Created gh-pages branch" | ||||
else | ||||
echo "Branch gh-pages already exists" | ||||
fi | ||||
- name: Commit docs to gh-pages branch | ||||
run: | | ||||
git fetch | ||||
git checkout gh-pages | ||||
mkdir -p /tmp/docs_build | ||||
cp -r docs/build/html/* /tmp/docs_build/ | ||||
rm -rf ${{ env.RELEASE_VERSION }}/* | ||||
echo '<html><head><meta http-equiv="refresh" content="0; url=stable/" /></head></html>' > index.html | ||||
mkdir -p ${{ env.RELEASE_VERSION }} | ||||
cp -r /tmp/docs_build/* ./${{ env.RELEASE_VERSION }} | ||||
ln -sfn ${{ env.RELEASE_VERSION }} stable | ||||
rm -rf /tmp/docs_build | ||||
git config --local user.email "action@github.com" | ||||
git config --local user.name "GitHub Action" | ||||
git add ./index.html ./stable ${{ env.RELEASE_VERSION }} | ||||
git commit -m "Update documentation" -a || true | ||||
- name: Push changes | ||||
uses: ad-m/github-push-action@master | ||||
with: | ||||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||||
Comment on lines
+31
to
+70
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I recommend you to wrap up the common part. For example,
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's good idea but I don't have enough idea at this moment because the commit steps need to update different links - |
||||
branch: gh-pages |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
url=stable
, is it correct?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes. gh-pages can only serve single set of static pages so the redirecting to the 'stable' should be the default docs to this repo.