mirror of
https://github.com/hwchase17/langchain
synced 2024-11-18 09:25:54 +00:00
ade683c589
Ternary operators in GitHub Actions syntax are pretty ugly and hard to read: `inputs.working-directory == '' && '.' || inputs.working-directory` means "if the condition is true, use `'.'` and otherwise use the expression after the `||`". This PR performs the ternary as few times as possible, assigning its outcome to an env var we can then reuse as needed.
81 lines
2.4 KiB
YAML
81 lines
2.4 KiB
YAML
# An action for setting up poetry install with caching.
|
|
# Using a custom action since the default action does not
|
|
# take poetry install groups into account.
|
|
# Action code from:
|
|
# https://github.com/actions/setup-python/issues/505#issuecomment-1273013236
|
|
name: poetry-install-with-caching
|
|
description: Poetry install with support for caching of dependency groups.
|
|
|
|
inputs:
|
|
python-version:
|
|
description: Python version, supporting MAJOR.MINOR only
|
|
required: true
|
|
|
|
poetry-version:
|
|
description: Poetry version
|
|
required: true
|
|
|
|
install-command:
|
|
description: Command run for installing dependencies
|
|
required: false
|
|
default: poetry install
|
|
|
|
cache-key:
|
|
description: Cache key to use for manual handling of caching
|
|
required: true
|
|
|
|
working-directory:
|
|
description: Directory to run install-command in
|
|
required: false
|
|
default: ""
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- uses: actions/setup-python@v4
|
|
name: Setup python $${ inputs.python-version }}
|
|
with:
|
|
python-version: ${{ inputs.python-version }}
|
|
|
|
- uses: actions/cache@v3
|
|
id: cache-pip
|
|
name: Cache Pip ${{ inputs.python-version }}
|
|
env:
|
|
SEGMENT_DOWNLOAD_TIMEOUT_MIN: "15"
|
|
with:
|
|
path: |
|
|
~/.cache/pip
|
|
key: pip-${{ runner.os }}-${{ runner.arch }}-py-${{ inputs.python-version }}
|
|
|
|
- run: pipx install poetry==${{ inputs.poetry-version }} --python python${{ inputs.python-version }}
|
|
shell: bash
|
|
|
|
- name: Check Poetry File
|
|
shell: bash
|
|
working-directory: ${{ inputs.working-directory }}
|
|
run: |
|
|
poetry check
|
|
|
|
- name: Check lock file
|
|
shell: bash
|
|
working-directory: ${{ inputs.working-directory }}
|
|
run: |
|
|
poetry lock --check
|
|
|
|
- uses: actions/cache@v3
|
|
id: cache-poetry
|
|
env:
|
|
SEGMENT_DOWNLOAD_TIMEOUT_MIN: "15"
|
|
WORKDIR: ${{ inputs.working-directory == '' && '.' || inputs.working-directory }}
|
|
with:
|
|
path: |
|
|
~/.cache/pypoetry/virtualenvs
|
|
~/.cache/pypoetry/cache
|
|
~/.cache/pypoetry/artifacts
|
|
${{ env.WORKDIR }}/.venv
|
|
key: poetry-${{ runner.os }}-${{ runner.arch }}-py-${{ inputs.python-version }}-poetry-${{ inputs.poetry-version }}-${{ inputs.cache-key }}-${{ hashFiles(format('{0}/poetry.lock', env.WORKDIR)) }}
|
|
|
|
- run: ${{ inputs.install-command }}
|
|
working-directory: ${{ inputs.working-directory }}
|
|
shell: bash
|