Использование задачи замены токена для файла в агенте и устранение ошибки пути git bash

Я убедился, что git bash установлен на агенте, но все еще выдает следующую ошибку, а также добавил переменную env

ОШИБКА:

Невозможно найти исполняемый файл: «bash». Убедитесь, что путь к файлу существует или файл можно найти в каталоге, указанном переменной среды PATH. Также убедитесь, что файл имеет допустимое расширение для исполняемого файла.

Я хочу заменить токен самого агента, поскольку этот файл будет доступен только в папке агента, а не в исходном коде. и этот файл создается из одной из задач из конвейера Azure.

пример содержимого этого файла:

https://dev-domain.com

здесь, в приведенном выше URL-адресе, dev может быть stage, prod и т. д., его необходимо параметризовать и использовать токен замены.

  1. работал над установкой git bash
  2. работал над добавлением пути к переменной env
  3. работал над задачей замены токена, но она работает, если файл доступен в исходном коде, а не если файл создается непосредственно в агенте.
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Невозможно найти исполняемый файл: «bash». Убедитесь, что путь к файлу существует или файл можно найти в каталоге, указанном переменной среды PATH. Также убедитесь, что файл имеет допустимое расширение для исполняемого файла.

Я могу воспроизвести ту же проблему при использовании локального агента Windows.

Судя по вашему описанию, вы установили git bash.

Чтобы решить эту проблему, вы можете добавить папку команд bash в переменную среды PATH на компьютере с агентом.

Вот шаги:

Шаг 1. Проверьте, существует ли bash.exe в папке git bin.

Например:

Шаг 2. Вам необходимо войти в систему с агентом, а затем добавить C:\Program Files\Git\bin в путь к переменным среды, а затем перезапустить агент.

Результат:

Обновлять:

Чтобы интегрировать все шаги в Pipeline, вы можете добавить следующие задачи:

steps:

- task: PowerShell@2
  displayName: Install Git And Config PATH ENV
  inputs:
    targetType: 'inline'
    script: |
      # Define the URL of the Git installer
      $gitInstallerUrl = "https://github.com/git-for-windows/git/releases/download/v2.40.1.windows.1/Git-2.40.1-64-bit.exe"
      
      # Define the path to save the installer
      $installerPath = "$env:TEMP\Git-2.40.1-64-bit.exe"
      
      # Download the Git installer
      Invoke-WebRequest -Uri $gitInstallerUrl -OutFile $installerPath
      
      # Run the installer silently
      Start-Process -FilePath $installerPath -ArgumentList "/SILENT", "/NORESTART" -Wait
      
      # Optionally, remove the installer after installation
      Remove-Item -Path $installerPath
      $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
      echo $env:Path
      $gitpath = git --exec-path
      $bashpath = $gitpath.Replace('mingw64/libexec/git-core','bin')
      echo "##vso[task.setvariable variable=PATH]$bashpath;$(PATH)"


- task: Bash@3
  inputs:
    targetType: 'inline'
    script: |
      echo "test"
      

Обновление2:

Чтобы напрямую обновить файл на компьютере с агентом, вы можете использовать задачу Bash для запуска команды sed для достижения этой цели.

Вот пример:

variables:
  newvalue: dev01

steps:
- bash: 'sed -i -e "s/dev02/$(newvalue)/g" filename'
  workingDirectory: 'Local Path folder where the file located(e.g. C:\Users\xx\Downloads)'
  displayName: 'Bash Script'

Спасибо, похоже, это сработало, поскольку я не видел этой ошибки после использования приведенного выше сценария PS, и с другой стороны, как я уже упоминал в описании, не могли бы вы также предложить при использовании заменить токен в файле с машины агента, и этот файл будет доступен в папке агента, а не в исходном коде. и, например, этот файл состоит из URL-адреса dev02.domain.com поэтому у меня должна быть возможность параметризовать dev02, dev01 или dev03 и т. д., я использовал задачу замены токена, когда файл находится в исходном коде, и это удалось, но Я не уверен, когда файл находится только в агенте.

user25518631 09.07.2024 21:24

@user25518631 user25518631 Задача «Заменить токен» не может напрямую удовлетворить ваши требования. Чтобы напрямую обновить файл на компьютере с агентом, вы можете использовать задачу Bash для запуска команды sed для замены переменной. Обратитесь к обновлению2 в ответе.

Kevin Lu-MSFT 10.07.2024 08:16

Другие вопросы по теме