Setup-miniconda: condaのセットアップ手順に時間がかかりすぎる

作成日 2020年11月10日  ·  16コメント  ·  ソース: conda-incubator/setup-miniconda

この素晴らしいアクションを作成/維持していただきありがとうございます!

condaだけを設定すると、通常より時間がかかるようです。 たとえば、このログの「condaの設定」ステップを見てください。 condaのセットアップには3分半かかります(依存関係のインストールを除く)。 それは予想されているのですか、それとも私は何か間違ったことをしていますか?

もう一度ありがとう!

enhancement

最も参考になるコメント

_ディスク上にあるものを使用する_vs_半年間予測できたスキームを使用してURLからインストーラーを取得する_だけでなく、現在のコードの動作がmambaについて推論するのは難しいです。

私はよ賭け、あなたが提供する場合mamba-version 、それは_still_をインストールしようとしてだmambaからconda-forgeがまだあります、と_still_使用しても、 conda環境_除く_すべてのために解決する(例えばconda config )。 これらは、すでにディスク上にあるポストインストーラーのほとんどの利点を打ち負かします。 mambaこのようなインストーラーは、13時間前まで存在しなかったので、これは問題ではありませんでした...すでにあることがわかっている場合は、 conda-exe: mambaようなものが必要になると思います。インストールされているので、利用可能であっても使用したくない場合があります。明日lambada 、次のインストーラーの次のツール( tarantala )がある可能性があります。

とにかく、これらの問題のいくつかを修正するには、かなり抜本的な再構築が必要だと感じました...#107(#108、#109、...レビュー待ち)に私は次の準備をするために最善を尽くしましたX、ここでXは1つまたは2つのファイルPRにすることができます。 機能の追加とパフォーマンスへの対処を開始できる場所にたどり着くことができれば幸いですが、現在の技術的負債に最初に対処しないと状況が悪化するのではないかと心配しています。

全てのコメント16件

こんにちは@ ma-sadeghi、親切な言葉とアクションを使用してくれてありがとう:)

コンダだけを設置するのはいつもより時間がかかるようです。

これは新しいバージョンで変更されましたか? これに気づき始めたのはいつですか?

潜在的な問題を特定できるように、疑問に思っています。


@ conda-incubator / setup-miniconda-team説明されているように、似たようなものに気づきましたか?

(アクション中にdepsをインストールせずに)mambaを使用し、最新のv2バージョンを使用した場合も同じ問題が発生します。

@bollwyvlこれを手動でデバッグすることができます

それが役立つ場合(ログを共有できません):

    steps:
      - name: Checkout the code
        uses: actions/checkout<strong i="6">@v2</strong>

      - name: Cache conda
        uses: actions/cache<strong i="7">@v1</strong>
        env:
          CACHE_NUMBER: 2
        with:
          path: ~/conda_pkgs_dir
          key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}

      - name: Setup conda
        uses: conda-incubator/setup-miniconda<strong i="8">@v2</strong>
        with:
          mamba-version: "*"
          channels: conda-forge,defaults
          channel-priority: true
          use-only-tar-bz2: true

例をありがとう@hadim 。 PRを追加して、リグレッションを引き起こした変更を確認します。

こんにちは@ ma-sadeghi、親切な言葉とアクションを使用してくれてありがとう:)

コンダだけを設置するのはいつもより時間がかかるようです。

これは新しいバージョンで変更されましたか? これに気づき始めたのはいつですか?

潜在的な問題を特定できるように、疑問に思っています。

@ conda-incubator / setup-miniconda-team説明されているように、似たようなものに気づきましたか?

頭のてっぺんからこのアクションを初めて使用したときは、以前ははるかに高速だったとほぼ確信しています。コンダのセットアップには1分ほどかかったかもしれませんが、現在は3:30分です。 私たちのプロジェクトは公開されており、このアクションを使用してからしばらく経ちます。問題のデバッグに役立つ場合は、ログを確認してください//github.com/PMEAL/OpenPNM/actions

リンクされたログから:

Tue, 10 Nov 2020 21:09:23 GMT /usr/share/miniconda/condabin/conda update conda
Tue, 10 Nov 2020 21:09:54 GMT Collecting package metadata (repodata.json): ...working... done
Tue, 10 Nov 2020 21:10:07 GMT Solving environment: ...working... done
Tue, 10 Nov 2020 21:11:56 GMT
Tue, 10 Nov 2020 21:11:56 GMT ## Package Plan ##

したがって、やや非科学的に、次のようになります。

  • リポジトリデータを取得してから26秒
  • コンダを更新するために解決を行う135秒

私が考えることができる唯一のことは、追加されたconda-forge 。これにより、ソルバーは追加の10,000以上のパッケージ(およびそのすべてのバージョン)でオーバードライブになります。

