From 48801dbc9a85f4ab32d1ae47b8113d6a9a5e6f72 Mon Sep 17 00:00:00 2001 From: Ivan Gabaldon Date: Thu, 8 May 2025 17:40:05 +0200 Subject: [PATCH] [mod] CI move build of online docs to dedicated workflow documentation.yml (#4733) documentation.yml will run after integration.yml COMPLETES successfully (will defer anything depending on integration.yml until heavy loads like container building are moved to separate workflows) and in master branch. Style changes, cleanup and improved integration with CI by leveraging the use of shared cache between all workflows (not functional until all workflows have been refactored). --- .github/workflows/documentation.yml | 67 +++++++++++++++++++++++++++++ .github/workflows/integration.yml | 43 ------------------ 2 files changed, 67 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/documentation.yml diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 000000000..6d9f2cac5 --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,67 @@ +--- +name: Documentation + +# yamllint disable-line rule:truthy +on: + workflow_dispatch: + workflow_run: + workflows: + - Integration + types: + - completed + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }} + cancel-in-progress: false + +permissions: + contents: read + +env: + PYTHON_VERSION: "3.13" + +jobs: + release: + if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' + name: Release + runs-on: ubuntu-24.04-arm + permissions: + # for JamesIves/github-pages-deploy-action to push + contents: write + + steps: + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "${{ env.PYTHON_VERSION }}" + + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: "false" + fetch-depth: "0" + + - name: Setup cache Python + uses: actions/cache@v4 + with: + key: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-${{ hashFiles('./requirements*.txt') }}" + restore-keys: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-" + path: "./local/" + + - name: Setup venv + run: make V=1 install + + - name: Build documentation + run: make V=1 docs.clean docs.html + + - name: Release + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: "dist/docs" + branch: "gh-pages" + commit-message: "[doc] build from commit ${{ github.sha }}" + # Automatically remove deleted files from the deploy branch + clean: "true" + single-commit: "true" diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index ddc0498f7..9ca96bf69 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -47,47 +47,6 @@ jobs: - name: Build themes run: make themes.all - documentation: - name: Documentation - runs-on: ubuntu-24.04 - permissions: - contents: write # for JamesIves/github-pages-deploy-action to push changes in repo - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: '0' - persist-credentials: false - - name: Install Ubuntu packages - run: sudo ./utils/searxng.sh install buildhost - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - architecture: 'x64' - - name: Cache Python dependencies - id: cache-python - uses: actions/cache@v4 - with: - path: | - ./local - ./.nvm - ./node_modules - key: python-ubuntu-24.04-3.12-${{ hashFiles('requirements*.txt', 'setup.py','.nvmrc', 'package.json') }} - - name: Build documentation - run: | - make V=1 docs.clean docs.html - - name: Deploy - if: github.ref == 'refs/heads/master' - uses: JamesIves/github-pages-deploy-action@3.7.1 - with: - GITHUB_TOKEN: ${{ github.token }} - BRANCH: gh-pages - FOLDER: dist/docs - CLEAN: true # Automatically remove deleted files from the deploy branch - SINGLE_COMMIT: true - COMMIT_MESSAGE: '[doc] build from commit ${{ github.sha }}' - babel: name: Update translations branch runs-on: ubuntu-24.04 @@ -95,7 +54,6 @@ jobs: needs: - python - themes - - documentation permissions: contents: write # for make V=1 weblate.push.translations steps: @@ -137,7 +95,6 @@ jobs: needs: - python - themes - - documentation env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} runs-on: ubuntu-24.04