مرحبًاgoanpeca!
بادئ ذي بدء ، تهانينا على هذا العمل! وشكرا لتقديمها!
حسنًا ، للأسف ، كنت أواجه مشكلة في إنشاءات Windows بإجراءات GH الخاصة بك. أستخدم conda-devenv لبناء بيئات conda
العادي ، يمكنني تحديد متغيرات البيئة ، واستخدام jinja2 وما إلى ذلك.
المشكلة هي: عندما أقوم باختباراتي ، أقوم بإنشاء بيئة جديدة باستخدام conda devenv
. لسبب غير معروف ، عندما أستخدم الإجراء الخاص بك ، تتلقى البيئة التي تم إنشاؤها اسمًا فارغًا.
أدناه أقدم ملف بناء windows الخاص بي:
name: windows
on:
push:
branches:
- master
pull_request:
schedule:
- cron: "0 5 * * 1" # runs at 05:00 UTC on Mondays
jobs:
build:
runs-on: windows-latest
env:
configuration: Release
strategy:
fail-fast: true
max-parallel: 4
steps:
- uses: actions/checkout<strong i="13">@v1</strong>
- uses: goanpeca/[email protected]
with:
auto-update-conda: true
activate-environment: autodiff
- name: Install conda-devenv
shell: powershell
run: |
conda install -c conda-forge conda-devenv
conda info -a
- name: Build
shell: powershell
run: |
conda devenv
conda info --envs
conda activate autodiff
cmake -S . -B build
cmake --build build --config ${{ env.configuration }} --target install
- name: Tests
shell: powershell
run: call build\test\${{ env.configuration }}\tests.exe
حتى أنني حاولت أن أضع نفس اسم بيئتي الجديدة كـ activate-environment
، حيث يمكن لـ conda-devenv إعادة إنشاء بيئة على بيئة موجودة دون مشكلة. ومع ذلك ، عندما أفعل ذلك ، يتم إنشاء البيئة الجديدة بدون اسم. عندما أقوم بتشغيل conda info --envs
في CI (windows فقط) ، أحصل على الناتج التالي:
2020-01-29T22:35:24.9862529Z # conda environments:
2020-01-29T22:35:24.9863192Z #
2020-01-29T22:35:24.9863428Z base C:\Miniconda
2020-01-29T22:35:24.9863652Z autodiff * C:\Miniconda\envs\autodiff
2020-01-29T22:35:24.9863862Z C:\Miniconda\envs\autodiff\envs\autodiff
هل تعرف كيف يمكنني حل هذه المشكلة؟
هتافات!
مرحبا! شكرا على ملاحظاتك. لم أستخدم conda-devenv مطلقًا ، لذلك ليس لدي حل من أعلى رأسي. سوف أقرأ قليلاً لمعرفة ما يمكن أن يكون المشكلة.
سوف يستغرق يومين.
هتافات!
لا داعى للقلق! شكرا للمساعدة.
هل هذه مشكلة windows فقط volpatto ؟
هل هذه مشكلة windows فقط volpatto ؟
نعم ، لا توجد مشكلة على الإطلاق في Ubuntu أو Mac.
goanpeca ، أعتقد أنني اكتشفت ما يحدث. قبل أي شيء ، كان الحل هو تحديد:
auto-activate-base: true
activate-environment: ''
بهذه الطريقة ، يبقى conda
في دليل الجذر الخاص به وإنشاء envs في شجرة الدليل المعتادة. عندما يكون لدينا env tests
(وهو البيئة الافتراضية التي تم إنشاؤها بواسطة الإجراء) ، يفقد conda
مسار الجذر الخاص به. يذهب إلى C:\Miniconda\envs\tests
. سيتم إنشاء كل شخص يقوم بإنشائه بعده بشيء مثل C:\Miniconda\envs\tests\envs\foo
. إذا جربت conda activate foo
، فلن يتم العثور عليه ، لأنه يجب أن يكون عند C:\Miniconda\envs\foo
. أود أن أساعدك في العلاقات العامة ، لكنني رأيت بعض السحر من نوع Type Script داخل المصدر وخفت. أنا آسف حقًا على الإزعاج.
ملاحظة: لا أعرف TypeScript.
لا مشكلة. لم أكن أعرف الكتابة المطبوعة منذ شهرين. أشعر بألمك!
لذا إذا كنت تستخدم هذا الحل البديل ، فكل شيء يعمل بشكل جيد؟ في هذه الحالة ، هل هذه مشكلة مع conda devenv عند الفوز؟ أو ؟ يمكنني إضافة بعض المعلومات على الملف التمهيدي لهذه الحالة ، فماذا سيكون الطلب الفعلي على جانب العمل؟
نعم ، كل شيء يعمل بشكل صحيح الآن!
سأجري اختبارًا بسيطًا هنا. سأخلق بيئة حسد بدون conda-devenv ونرى ما سيحدث. ثانيةواحدة!
لأكون صادقًا ، لا أعرف ما إذا كانت هذه مشكلة كوندا ديفينف (ربما تكون كذلك). سوف أتحقق من ذلك غدًا مع المشرفين (في الواقع يعملون في غرفة أمامي ، لذلك من السهل بالنسبة لي). إنها أشبه بكونك مشكلة في جانب كوندا ديفينف. أعتقد أن الإجراء جيد. عندما أنشأت بيئة مع conda create -n foo
، فإنها تعمل بشكل صحيح ، مما يؤدي إلى إنشاء البيئة عند C:\Miniconda\envs\foo
.
حسنًا ، سأتحقق من conda-devenv غدًا من أجل تحسينه هناك.
شكرا لمساعدتي ، goanpeca
هتافات!
اسمحوا لي أن أعرف ما قالوه volpatto ؛-)
اسمحوا لي أن أعرف ما قالوه volpatto ؛-)
بالتأكيد ، أنا أحقق في الأمر الآن
لقد تحدثت مع أحد المشرفين على conda-devenv ، وكان الاستنتاج غير واضح. لكنها بالتأكيد ليست مشكلة تتعلق بجانب GH Action.