Closed1
Poetry in GitHub Actions
Poetryを用いてちょっとしたPythonスクリプトを書いて、GitHub Actionsで動かす例。
poetryコマンドそのものとpackageの依存を解決してinstallしたそれぞれをキャッシュ化し、
リストアしているworkflow定義が見つからなかったので誰かの参考になれば
と言っても、Poetryを一通りつかったことがあり、GitHub Actionsのaction/cacheを理解していれば、
なにも特殊なことはしていない
Poetryについて
- GitHub Actionsではubuntu-latestを用いる
~/.local/bin/poetry
各jobについて必要に応じてコメントを
-
Cache poetry cache
- このjobでのキャッシュ取得処理でhitしたかどうかを後ほど条件判定に使用するために、予めidを振っている
- with.path, with.keyはactions/cacheにおいて、
---
env:
PYTHON_VERSION: '3.10'
POETRY_VERSION: '1.3.2'
name: sample_name
on:
workflow_dispatch:
jobs:
sample_job:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Cache poetry cache
id: poetry-cache
uses: actions/cache@v3
with:
path: /home/runner/.local
key: ${{ runner.os }}-python${{ env.PYTHON_VERSION }}-poetry${{ env.POETRY_VERSION }}
- name: Set a path
run: |
echo "$HOME/.local/bin" >> $GITHUB_PATH
if: steps.poetry-cache.outputs.cache-hit == 'true'
- name: Cache packages
id: packages-cache
uses: actions/cache@v3
with:
path: /home/runner/.cache/pypoetry
key: ${{ runner.os }}-${{ github.job }}-packages-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-${{ github.job }}-packages-
- name: Setup Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install poetry
run: |
curl -sSL https://install.python-poetry.org | python3 - --version ${{ env.POETRY_VERSION }}
echo "$HOME/.local/bin" >> $GITHUB_PATH
if: steps.poetry-cache.outputs.cache-hit != 'true'
- name: Resolve Dependencies
run: |
poetry install
if: steps.packages-cache.outputs.cache-hit != 'true'
- name: Run script by Poetry
run: |
poetry run python path/to.py
このスクラップは2023/09/30にクローズされました