Как обеспечить, чтобы хэш Zip -файла, созданный локально, идентичен при создании во время CI/CD, используя точно такое жPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обеспечить, чтобы хэш Zip -файла, созданный локально, идентичен при создании во время CI/CD, используя точно такое ж

Сообщение Anonymous »

Как я могу использовать shutil.make_archive () для создания zip -файлов, которые абсолютно идентичны, включая хэш? Через CI/CD, и я ожидаю, что они будут идентичны, но хэши различаются. Это заставляет CI/CD думать, что файлы различны, и он пытается обновление, которое нежелательно, поскольку это приведет к тому, что обновление будет сделано из каждого случая, даже если не было внесено никаких изменений.
Были приняты следующие меры предосторожности, чтобы гарантировать, что пакеты на молнии идентичны, однако я явно что -то упускаю. Сначала удаляется, чтобы обеспечить каталог чистых пакетов.
[*] Пакеты устанавливаются пользователем root.
Все __pycache __ каталоги удаляются . < /li>
Последнее доступное и измененное время каждого файла изменяется, чтобы убедиться, что они совпадают. < /li>
< /ul>
Есть что -то Больше (или другого) я могу сделать, чтобы убедиться, что хэши файлов zip всегда будут одинаковыми, учитывая, что содержимое точно такое же? Хэш ZIP -файла, используя FileBase64SHA256 ("packages.zip") . Я не верю, что это имеет значение, но в любом случае подумал, что это стоит упомянуть.#!/bin/bash

REQUIREMENTS_FILE="requirements.txt"
REQUIREMENTS_DIR="packages/"
REQUIREMENTS_ZIP="packages.zip"

rm -rf $REQUIREMENTS_DIR
pip install --upgrade --force-reinstall --no-cache-dir -r $REQUIREMENTS_FILE -t $REQUIREMENTS_DIR
find $REQUIREMENTS_DIR | grep -E "(__pycache__|\.pyc$)" | xargs rm -rf
find $REQUIREMENTS_DIR -exec touch -t 200010101010 {} +

python -c "import shutil; shutil.make_archive('${REQUIREMENTS_ZIP:0:-4}', 'zip', '$REQUIREMENTS_DIR')"


Подробнее здесь: https://stackoverflow.com/questions/793 ... eated-duri
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»