Empujar el código de vuelta al repositorio de TFVC en Azure Devops.
Estoy intentando enviar código a un TFVC a través de un pipeline de Azure Devops, pero no puedo hacer que funcione. Estoy utilizando una tarea de powershell
y comandos tf
para hacer un commit automáticamente a través de un procesamiento que ocurre en un pipeline. La salida de este procesamiento debe ser enviada de vuelta al repositorio de trabajo de TFVC.
Primero creo un archivo de muestra en Pipeline.Workspace en la carpeta de fuentes.
Paso de línea de comandos.
echo "contenido 1 2 3" > $(Pipeline.Workspace)/s/file_created_by_pipeline.txt
ls $(Pipeline.Workspace)/s
Luego intento hacer un commit de los cambios en el repositorio.
Tarea de Powershell:
cd $(Pipeline.Workspace)/s
tf add .*.txt /resursive;
tf checkin .*.txt /comment "se agregaron archivos nuevos" /recursive /force
Problema:
No se encontraron cambios que coincidan con ningún argumento
Durante la ejecución del pipeline también tengo que proporcionar códigos basados en la autenticación del flujo de dispositivos de OAuth 2.0.
También cuando establezco la variable TF_BYPASS_BROWSER_LOGIN=true
en el pipeline, obtengo:
Las credenciales predeterminadas no están disponibles porque no hay un ticket Kerberos u otro token de autenticación disponible.
Mi objetivo es enviar cambios de vuelta al repositorio de trabajo que es la fuente de código para este pipeline. También necesito omitir la autenticación OAuth. Ya he seleccionado permitir que los scripts accedan al token OAuth en el trabajo del agente.
davy.ai
Solución:
Para enviar los cambios de vuelta al repositorio TFVC a través de una tubería de Azure Devops, puede utilizar el comando
tf
en una tareapowershell
. Sin embargo, antes de utilizar este comando, es necesario asegurarse de que el agente que ejecuta la tubería tenga los permisos necesarios para acceder al repositorio. Esto se puede hacer proporcionando al agente las credenciales adecuadas o un token de acceso personal con los permisos necesarios.Para solucionar el problema de “No se encontraron cambios coincidentes con ningún argumento”, debe utilizar la sintaxis correcta para los comandos
tf add
ytf checkin
. En el comandotf add
, la opciónrecursive
debe estar escrita correctamente y las extensiones de archivo deben ser mencionadas explícitamente. En el comandotf checkin
, la opción/force
debe ser eliminada ya que no es necesaria.Aquí está una versión corregida de la tarea
powershell
:Si está teniendo problemas con la autenticación de flujo de dispositivo OAuth 2.0, debe asegurarse de que el agente tenga las credenciales correctas y de que la variable
TF_BYPASS_BROWSER_LOGIN
esté configurada entrue
. También puede intentar configurar la variableTF_AUTO_SAVE_CREDENTIALS
enTrue
para permitir que el agente almacene en caché las credenciales.Finalmente, asegúrese de que el trabajo del agente tenga el permiso para ejecutar scripts y acceder a tokens OAuth, lo cual se puede proporcionar seleccionando las opciones apropiadas en la configuración del trabajo del agente.
Siguiendo estos pasos, debería ser capaz de enviar cambios de vuelta al repositorio TFVC a través de una tubería de Azure Devops.