From 31c3b14cdb3e577953caa0b32290d8d90ec7a9cf Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Tue, 16 Aug 2022 08:04:24 +0200 Subject: [PATCH] ci: Use actions/setup-python@v3/4 caching (#797) --- .github/workflows/docs.yml | 52 +++++++------------------------------ .github/workflows/tests.yml | 50 +++++++---------------------------- 2 files changed, 20 insertions(+), 82 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3797d290fc..59d71b3874 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -34,58 +34,26 @@ jobs: if: steps.changes.outputs.docs == 'true' || steps.changes.outputs.root_docs == 'true' || steps.changes.outputs.python_files == 'true' run: echo "PUBLISH=$(echo true)" >> $GITHUB_ENV - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - - name: Get full Python version - id: full-python-version - if: env.PUBLISH == 'true' - shell: bash - run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - - name: Install poetry if: env.PUBLISH == 'true' - run: | - curl -O -sSL https://install.python-poetry.org/install-poetry.py - python install-poetry.py -y --version 1.1.14 - echo "PATH=${HOME}/.poetry/bin:${PATH}" >> $GITHUB_ENV - rm install-poetry.py + run: pipx install "poetry==1.1.14" - - name: Add ~/.local/bin to PATH - run: echo "$HOME/.local/bin" >> $GITHUB_PATH - - - name: Get poetry cache paths from config - if: env.PUBLISH == 'true' - run: | - echo "poetry_cache_dir=$(poetry config --list | sed -n 's/.*cache-dir = //p' | sed -e 's/^\"//' -e 's/\"$//')" >> $GITHUB_ENV - echo "poetry_virtualenvs_path=$(poetry config --list | sed -n 's/.*virtualenvs.path = .* # //p' | sed -e 's/^\"//' -e 's/\"$//')" >> $GITHUB_ENV - - - name: Configure poetry + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 if: env.PUBLISH == 'true' - shell: bash - run: poetry config virtualenvs.in-project true - - - name: Set up cache - uses: actions/cache@v3 - id: cache with: - path: | - .venv - {{ env.poetry_cache_dir }} - {{ env.poetry_virtualenvs_path }} - key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} - - - name: Ensure cache is healthy - if: steps.cache.outputs.cache-hit == 'true' && env.PUBLISH == 'true' - shell: bash - run: poetry run pip --version >/dev/null 2>&1 || rm -rf .venv + python-version: ${{ matrix.python-version }} + cache: 'poetry' - name: Install dependencies [w/ docs] if: env.PUBLISH == 'true' run: poetry install --extras "docs lint" + - name: Print python versions + run: | + python -V + poetry run python -V + - name: Build documentation if: env.PUBLISH == 'true' run: | diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4892b5b88d..24d1848b01 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -21,49 +21,14 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - - name: Get full Python version - id: full-python-version - shell: bash - run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - - name: Install poetry - run: | - curl -O -sSL https://install.python-poetry.org/install-poetry.py - python install-poetry.py -y --version 1.1.14 - echo "PATH=${HOME}/.poetry/bin:${PATH}" >> $GITHUB_ENV - rm install-poetry.py - - - name: Add ~/.local/bin to PATH - run: echo "$HOME/.local/bin" >> $GITHUB_PATH - - - name: Get poetry cache paths from config - run: | - echo "poetry_cache_dir=$(poetry config --list | sed -n 's/.*cache-dir = //p' | sed -e 's/^\"//' -e 's/\"$//')" >> $GITHUB_ENV - echo "poetry_virtualenvs_path=$(poetry config --list | sed -n 's/.*virtualenvs.path = .* # //p' | sed -e 's/^\"//' -e 's/\"$//')" >> $GITHUB_ENV - - - name: Configure poetry - shell: bash - run: poetry config virtualenvs.in-project true + run: pipx install "poetry==1.1.14" - - name: Set up poetry cache - uses: actions/cache@v3 - id: cache + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 with: - path: | - .venv - ${{ env.poetry_cache_dir }} - ${{ env.poetry_virtualenvs_path }} - key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} - - - name: Ensure cache is healthy - if: steps.cache.outputs.cache-hit == 'true' - shell: bash - run: poetry run pip --version >/dev/null 2>&1 || rm -rf .venv + python-version: ${{ matrix.python-version }} + cache: 'poetry' - name: Setup tmux build cache for tmux ${{ matrix.tmux-version }} id: tmux-build-cache @@ -97,6 +62,11 @@ jobs: - name: Lint with mypy run: poetry run mypy . + - name: Print python versions + run: | + python -V + poetry run python -V + - name: Test with pytest continue-on-error: ${{ matrix.tmux-version == 'master' }} run: |