в нашем процессе CI мы делаем следующие вещи:
- создаем совершенно новую среду conda для этого конвейера CI
- создаем пакет conda, используя
conda build
, выходную папкуустановлен на ./build - установить только что созданный пакет, используя
conda install -c ./build package_name
.
Второй шаг на втором этапе CI, когда мы тестируем, мы простовызовите pytest для запуска всех тестовых файлов в среде CI и с использованием только что установленного пакета package_name
.
Примечание package_name
имеет внутреннюю зависимость another_package_name
, указанную в файле meta.yaml, который определяет пакет.
Одна вещь, которую мы обнаружили, заключается в том, что на шаге 1 и шаге 2версия another_package_name
отличается, при сборке пакета conda, похоже, может получить последнюю версию зависимости.Однако на шаге 2 conda, похоже, выбирает старую версию зависимости.
Некоторые другие выводы, которые у меня есть:
- Обе
package_name
и another_package_name
опубликованы врасположение файла, которое мы используем для нашего внутреннего канала (с помощью простой команды cp *.tar.bz2
) - Это происходит только в CI, для конкретного пользователя CI, и только в том случае, если мы находимся в этой папке CI и в этом CIокружение, то есть использование другого пользователя, создание новой среды, копирование папки
./build
в другое место, и все это мешает нам воспроизвести это поведение.
Это лишает нас возможности иметь надлежащий функциональный CI,И мы не смогли выяснить, что происходит с шагом local install
и почему он выбирает неправильную версию зависимости.
Есть идеи?