name: 'Install Python and Poetry'
description: 'Add Poetry, dependency manager for Python'

inputs:
  python-version:
    description: 'Python version'
    required: true
  poetry-version:
    description: 'Poetry version'
    required: true

runs:
  using: 'composite'
  steps:
    - name: Set up Python ${{ inputs.python-version }}
      uses: actions/setup-python@v4
      with:
        python-version: ${{ inputs.python-version }}
      id: setup_python
    - name: Install Poetry ${{ inputs.poetry-version }}
      run: |
        curl -sSL ${{ env.POETRY_URL }} | \
          python - --version ${{ inputs.poetry-version }}
        echo "$HOME/.local/bin" >> $GITHUB_PATH
      shell: bash
      env:
        POETRY_URL: https://install.python-poetry.org
    - name: Cache Poetry cache
      uses: actions/cache@v3
      with:
        path: ~/.cache/pypoetry
        key: poetry-cache-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ inputs.poetry-version }}
    - name: Cache Packages
      uses: actions/cache@v3
      with:
        path: ~/.local
        key: poetry-local-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-${{ hashFiles('.github/workflows/*.yml') }}