Conda環境の設定変更が及ぼすプラットフォーム毎の影響を自動で確認するようにしました。
大したことはせず、GitHub ActionsでPR時にConda環境を作成( conda env create -f <environment.yml>
)して、正常終了するかを確認するだけです。
Conda環境を作成するアクション
conda-incubator/setup-miniconda
でMiniconda環境を作成し、対象リポジトリ上で管理しているYAMLファイルでConda環境を作成します。
今回は以下の設定を採用しました。詳細はリンク先のREADMEを参照してください。
- uses: conda-incubator/setup-miniconda@v2 with: environment-file: path/to/environment.yml # 環境設定ファイル(conda env exportしたファイル) auto-activate-base: false # base環境を有効化しない auto-update-conda: true # condaのアップデート use-only-tar-bz2: true # キャッシュが機能するように
ワークフローの例
異なるプラットフォームでConda環境を作成する例です。
普段開発に使用しているmacOS 10.15(Catalina)で開発用のConda環境( dev.yml
)を作成し、
デプロイ先として想定するUbuntu 18.04やWindows Server 2019では本番用のConda環境( production.yml
)を作成します。
name: build on: push: branches: [ master ] pull_request: jobs: conda-env-create-on-macos: runs-on: macos-10.15 steps: - uses: actions/checkout@v2 - name: Install Homebrew packages run: brew install <formula-1> ... <formula-N> - uses: conda-incubator/setup-miniconda@v2 with: environment-file: path/to/dev.yml auto-activate-base: false auto-update-conda: true use-only-tar-bz2: true conda-env-create-on-linux: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - name: Update list of packages run: sudo apt-get update - name: Install apt packages run: sudo apt-get install -y <package-1> ... <package-N> - uses: conda-incubator/setup-miniconda@v2 with: environment-file: path/to/production.yml auto-activate-base: false auto-update-conda: true use-only-tar-bz2: true conda-env-create-on-windows: runs-on: windows-2019 steps: - uses: actions/checkout@v2 - uses: conda-incubator/setup-miniconda@v2 with: environment-file: path/to/production.yml auto-activate-base: false auto-update-conda: true use-only-tar-bz2: true
これでPRを契機にConda環境が作成され、環境設定の不備を早期に摘出できるようになりました。