У меня есть сценарий .sh в папке, и я использую Azure DevOps для создания файла tar.gz с этим сценарием оболочки.
Образец структуры папки
главная_папка / boot.sh
Я использую задачу [email protected]
из Azure DevOps для создания этого архива со следующими параметрами:
- task: [email protected]
inputs:
rootFolderOrFile: "main_folder"
includeRootFolder: false
archiveType: "tar"
tarCompression: "gz"
archiveFile: "$(Build.StagingDirectory)/update.tar.gz
replaceExistingArchive: true
Однако после выпуска этой сборки и извлечения tar.gz в моей системе Linux, когда я пытаюсь запустить boot.sh
, он сообщает, что в разрешении отказано, и я должен использовать chmod u=rwx boot.sh
, чтобы добавить разрешение на выполнение. Есть ли способ проверить, как Azure DevOps определяет, какие разрешения добавляются / удаляются при архивировании?
Задача ArchiveFiles не изменяет права доступа к файлам при архивировании. Я тестировал на своем конвейере архивирование файла .sh и извлечение tar.gz в системе Linux. Права доступа к файлу .sh остались прежними. Таким образом, проблема, с которой вы столкнулись выше, может быть из-за того, что у исходного файла boot.sh нет разрешения
execute
.Вы можете запустить команду
ls -l main_folder/boot.sh
, чтобы проверить права доступа к файлу перед получением. И добавьте разрешение, если у него нетexecute
разрешения.Ах, спасибо за проверку и за то, что сообщили мне о добавлении этой способности! — person Narnian12; 13.11.2020