Установка разрешений в сценариях оболочки в файлах .tar.gz с помощью Azure DevOps

У меня есть сценарий .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 определяет, какие разрешения добавляются / удаляются при архивировании?

См. также:  Задача публикации результатов тестирования в Azure Devops
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Narnian12

    Задача ArchiveFiles не изменяет права доступа к файлам при архивировании. Я тестировал на своем конвейере архивирование файла .sh и извлечение tar.gz в системе Linux. Права доступа к файлу .sh остались прежними. Таким образом, проблема, с которой вы столкнулись выше, может быть из-за того, что у исходного файла boot.sh нет разрешения execute.

    Вы можете запустить команду ls -l main_folder/boot.sh, чтобы проверить права доступа к файлу перед получением. И добавьте разрешение, если у него нет execute разрешения.

    - bash: |
          
       ls -l main_folder/boot.sh  
       chmod u=rwx main_folder/boot.sh
    
    - task: [email protected]
    

    Ах, спасибо за проверку и за то, что сообщили мне о добавлении этой способности! person Narnian12; 13.11.2020

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: