Parafraseando la apertura de mi anterior artículo sobre Azure CLI: “El entorno gráfico del portal de Azure DevOps, cambia constantemente”, es cierto que no tanto como el portal de Azure. Pero sirve para hacer hincapié en que estamos aproximadamente en la misma situación.
Esta vez no se trata de documentar cambios, si no, de documentar como preparar el entorno de nuestro proyecto y poder reproducirlo ante algún problema: borrado de una variable, modificación de alguna configuración de un despliegue, etc. o simplemente para moverlo de tenant.
Muy pocos desarrolladores conocen esta extensión para la herramienta Azure CLI que lleva con nosotros aproximadamente un año: Azure DevOps CLI
Para poder usarla primero debes tener instalado Azure CLI y posteriormente añadir la extensión:
az extension add --name azure-devops
A partir de este momento el trabajo es muy similar al que realizamos con Azure CLI:
az login
Establecemos un proyecto por defecto:
ORGANIZATION_URL=https://dev.azure.com/your-organization PROJECT_NAME=your-project az devops configure --defaults organization=$ORGANIZATION_URL project=$PROJECT_NAME
Podemos importar un proyecto desde GitHub o desde una cuenta de DevOps (supongamos que estamos moviendo el proyecto a otra organización):
REPOSITORY_NAME=your-repository-name REPOSITORY_URL=https://dev.azure.com/your-new-organizacion/$PROJECT_NAME az repos create --name $REPOSITORY_NAME az repos import create --git-source-url $REPOSITORY_URL --repository $REPOSITORY_NAME
Crear un grupo de variables:
$SUBSCRIPTION_ID=your-subscription-id $SERVICE_CONNECTION_NAME=your-service-connection-name $VARIABLE_1=your-value-1 $VARIABLE_2=your-value-2 az pipelines variable-group create --name MY_PROJECT_SETTINGS --authorize \ --variables VARIABLE_1=$VARIABLE_1 \ VARIABLE_2=$VARIABLE_2 \ AZURE_SERVICE_CONNECTION_NAME="$SERVICE_CONNECTION_NAME" \ AZURE_SUBSCRIPTION_ID=$SUBSCRIPTION_ID
Crear un Pipeline con variables:
PIPELINE_NAME=your-pipeline-name az pipelines create --name $PIPELINE_NAME --repository $REPOSITORY_NAME \ --repository-type tfsgit --branch main --skip-first-run \ --yml-path pipelines/your-pipeline-file.yml az pipelines variable create --pipeline-name $PIPELINE_NAME --name PIPELINE_VAR_1 \ --allow-override
También podrás lanzar el pipeline desde CLI:
VAR_1=your-value az pipelines run --name $PIPELINE_NAME \ --variables PIPELINE_VAR_1=$VAR_1
Toda la información de la extensión podrás verla con el comando:
az devops -h
Insisto, toda esta información debe estar incluida en el Readme del proyecto. Con unos comandos tan simples te ahorras ir navegando por las distintas opciones del entorno gráfico, tomado capturas y añadiendo anotaciones.
Espero que con esta breve introducción puedas dilucidar el potencial que ofrece usar la línea de comandos. Deliberadamente esta vez no he puesto ninguna captura de pantalla, ni siquiera para mostrar a que sección se corresponden en el portal de Azure DevOps.