From 982783d9ab9260cd5fdba35fd0a8381f5cf95358 Mon Sep 17 00:00:00 2001 From: Max Hilbrunner Date: Mon, 6 Jan 2025 17:28:16 +0100 Subject: [PATCH] CI: Add virtualenv --- .github/workflows/build_offline_docs.yml | 23 ++++++++++++++++++- .github/workflows/ci.yml | 28 ++++++++++++++++++++++-- conf.py | 2 +- 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_offline_docs.yml b/.github/workflows/build_offline_docs.yml index 6a54cadc7..390df8ecd 100644 --- a/.github/workflows/build_offline_docs.yml +++ b/.github/workflows/build_offline_docs.yml @@ -25,12 +25,33 @@ jobs: with: ref: ${{ matrix.branch }} + - name: Get Python version + id: pythonv + run: | + echo "PYTHON_VERSION=$(python --version)" >> $GITHUB_OUTPUT + + - name: Restore cached virtualenv + uses: actions/cache/restore@v4 + with: + key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }} + path: .venv + - name: Install dependencies run: | - sudo pip3 install -r requirements.txt + python -m venv .venv + source .venv/bin/activate + python -m pip install -r requirements.txt + echo "$VIRTUAL_ENV/bin" >> $GITHUB_PATH + echo "VIRTUAL_ENV=$VIRTUAL_ENV" >> $GITHUB_ENV sudo apt update sudo apt install parallel libwebp7 + - name: Save virtualenv cache + uses: actions/cache/save@v4 + with: + key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }} + path: .venv + - name: Sphinx - Build HTML run: make SPHINXOPTS='--color -j 4' html diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4df375e64..abc27413d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,9 +18,33 @@ jobs: - name: Style checks via pre-commit uses: pre-commit/action@v3.0.1 + - name: Get Python version + id: pythonv + run: | + echo "PYTHON_VERSION=$(python --version)" >> $GITHUB_OUTPUT + + - name: Restore cached virtualenv + uses: actions/cache/restore@v4 + with: + key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }} + path: .venv + - name: Install dependencies - run: sudo pip3 install -r requirements.txt + run: | + python -m venv .venv + source .venv/bin/activate + python -m pip install -r requirements.txt + echo "$VIRTUAL_ENV/bin" >> $GITHUB_PATH + echo "VIRTUAL_ENV=$VIRTUAL_ENV" >> $GITHUB_ENV + + - name: Save virtualenv cache + uses: actions/cache/save@v4 + with: + key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }} + path: .venv # Use dummy builder to improve performance as we don't need the generated HTML in this workflow. - name: Sphinx build - run: make SPHINXOPTS='--color -j 4 -W' dummy + run: | + source .venv/bin/activate + make SPHINXOPTS='--color -j 4 -W' dummy diff --git a/conf.py b/conf.py index a3102b021..fcc4b7d65 100644 --- a/conf.py +++ b/conf.py @@ -140,7 +140,7 @@ if not language in supported_languages.keys(): is_i18n = tags.has("i18n") # noqa: F821 print("Build language: {}, i18n tag: {}".format(language, is_i18n)) -exclude_patterns = ["_build"] +exclude_patterns = [".*", "**/.*", "_build", "_tools"] # fmt: off # These imports should *not* be moved to the start of the file,