Este é um guia sobre como o Azure DevOps pode ser integrado ao eSigner CodeSignTool para executar a assinatura de código automatizada.
CodeSignTool é um utilitário de linha de comando adequado para processos de assinatura de código em nuvem e se integra perfeitamente a várias plataformas de CI/CD. Ele faz parte do eSigner: nosso serviço de assinatura remota que oferece uma abordagem eficiente, segura e fácil de usar para assinatura de código.
variáveis ambientais
- NOME DE USUÁRIO: nome de usuário da conta SSL.com. (Requeridos)
- SENHA: Senha da conta SSL.com (obrigatório)
- CREDENTIAL_ID: ID da credencial para assinatura do certificado. Se credential_id for omitido e o usuário tiver apenas um certificado de assinatura de código eSigner, o CodeSignTool usará como padrão. Se o usuário tiver mais de um certificado de assinatura de código, esse parâmetro é obrigatório. (Requeridos)
- TOTP_SECRET: OAuth TOTP Secret. Você pode acessar informações detalhadas sobre https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Obrigatório)
- AMBIENTE_NAME : Ambiente 'TEST' ou 'PROD'. (Requeridos)
entradas
- caminho_do_arquivo_de_entrada: Caminho do objeto de código a ser assinado. (Requeridos)
- saída_dir_caminho: Diretório onde o(s) objeto(s) de código assinado(s) será(ão) escrito(s). Se output_path for omitido, o arquivo especificado em -file_path será substituído pelo arquivo assinado.
Crie um projeto em visualstudio.com
Crie um novo arquivo .yml em seu editor de código
Definir acionadores de integração e variáveis de ambiente
Acionadores de integração contínua
acionar:
- Nenhum
Define variáveis de ambiente globalmente. A propriedade de nível de trabalho substitui as variáveis globais
variáveis:
buildConfiguration: 'Release'
Agrupar trabalhos em etapas
Escreva as etapas para o estágio de construção. Todos os trabalhos em um estágio devem ser concluídos antes que o próximo estágio seja executado.
estágios:
- fase: construir
# Quando o fluxo de trabalho é executado, este é o nome registrado
displayName: Construir
empregos:
- trabalho:
piscina:
Executar trabalho em VMs do Windows
vmImage: 'windows-latest'
passos:
Instale o Dotnet 6.0.x
– tarefa: UseDotNet@2
displayName: 'Instalar SDK do .NET Core'
entradas:
versão: '6.0.x'
performMultiLevelLookup: verdadeiro
includePreviewVersions: verdadeiro
Restaurar projeto Dotnet
– tarefa: DotNetCoreCLI@2
displayName: Restaurar
entradas:
comando: 'restaurar'
Construir projeto dotnet com configuração de lançamento
– tarefa: DotNetCoreCLI@2
displayName: Construir
entradas:
comando: construir
projetos: HelloWorld.csproj
argumentos: '–configuration $(buildConfiguration)'
Criar diretórios para artefatos assinados
– powershell: New-Item -ItemType Directory -Path ./artifacts
displayName: 'Diretórios criados para artefatos'
Criar diretórios para pacotes assinados
– powershell: New-Item -ItemType Directory -Path ./packages
displayName: 'Diretórios criados para pacotes'
Copiar artefato para ser o caminho de assinatura
– powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: “Copiar artefatos construídos para o diretório de pacotes”
Salvar artefato para usar o trabalho de assinatura
– tarefa: PublishBuildArtifacts@1
displayName: 'Salvar para ser assinado artefato para download'
entradas:
caminho para publicar: ./packages/HelloWorld.dll
artefatoName: HelloWorld.dll
Escreva as etapas para o estágio Sign
– palco: Sinal
# Quando o fluxo de trabalho é executado, este é o nome registrado
displayName: Assinar
empregos:
- trabalho:
piscina:
Executar trabalho em VMs do Ubuntu
vmImage: “Ubuntu mais recente”
passos:
Criar diretórios para artefatos assinados
– script: mkdir -p ./artifacts && mkdir -p ./packages
displayName: “Diretórios criados para artefatos e pacotes”
Baixe o artefato a ser assinado
– tarefa: DownloadPipelineArtifact@2
entradas:
artefato: HelloWorld.dll
downloadPath: ./pacotes
Instale o Docker 17.09.0-ce
– tarefa: DockerInstaller@0
displayName: Instalador do Docker
entradas:
dockerVersão: 17.09.0-ce
Tipo de lançamento: estável
Docker Pull CodeSigner Imagem do Docker
– script: docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker Pull CodeSigner Docker Image'
Artefato de assinatura com a imagem do docker CodeSigner
– script: docker run -i –rm –dns 8.8.8.8 –host de rede –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output
-e NOME DE USUÁRIO=$(NOME DE USUÁRIO) -e SENHA=$(SENHA) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:último sinal -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codesign/saída
displayName: 'Assine artefato com a imagem do docker CodeSigner'
Salvar artefato assinado para download
– tarefa: PublishBuildArtifacts@1
displayName: 'Salvar artefato assinado para download'
entradas:
caminho para publicar: ./artifacts/HelloWorld.dll
artefatoName: HelloWorld.dll
Crie um novo arquivo .gitignore
Digitar:
caixa
vol
.vscode
Na barra de mensagens, digite Created pipeline.yml e clique no botão COMPROMETA-SE botão
Prossiga para clicar no Sincronizar alterações botão
Vá para visualstudio.com e clique Repos no painel
Atualize a página para ver o arquivo yml
Clique Dutos no painel
Em seguida, clique em Criar pipeline
Clique em Azure Repos Git
Selecione seu arquivo YAML
Clique Variáveis botão seguido por Nova variável
Coloque o valor para cada variável de ambiente e clique no botão OK botão
Clique no sinal + para continuar adicionando cada variável
Depois de colocar todas as variáveis, prossiga para criar seu pipeline
Execute seu pipeline
Clique Dutos no painel. Clique nos três pontos (mais opções) em seu pipeline. Clique Executar pipeline. Finalmente, clique no Execute botão.
Clique em Construir para iniciar o estágio de construção
Verifique se cada trabalho no estágio de construção foi bem-sucedido
Clique na seta suspensa ao lado Trabalho para ver o status de cada trabalho de compilação
Inicie o estágio Sign clicando Trabalho
Verifique se cada etapa do processo de assinatura foi bem-sucedida
Verifique novamente se os estágios de construção e assinatura foram bem-sucedidos
Exemplo de pipeline DevOps do Azure
Confira o exemplo de pipeline do Azure DevOps que criamos em github.com/SSLcom/codesigner-azuredevops-sampleOutros guias de integração de assinatura remota
- Integração de assinatura de código em nuvem com CircleCI
- Integração do Cloud Code Signing com ações do GitHub
- Integração do Cloud Code Signing com GitLab CI
- Integração do Cloud Code Signing com o Travis CI
- Integração do Cloud Code Signing com Jenkins CI
- Integração de assinatura de código de nuvem com BitBucket
- Automação de assinatura de código em nuvem com serviços de CI/CD
Precisa de soluções personalizadas?
Com nosso conhecimento especializado e equipe de suporte cinco estrelas, estamos prontos e dispostos a trabalhar com você em soluções personalizadas ou descontos em assinaturas de alto volume de nível empresarial. Preencha o formulário abaixo e entraremos em contato.