Segurança de pipelines melhorada com variáveis só de leitura
Com esta atualização, estamos a melhorar a segurança dos pipelines com variáveis só de leitura. Além disso, agora pode definir variáveis de saída nas suas tarefas dentro de qualquer hook de ciclo de vida de uma tarefa de implementação e consumi-la em passos e tarefas a jusante na mesma fase.
Consulte a lista funcionalidades abaixo para obter detalhes.
Funcionalidades
Geral:
Azure Pipelines:
Nota
A instalação do .NET 4.6.2 ou superior é necessária para que a tarefa VSTest funcione corretamente nos agentes de compilação.
- Variáveis só de leitura
- Suporte para variáveis de saída numa tarefa de implementação
- Evitar a reversão de alterações críticas
- Remover imagens mais antigas em conjuntos alojados nos Pipelines do Azure
Geral
Restringir a criação da organização através da política de inquilino Azure AD
Os administradores do Azure DevOps podem agora tirar partido de uma nova política de Azure AD. Esta política permite-lhe restringir a criação de novas organizações do Azure DevOps ligadas ao Azure Active Directory da sua empresa. Para saber mais sobre a política, veja a documentação aqui.
Pipelines do Azure
Variáveis só de leitura
As variáveis de sistema foram documentadas como imutáveis, mas na prática poderiam ser substituídas por uma tarefa e as tarefas a jusante iriam recolher o novo valor. Com esta atualização, reforçamos a segurança em torno das variáveis de pipeline para tornar as variáveis de sistema e tempo de fila só de leitura. Além disso, pode tornar uma variável YAML só de leitura ao marcá-la da seguinte forma.
variables:
- name: myVar
value: myValue
readonly: true
Suporte para variáveis de saída numa tarefa de implementação
Agora, pode definir variáveis de saída nos hooks de ciclo de vida de uma tarefa de implementação e consumi-las noutros passos e tarefas a jusante na mesma fase.
Ao executar estratégias de implementação, pode aceder a variáveis de saída em tarefas com a seguinte sintaxe.
- Para a estratégia runOnce :
$[dependencies.<job-name>.outputs['<lifecycle-hookname>.<step-name>.<variable-name>']]
- Para a estratégia de canários :
$[dependencies.<job-name>.outputs['<lifecycle-hookname>_<increment-value>.<step-name>.<variable-name>']]
- Para a estratégia sem interrupção :
$[dependencies.<job-name>.outputs['<lifecycle-hookname>_<resource-name>.<step-name>.<variable-name>']]
// Set an output variable in a lifecycle hook of a deployment job executing canary strategy
- deployment: A
pool:
vmImage: 'ubuntu-latest'
environment: staging
strategy:
canary:
increments: [10,20] # creates multiple jobs, one for each increment. Output variable can be referenced with this.
deploy:
steps:
- script: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the deployment variable value"
name: setvarStep
- script: echo $(setvarStep.myOutputVar)
name: echovar
// Map the variable from the job
- job: B
dependsOn: A
pool:
vmImage: 'ubuntu-latest'
variables:
myVarFromDeploymentJob: $[ dependencies.A.outputs['deploy_10.setvarStep.myOutputVar'] ]
steps:
- script: "echo $(myVarFromDeploymentJob)"
name: echovar
Saiba mais sobre como definir uma variável de saída de várias tarefas
Evitar a reversão de alterações críticas
Nos pipelines de versão clássicos, é comum depender de implementações agendadas para atualizações regulares. Mas, quando tem uma correção crítica, pode optar por iniciar uma implementação manual fora de banda. Ao fazê-lo, as versões mais antigas continuam a manter-se agendadas. Isto colocava um desafio, uma vez que a implementação manual seria revertida quando as implementações fossem retomadas de acordo com o agendamento. Muitos de tiverem comunicado este problema e já o corrigimos. Com a correção, todas as implementações agendadas mais antigas para o ambiente serão canceladas quando iniciar manualmente uma implementação. Isto só é aplicável quando a opção de colocação em fila está selecionada como "Implementar mais recente e cancelar outras pessoas".
Remover imagens mais antigas em conjuntos alojados nos Pipelines do Azure
No dia 23 de março de 2020, iremos remover as seguintes imagens dos nossos conjuntos alojados nos Pipelines do Azure.
- Windows Server 2012 R2 com Visual Studio 2015 (vs2015-win2012r2)
- Mac OS High Sierra 10.13 (macOS-10.13)
- Windows Server Core 1803 (win1803)
Ao remover estas imagens, continuaremos a implementar versões de imagens mais recentes de forma mais eficiente.
Para saber mais sobre a remoção destas imagens, veja a mensagem de blogue remover imagens mais antigas nos conjuntos alojados nos Pipelines do Azure .
Passos seguintes
Nota
Estas funcionalidades serão implementadas nas próximas duas a três semanas.
Aceda ao Azure DevOps e dê uma vista de olhos.
Como fornecer comentários
Gostaríamos de saber o que pensa sobre estas funcionalidades. Utilize o menu de ajuda para comunicar um problema ou fornecer uma sugestão.
Também pode obter conselhos e as suas perguntas respondidas pela comunidade no Stack Overflow.
Obrigado,
Vijay Machiraju