Movatterモバイル変換


[0]ホーム

URL:


Github actionでvenv環境をキャッシュする

これまで、PythonのプロジェクトでGithub Actionを使うとき、こんな感じで仮想環境ごとキャッシュしていました。

# 仮想環境を作成-name:Create venvrun:|python3 -m venv .venv# 仮想環境をキャッシュから復元-name:Cache venv dependenciesuses:actions/cache@v1with:path:.venvkey:venv-${{ runner.os }}-${{ hashFiles('requirements.txt') }}restore-keys:|${{ runner.os }}-venv-

破局

しかし、先日、こんな感じでエラーが出るようになってしまいました。

/home/runner/work/_temp/eeef70b5-c170-4f26-b881-a730c4e3ea5f.sh:line1:.venv/bin/python:Nosuchfileordirectory##[error]Process completed with exit code 127.

これまで、Github ActionのPython3.8環境ではPython3.8.3が動いていたんですが、それがPython 3.8.5に更新され、3.8.3は削除されてしまったようです。キャッシュしてある仮想環境では、ふるいPython3.8.3を参照しているので、エラーになってしまいます。

復活

今後もPythonの実行環境は自動的に更新されるでしょうし、ファイルのパスなども変更される可能性もないわけではありません。

そこで、Pythonの実行ファイル名をファイルに出力し、このファイルもキャッシュのキー値として指定するようにしました。こうしておけば、Pythonのバージョンが変わったら自動的にキャッシュも再構築されます。

# Pythonのファイル名を出力-name:Save Python pathrun:|which python3 > python3_path.txt# 仮想環境を作成-name:Create venvrun:|python3 -m venv .venv# 仮想環境をキャッシュから復元-name:Cache venv dependenciesuses:actions/cache@v1with:path:.venvkey:venv-${{ runner.os }}-${{ hashFiles('requirements.txt', 'python3_path.txt') }}restore-keys:|${{ runner.os }}-venv-
Amazon.co.jpアソシエイト:
2020-08-01


nomanコマンド


UoPeople ENGL 0008 顛末記


UoPeople ENGL 0008 中間報告


Pythonのパターンマッチ


Python で Google Analytics Reporting APIを使う


Copyright © 2020 Atsuo Ishimoto

Powered bymiyadaiku


[8]ページ先頭

©2009-2025 Movatter.jp