😥

github actionsでpoetry installしようとしたら止まった話

2023/07/01に公開

問題

業務で,github actions でテストと linter を走らせる CI/CD を組むことがあった.

そこで,workflow をローカルで動かせるactでテストしようとすると,poetry install が走った瞬間,exitcode 1で終わってしまい,相当長い間詰まっていた.

環境

poetry version 1.5.1

エラー発生日:2023/7/1

原因

色々調べて,poetry install exitcode 1とかで調べると,以下の記事がヒット

https://github.com/python-poetry/poetry/issues/7184

特にここを見てもらうと,poetry が Cleo のインポート中に worker が例外を返してしまっているそうです...

解決方法

そのため,poetry install --no-ansi で解決しました.

name: Python Lint and Test
on:
  push:
    branches: [dev]
  pull_request:
    branches: [dev]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.8", "3.9", "3.10"]

    steps:
      - uses: actions/checkout@v2
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install Poetry
        uses: snok/install-poetry@v1

      - uses: actions/cache@v2
        id: venv_cache
        with:
          path: .venv
          key: venv-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}

      - name: Install Dependencies
        if: steps.venv_cache.outputs.cache-hit != 'true'
        run: |
          poetry lock
          poetry install --no-ansi

      - name: Test with pytest
        run: |
          poetry run pytest
      - name: Lint with flake8
        run: poetryu flake8 .

Discussion