Skip to content
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

fix: doc building pipeline #28760

Merged
merged 10 commits into from
May 27, 2024
Merged
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
75 changes: 75 additions & 0 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Update docs
on:
workflow_call:
inputs:
package-dependencies:
description: 'Apt package dependencies'
required: false
default: ''
type: string
repo-name:
description: 'Repo display name in the URL'
required: false
default: ${{ github.event.repository.name }}
type: string
docs-repo:
description: 'Repo to hold the docs'
required: false
default: Transpile-AI/docs
type: string

permissions:
contents: write

jobs:
publish-dev-docs:
name: Publish dev docs
uses: ./.github/workflows/publish-docs.yml
secrets: inherit
concurrency:
group: dev-docs
cancel-in-progress: true
with:
package-dependencies: ${{ inputs.package-dependencies }}
repo-name: ${{ inputs.repo-name }}
docs-repo: ${{ inputs.docs-repo }}

publish-release-docs:
name: Publish release docs
needs: publish-dev-docs
uses: ./.github/workflows/publish-docs.yml
if: always() && startsWith(github.ref, 'refs/tags')
secrets: inherit
with:
version: ${{ github.ref_name }}
package-dependencies: ${{ inputs.package-dependencies }}
repo-name: ${{ inputs.repo-name }}
docs-repo: ${{ inputs.docs-repo }}

update-versions:
name: Update versions.json
needs: publish-release-docs
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️ Docs
uses: actions/checkout@v4
with:
repository: ${{ inputs.docs-repo }}
token: ${{ secrets.DEV_BOT_PAT }}

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: Add version to ${{ inputs.repo-name }}.json
run: |
python versions/add_version.py ${{ inputs.repo-name }} ${{ github.ref_name }}

- name: Commit and push
run: |
git config --global user.email "[email protected]"
git config --global user.name "ivy-dev-bot"
git add versions/
git commit -m "Add ${{ github.ref_name }} to ${{ inputs.repo-name }}.json"
git push
12 changes: 6 additions & 6 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
name: Update docs
on:
workflow_call:
push:
branches:
- main
tags:
- v*
workflow_dispatch:
schedule:
- cron: "0 3 * * *"

permissions:
contents: write

jobs:
update-docs:
name: Update docs
uses: unifyai/workflows/.github/workflows/docs.yml@main
uses: ./.github/workflows/build-docs.yml
secrets: inherit
96 changes: 96 additions & 0 deletions .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
run-name: Publish ${{ inputs.version }} docs
on:
workflow_call:
inputs:
version:
description: 'Version of the docs'
required: false
default: 'dev'
type: string
package-dependencies:
description: 'Apt package dependencies'
required: false
default: ''
type: string
repo-name:
description: 'Repo display name in the URL'
required: false
default: ${{ github.event.repository.name }}
type: string
docs-repo:
description: 'Repo to hold the docs'
required: false
default: Transpile-AI/docs
type: string

permissions:
contents: write

jobs:
publish-docs:
runs-on: ubuntu-latest
name: Publish ${{ inputs.version }} docs
steps:
- name: Checkout 🛎️ ${{ inputs.repo-name }}
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- name: Checkout 🛎️ Doc-builder
uses: actions/checkout@v4
with:
repository: Transpile-AI/doc-builder
path: .doc-builder

- name: Install apt dependencies
if: inputs.package-dependencies != ''
run: |
sudo apt-get update
sudo apt-get install -y ${{ inputs.package-dependencies }}

- name: Setup Python
uses: actions/setup-python@v4
id: setup-python
with:
python-version: '3.10'

- name: Get cache week key
id: get-cache-week-key
run: |
echo "week-key=$(date +'%Y-%V')" >> $GITHUB_OUTPUT

- name: Cache dependencies
uses: actions/cache@v3
id: cache
with:
path: ./.venv
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ steps.get-cache-week-key.outputs.week-key }}
restore-keys: |
${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-

- name: Create virtual environment
if: steps.cache.outputs.cache-hit != 'true'
run: |
python -m venv .venv

- name: Build docs
run: |
source .venv/bin/activate
pip install --upgrade pip
pip install wheel setuptools
cd .doc-builder
export IVY_VERSION=${{ inputs.version }}
./make_docs_without_docker.sh ..

- name: Deploy to GitHub Pages
uses: JamesIves/[email protected]
with:
folder: docs/build
target-folder: "${{ inputs.version != 'dev' && format('{0}/', inputs.version) || '' }}${{ inputs.repo-name }}"
ssh-key: ${{ secrets.DOCS_DEPLOY_KEY }}
branch: main
git-config-name: ivy-dev-bot
git-config-email: [email protected]
repository-name: ${{ inputs.docs-repo }}
clean: true
Loading