私の頭の上からいくつかのオプション:

  • あなたのリポジトリで...

    • auto-update-condafalse

    • あなたはちょっとあなたが得るものを手に入れるでしょう、しかしあなたは_通常_大丈夫でしょう

    • conda-lock使用した明示的な仕様の生成/チェックイン

    • カスタムインストーラーを使用する

    • ええ、ダウンロードにはもっと時間がかかるかもしれませんが、ソルバーは呼び出されません

    • これもキャッシュできます/キャッシュする必要がありますが、githubから1つを調達する方が、インターネットに接続するよりも高速です。

  • _this_リポジトリに..

    • conda-update-channels: defaults 、限られたチャネルの選択からのみプルする新しいアクションオプションを追加します

    • ::group::Boring stuff ::endgroup::ログ出力を追加して、このアクションが実行するコマンドのトップレベルのライフサイクルを追跡しやすくします(タイミングを調整するためにパンダをほこりで払う必要がありました)

    • 怒りで試したことがない...それは_かもしれない_

    • micromabaセットアップを提供します(ここでも、いくつかの解決策を保存します

ほとんどの時間の価値があるのは、mambaのインストールに費やされていることです。

image

関連する構成:

      - name: Cache conda
        uses: actions/cache<strong i="9">@v2</strong>
        env:
          CACHE_NUMBER: 3
        with:
          path: ~/conda_pkgs_dir
          key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}

      - name: Setup conda
        uses: conda-incubator/setup-miniconda<strong i="10">@v2</strong>
        with:
          python-version: 3.7
          mamba-version: "*"
          channels: conda-forge,defaults
          channel-priority: true
          use-only-tar-bz2: true
          activate-environment: nova

minicondaやminiforgeの代わりにmicromambaのようなものを使用することは可能ですか?

詳細を見ると、解決ステップは99%の時間かかります。

この問題が解決された場合、miniforgeルートはデフォルトでこれを提供します:D

最近リリースされたMambaForgeインストーラーがCIを高速化することを確認します。

- name: Setup conda
  uses: conda-incubator/setup-miniconda<strong i="6">@v2</strong>
  with:
    installer-url: https://github.com/conda-forge/miniforge/releases/download/4.9.2-2/Mambaforge-Linux-x86_64.sh
    channel-priority: true
    use-only-tar-bz2: true
    activate-environment: my-env

- name: Anaconda Login
  run: |
    # Bypass the installation of anaconda-client
    TOKEN_DIR="$HOME/.config/binstar"
    TOKEN_PATH="$TOKEN_DIR/https%3A%2F%2Fapi.anaconda.org.token"
    mkdir -p $TOKEN_DIR
    echo -e "${ANACONDA_USER_TOKEN}\c" > $TOKEN_PATH

- name: Install Dependencies
  run: mamba env update -f env.yml

(スニペットには、 anaconda-clientをインストールせずにanacondaにログインする方法も含まれています。ここで役立つ可能性があります。)

mamba-versionとどのように連携しますか? 必要ですか? 既存のmambaがすでに配置されているかどうかを確認する必要がありますか?

良い質問ですが、実際にはわかりません。 新しいインストーラ船mambaデフォルトでは、私はせずに直接使用mamba-version

最初にanacondaにログインする必要があるので(スニペットを参照)、環境のインストールにsetup-condaに依存しません。

setup-condaを使用してenvファイルをインストールする場合は、 setup-condaを変更して、実際にmambaをチェックし、存在する場合はインストールをバイパスする必要があると思います。

たぶん@ conda-incubator / setup-miniconda-teamの誰かが確認できるかどうか?

_ディスク上にあるものを使用する_vs_半年間予測できたスキームを使用してURLからインストーラーを取得する_だけでなく、現在のコードの動作がmambaについて推論するのは難しいです。

私はよ賭け、あなたが提供する場合mamba-version 、それは_still_をインストールしようとしてだmambaからconda-forgeがまだあります、と_still_使用しても、 conda環境_除く_すべてのために解決する(例えばconda config )。 これらは、すでにディスク上にあるポストインストーラーのほとんどの利点を打ち負かします。 mambaこのようなインストーラーは、13時間前まで存在しなかったので、これは問題ではありませんでした...すでにあることがわかっている場合は、 conda-exe: mambaようなものが必要になると思います。インストールされているので、利用可能であっても使用したくない場合があります。明日lambada 、次のインストーラーの次のツール( tarantala )がある可能性があります。

とにかく、これらの問題のいくつかを修正するには、かなり抜本的な再構築が必要だと感じました...#107(#108、#109、...レビュー待ち)に私は次の準備をするために最善を尽くしましたX、ここでXは1つまたは2つのファイルPRにすることができます。 機能の追加とパフォーマンスへの対処を開始できる場所にたどり着くことができれば幸いですが、現在の技術的負債に最初に対処しないと状況が悪化するのではないかと心配しています。

conda-incubator/setup-miniconda@masterは、(しばらくの間)次の組み合わせをサポートするようになりました。

miniforge-variable: Mambaforge
use-mamba: true

これは主にここのメールに答えるはずです...完全なconda + python + mambaインストールができる範囲で。 Micromambaは最近多くの更新がありましたが、他のプロバイダーと同じレベルでサポート/テストするかどうかについてはまだ評価できていません...

このページは役に立ちましたか?
0 / 5 - 0 評価