Esta es una guía sobre cómo se puede integrar Azure DevOps con eSigner CodeSignTool para realizar la firma de código automatizada.
CodeSignTool es una utilidad de línea de comandos adecuada para los procesos de firma de código en la nube y se integra a la perfección con varias plataformas de CI/CD. Forma parte de eSigner: nuestro servicio de firma remota que ofrece un enfoque eficiente, seguro y fácil de usar para la firma de códigos.
Variables de entorno
- NOMBRE DE USUARIO: nombre de usuario de la cuenta SSL.com. (Requerido)
- CONTRASEÑA: Contraseña de la cuenta SSL.com (Obligatorio)
- CREDENCIAL_ID: ID de credencial para el certificado de firma. Si se omite credential_id y el usuario tiene solo un certificado de firma de código de eSigner, CodeSignTool lo usará de forma predeterminada. Si el usuario tiene más de un certificado de firma de código, este parámetro es obligatorio. (Requerido)
- TOTP_SECRETO: OAuth TOTP Secreto. Puede acceder a información detallada sobre https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Obligatorio)
- ENTORNO_NOMBRE : Entorno 'TEST' o 'PROD'. (Requerido)
Ingresos
- ruta_archivo_entrada: ruta del objeto de código que se firmará. (Requerido)
- salida_dir_ruta: Directorio donde se escribirán los objetos de código firmados. Si se omite output_path, el archivo especificado en -file_path se sobrescribirá con el archivo firmado.
Crear un proyecto en visualstudio.com
Cree un nuevo archivo .yml en su editor de código
Establecer activadores de integración y variables de entorno
Disparadores de integración continua
desencadenar:
- ninguna
Define las variables de entorno globalmente. La propiedad de nivel de trabajo anula las variables globales
variables:
buildConfiguration: 'Lanzamiento'
Agrupar trabajos en etapas
Escriba los pasos para la etapa de construcción. Todos los trabajos en una etapa deben completarse antes de que se ejecute la siguiente etapa.
etapas:
– etapa: construir
# Cuando se ejecuta el flujo de trabajo, este es el nombre que se registra
displayName: Construir
trabajos:
- trabajo:
piscina:
Ejecutar trabajo en máquinas virtuales de Windows
vmImage: 'windows-latest'
pasos:
Instalar Dotnet 6.0.x
– tarea: UseDotNet@2
displayName: 'Instalar .NET Core SDK'
entradas:
versión: '6.0.x'
performMultiLevelLookup: verdadero
includePreviewVersions: verdadero
Restaurar proyecto Dotnet
– tarea: DotNetCoreCLI@2
displayName: Restaurar
entradas:
comando: 'restaurar'
Cree un proyecto dotnet con la configuración de lanzamiento
– tarea: DotNetCoreCLI@2
displayName: Construir
entradas:
comando: construir
proyectos: HelloWorld.csproj
argumentos: '–configuración $(buildConfiguration)'
Crear directorios para artefactos firmados
– powershell: Nuevo elemento -Directorio de tipo de elemento -Path ./artifacts
displayName: 'Directorios creados para artefactos'
Crear directorios para paquetes firmados
– powershell: Nuevo artículo - Directorio de tipo de artículo - Ruta ./paquetes
displayName: 'Directorios creados para paquetes'
Copie el artefacto para firmar la ruta
– powershell: Copiar elemento ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destino ./packages/HelloWorld.dll
displayName: "Copiar artefactos creados en el directorio de paquetes"
Guarde el artefacto para usar el trabajo de firma
– tarea: PublishBuildArtifacts@1
displayName: 'Guardar para ser artefacto firmado para descargar'
entradas:
ruta de publicación: ./packages/HelloWorld.dll
nombre del artefacto: HelloWorld.dll
Escriba los pasos para la etapa Sign
– etapa: Signo
# Cuando se ejecuta el flujo de trabajo, este es el nombre que se registra
displayName: Signo
trabajos:
- trabajo:
piscina:
Ejecutar trabajo en máquinas virtuales Ubuntu
vmImage: "Ubuntu-último"
pasos:
Crear directorios para artefactos firmados
– guión: mkdir -p ./artefactos && mkdir -p ./paquetes
displayName: "Directorios creados para artefactos y paquetes"
Descargar el artefacto a firmar
– tarea: DescargarPipelineArtifact@2
entradas:
artefacto: HelloWorld.dll
ruta de descarga: ./paquetes
Instalar Docker 17.09.0-ce
– tarea: DockerInstaller@0
displayName: Instalador de Docker
entradas:
dockerVersión: 17.09.0-ce
tipo de lanzamiento: estable
Docker Pull CodeSigner Imagen de Docker
– guión: docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker Pull CodeSigner Docker Image'
Firme el artefacto con la imagen de la ventana acoplable CodeSigner
– script: docker run -i –rm –dns 8.8.8.8 –host de red –volumen $PWD/paquetes:/codiseño/ejemplos –volume $PWD/artefactos:/codiseño/salida
-e NOMBRE DE USUARIO=$(NOMBRE DE USUARIO) -e CONTRASEÑA=$(CONTRASEÑA) -e ID_CREDENCIAL=$(ID_CREDENCIAL) -e TOTP_SECRET=$(TOTP_SECRET)
-e NOMBRE_ENTORNO=$(NOMBRE_ENTORNO) ghcr.io/sslcom/codesigner:última señal -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codiseño/salida
displayName: 'Firmar el artefacto con la imagen de la ventana acoplable CodeSigner'
Guardar artefacto firmado para descargar
– tarea: PublishBuildArtifacts@1
displayName: 'Guardar artefacto firmado para descargar'
entradas:
ruta de publicación: ./artifacts/HelloWorld.dll
nombre del artefacto: HelloWorld.dll
Crear un nuevo archivo .gitignore
Escribir:
papelera
obj
.vscode
En la barra de mensajes, escriba Tubería creada.yml y haga clic en el COMPROMÉTASE .
Proceda a hacer clic en el Sincronizar cambios .
Vaya a visualstudio.com y haga clic en Repos en el tablero
Actualice la página para ver el archivo yml
Haga clic en Pipelines en el tablero
A continuación, haz clic Crear canalización
Haga clic en Azure Repos Git
Seleccione su archivo YAML
Haga clic en Variables botón seguido por Nueva variable
Coloque el valor para cada variable de entorno y haga clic en el OK .
Haga clic en el signo + para seguir agregando cada variable
Después de colocar todas las variables, proceda a crear su canalización
Ejecute su canalización
Haga clic en Pipelines en el tablero. Haga clic en los tres puntos (más opciones) en su tubería. Hacer clic Ejecutar canalización. Finalmente, haga clic en Ejecutar del botón.
Haga clic en Construir para iniciar la etapa de construcción
Compruebe si cada trabajo en la etapa de construcción es exitoso
Haga clic en la flecha desplegable junto a Trabajos para ver el estado de cada trabajo de compilación
Inicie la etapa Firmar haciendo clic en Trabajos
Compruebe si cada paso en el proceso de firma es exitoso
Vuelva a verificar si las etapas de construcción y firma son exitosas
Ejemplo de canalización de Azure DevOps
Consulte la canalización de ejemplo de Azure DevOps que hemos creado en github.com/SSLcom/codesigner-azuredevops-sampleOtras guías de integración de firma remota
- Integración de firma de código en la nube con CircleCI
- Integración de firma de código en la nube con acciones de GitHub
- Integración de firma de código en la nube con GitLab CI
- Integración de firma de código en la nube con Travis CI
- Integración de firma de código en la nube con Jenkins CI
- Integración de firma de código en la nube con BitBucket
- Automatización de la firma de código en la nube con servicios de CI/CD
¿Necesita soluciones personalizadas?
Con nuestro conocimiento experto y personal de soporte de cinco estrellas, estamos listos y dispuestos a trabajar con usted en soluciones personalizadas o descuentos en firmas de alto volumen a nivel empresarial. Complete el siguiente formulario y nos pondremos en contacto.