From 7db8bd8462c3a8d53f9c3f255dbbe59eb6336c75 Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Sat, 25 May 2024 19:05:55 +0100 Subject: [PATCH 01/10] move workflows to ivy repo --- .github/workflows/build-docs.yml | 76 +++++++++++++++++++++++ .github/workflows/docs.yml | 2 +- .github/workflows/publish-docs.yml | 97 ++++++++++++++++++++++++++++++ 3 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-docs.yml create mode 100644 .github/workflows/publish-docs.yml diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml new file mode 100644 index 0000000000000..a5447e20193c4 --- /dev/null +++ b/.github/workflows/build-docs.yml @@ -0,0 +1,76 @@ +name: Update docs +on: + workflow_call: + secrets: + SSH_GH_PAGES: + description: 'SSH key for GitHub Pages deployment' + required: true + 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 + +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 }} + ssh-key: ${{ secrets.SSH_GH_PAGES }} + + - 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 "ivydl.team@gmail.com" + git config --global user.name "ivy-seed" + git add versions/ + git commit -m "Add ${{ github.ref_name }} to ${{ inputs.repo-name }}.json" + git push diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7492ddc4c0c35..17502ee5dfae0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -11,5 +11,5 @@ on: jobs: update-docs: name: Update docs - uses: unifyai/workflows/.github/workflows/docs.yml@main + uses: ./.github/workflows/build-docs.yml secrets: inherit diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 0000000000000..42e1d329a92e5 --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,97 @@ +run-name: Publish ${{ inputs.version }} docs +on: + workflow_call: + secrets: + SSH_GH_PAGES: + description: 'SSH key for GitHub Pages deployment' + required: true + 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 + +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/github-pages-deploy-action@v4.6.1 + with: + folder: docs/build + target-folder: "${{ inputs.version != 'dev' && format('{0}/', inputs.version) || '' }}${{ inputs.repo-name }}" + ssh-key: ${{ secrets.SSH_GH_PAGES }} + branch: main + git-config-name: ivy-seed + git-config-email: ivydl.team@gmail.com + repository-name: ${{ inputs.docs-repo }} + clean: true From dcea3c414b44fa1e1e9f2a388ba0fb164da2a939 Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Sun, 26 May 2024 16:17:06 +0100 Subject: [PATCH 02/10] run on push --- .github/workflows/docs.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 17502ee5dfae0..756dc0ef039b4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -2,10 +2,6 @@ name: Update docs on: workflow_call: push: - branches: - - main - tags: - - v* workflow_dispatch: jobs: From c2a3b84e41e271f7c0d6081a300e4c82d0566e61 Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Sun, 26 May 2024 16:40:27 +0100 Subject: [PATCH 03/10] fix permissions --- .github/workflows/build-docs.yml | 4 ++-- .github/workflows/publish-docs.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index a5447e20193c4..dfde871e8dbf5 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -69,8 +69,8 @@ jobs: - name: Commit and push run: | - git config --global user.email "ivydl.team@gmail.com" - git config --global user.name "ivy-seed" + git config --global user.email "hello@transpile-ai.com" + 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 diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 42e1d329a92e5..9be3c9ca75008 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -91,7 +91,7 @@ jobs: target-folder: "${{ inputs.version != 'dev' && format('{0}/', inputs.version) || '' }}${{ inputs.repo-name }}" ssh-key: ${{ secrets.SSH_GH_PAGES }} branch: main - git-config-name: ivy-seed - git-config-email: ivydl.team@gmail.com + git-config-name: ivy-dev-bot + git-config-email: hello@transpile-ai.com repository-name: ${{ inputs.docs-repo }} clean: true From fa520c47f25c570f417cc77ca8fb870d9af22d2f Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Sun, 26 May 2024 17:21:09 +0100 Subject: [PATCH 04/10] update keys --- .github/workflows/build-docs.yml | 6 +----- .github/workflows/publish-docs.yml | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index dfde871e8dbf5..fefb0af80290d 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -1,10 +1,6 @@ name: Update docs on: workflow_call: - secrets: - SSH_GH_PAGES: - description: 'SSH key for GitHub Pages deployment' - required: true inputs: package-dependencies: description: 'Apt package dependencies' @@ -56,7 +52,7 @@ jobs: uses: actions/checkout@v4 with: repository: ${{ inputs.docs-repo }} - ssh-key: ${{ secrets.SSH_GH_PAGES }} + ssh-key: ${{ secrets.DOCS_DEPLOY_KEY }} - name: Setup Python uses: actions/setup-python@v4 diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 9be3c9ca75008..0b680c9922f64 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -1,10 +1,6 @@ run-name: Publish ${{ inputs.version }} docs on: workflow_call: - secrets: - SSH_GH_PAGES: - description: 'SSH key for GitHub Pages deployment' - required: true inputs: version: description: 'Version of the docs' @@ -89,7 +85,7 @@ jobs: with: folder: docs/build target-folder: "${{ inputs.version != 'dev' && format('{0}/', inputs.version) || '' }}${{ inputs.repo-name }}" - ssh-key: ${{ secrets.SSH_GH_PAGES }} + ssh-key: ${{ secrets.DOCS_DEPLOY_KEY }} branch: main git-config-name: ivy-dev-bot git-config-email: hello@transpile-ai.com From 5cc2aa22e9d0d0c556368acad6dac204b701798a Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Sun, 26 May 2024 17:34:33 +0100 Subject: [PATCH 05/10] replace key with dev bot pat --- .github/workflows/build-docs.yml | 2 +- .github/workflows/publish-docs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index fefb0af80290d..d35646f5c8ee1 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -52,7 +52,7 @@ jobs: uses: actions/checkout@v4 with: repository: ${{ inputs.docs-repo }} - ssh-key: ${{ secrets.DOCS_DEPLOY_KEY }} + token: ${{ secrets.DEV_BOT_PAT }} - name: Setup Python uses: actions/setup-python@v4 diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 0b680c9922f64..5c855fc957357 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -85,7 +85,7 @@ jobs: with: folder: docs/build target-folder: "${{ inputs.version != 'dev' && format('{0}/', inputs.version) || '' }}${{ inputs.repo-name }}" - ssh-key: ${{ secrets.DOCS_DEPLOY_KEY }} + token: ${{ secrets.DEV_BOT_PAT }} branch: main git-config-name: ivy-dev-bot git-config-email: hello@transpile-ai.com From cdf3dddb59edaa1022277a3de31cb303a983e388 Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Sun, 26 May 2024 18:03:11 +0100 Subject: [PATCH 06/10] update permissions --- .github/workflows/build-docs.yml | 3 +++ .github/workflows/publish-docs.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index d35646f5c8ee1..11dffd965842f 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -18,6 +18,9 @@ on: default: Transpile-AI/docs type: string +permissions: + contents: write + jobs: publish-dev-docs: name: Publish dev docs diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 5c855fc957357..281f881a66d69 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -23,6 +23,9 @@ on: default: Transpile-AI/docs type: string +permissions: + contents: write + jobs: publish-docs: runs-on: ubuntu-latest From 51e594652d553b31455aa0216a8495a236649dab Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Sun, 26 May 2024 18:05:44 +0100 Subject: [PATCH 07/10] update permissions --- .github/workflows/docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 756dc0ef039b4..ec5da65127cd9 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -4,6 +4,9 @@ on: push: workflow_dispatch: +permissions: + contents: write + jobs: update-docs: name: Update docs From 505c55bb90062a5959564b10af647877ee611d2a Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Sun, 26 May 2024 19:07:37 +0100 Subject: [PATCH 08/10] update permissions --- .github/workflows/publish-docs.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 281f881a66d69..d359a38bf6e70 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -85,10 +85,11 @@ jobs: - name: Deploy to GitHub Pages uses: JamesIves/github-pages-deploy-action@v4.6.1 + env: + GITHUB_TOKEN: ${{ secrets.DEV_BOT_PAT }} with: folder: docs/build target-folder: "${{ inputs.version != 'dev' && format('{0}/', inputs.version) || '' }}${{ inputs.repo-name }}" - token: ${{ secrets.DEV_BOT_PAT }} branch: main git-config-name: ivy-dev-bot git-config-email: hello@transpile-ai.com From f5df9660c5e83826af2da0b68f7a05db4961516d Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Mon, 27 May 2024 01:03:50 +0100 Subject: [PATCH 09/10] use ssh key --- .github/workflows/publish-docs.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index d359a38bf6e70..ba5f2e05f8d42 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -85,11 +85,10 @@ jobs: - name: Deploy to GitHub Pages uses: JamesIves/github-pages-deploy-action@v4.6.1 - env: - GITHUB_TOKEN: ${{ secrets.DEV_BOT_PAT }} 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: hello@transpile-ai.com From 80ab88c3c8ece1aa753a2cc43c7c58e350146612 Mon Sep 17 00:00:00 2001 From: Sam-Armstrong Date: Mon, 27 May 2024 18:32:11 +0100 Subject: [PATCH 10/10] run workflow nightly rather than on commit --- .github/workflows/docs.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ec5da65127cd9..974974fdb332a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,8 +1,9 @@ name: Update docs on: workflow_call: - push: workflow_dispatch: + schedule: + - cron: "0 3 * * *" permissions: contents: write