Det här är en guide om hur Azure DevOps kan integreras med eSigner CodeSignTool för att utföra automatisk kodsignering.
CodeSignTool är ett kommandoradsverktyg som är lämpligt för molnkodsigneringsprocesser och sömlöst integreras med olika CI/CD-plattformar. Det är en del av eSigner: vår fjärrsigneringstjänst som erbjuder en effektiv, säker och användarvänlig metod för kodsignering.
Miljövariabler
- USERNAME: Användarnamn för SSL.com-konto. (Nödvändig)
- LÖSENORD: Lösenord för SSL.com-konto (krävs)
- CREDENTIAL_ID: Autentiserings-ID för signering av certifikat. Om credential_id utelämnas och användaren bara har ett eSigner-kodsigneringscertifikat, kommer CodeSignTool att använda det som standard. Om användaren har mer än ett kodsigneringscertifikat är denna parameter obligatorisk. (Nödvändig)
- TOTP_SECRET: OAuth TOTP-hemlighet. Du kan komma åt detaljerad information om https://ssl.com/how-to/automate-esigner-ev-code-signing (Nödvändig)
- ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljö. (Nödvändig)
ingångar
- input_file_path: Sökväg till kodobjekt som ska signeras. (Nödvändig)
- output_dir_path: Katalog där signerade kodobjekt kommer att skrivas. Om output_path utelämnas kommer filen som anges i -file_path att skrivas över med den signerade filen.
Skapa ett projekt på visualstudio.com

Skapa en ny .yml-fil i din kodredigerare

Ställ in integrationstriggers och miljövariabler

Kontinuerlig integration utlöser
utlösare:
- ingen
Definierar miljövariabler globalt. Jobbnivåegenskap åsidosätter globala variabler
variabler:
buildConfiguration: 'Release'
Gruppera jobb i etapper
Skriv stegen för byggskedet. Alla jobb i ett steg måste slutföras innan nästa steg utförs.
steg:
– etapp: bygga
# När arbetsflödet körs är detta namnet som loggas
displayName: Bygg
jobb:
- jobb:
slå samman:
Kör jobb på Windows virtuella datorer
vmImage: 'Windows-senaste'
steg:
Installera Dotnet 6.0.x
– uppgift: UseDotNet@2
displayName: 'Installera .NET Core SDK'
ingångar:
version: '6.0.x'
performMultiLevelLookup: sant
includePreviewVersions: true
Återställ Dotnet-projektet
– uppgift: DotNetCoreCLI@2
displayName: Återställ
ingångar:
kommando: 'återställ'
Bygg dotnet-projekt med Release-konfiguration
– uppgift: DotNetCoreCLI@2
displayName: Bygg
ingångar:
kommando: bygga
projekt: HelloWorld.csproj
argument: '–configuration $(buildConfiguration)'
Skapa kataloger för signerade artefakter
– powershell: New-Item -ItemType Directory -Path ./artifacts
displayName: 'Skapade kataloger för artefakter'
Skapa kataloger för signerade paket
– powershell: New-Item -ItemType Directory -Path ./packages
displayName: 'Skapade kataloger för paket'
Kopiera artefakt som signeringsväg
– powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: "Kopiera byggda artefakter till paketkatalogen"
Spara artefakt för att använda signeringsjobb
– uppgift: PublishBuildArtifacts@1
displayName: 'Spara för att vara signerad artefakt för nedladdning'
ingångar:
pathtoPublish: ./packages/HelloWorld.dll
artefaktnamn: HelloWorld.dll
Skriv stegen för Sign-scenen

– scen: Sign
# När arbetsflödet körs är detta namnet som loggas
displayName: Sign
jobb:
- jobb:
slå samman:
Kör jobb på Ubuntu virtuella datorer
vmImage: "Ubuntu-senaste"
steg:
Skapa kataloger för signerade artefakter
– skript: mkdir -p ./artifacts && mkdir -p ./packages
displayName: "Skapade kataloger för artefakter och paket"
Ladda ner artefakten som ska signeras
– uppgift: DownloadPipelineArtifact@2
ingångar:
artefakt: HelloWorld.dll
nedladdningsväg: ./paket
Installera Docker 17.09.0-ce
– uppgift: DockerInstaller@0
displayName: Docker Installer
ingångar:
dockerVersion: 17.09.0-ce
releaseType: stabil
Docker Pull CodeSigner Docker Image
– script: docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker Pull CodeSigner Docker Image'
Sign artefakt med CodeSigner docker-bild
– script: docker run -i –rm –dns 8.8.8.8 –nätverksvärd –volym $PWD/paket:/codesign/exempel –volym $PWD/artefakter:/codesign/output
-e ANVÄNDARNAMN=$(USERNAME) -e LÖSENORD=$(LÖSENORD) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:senaste tecken -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codesign/output
displayName: 'Signeringsartefakt med CodeSigner docker-bild'
Spara signerad artefakt för nedladdning
– uppgift: PublishBuildArtifacts@1
displayName: 'Spara signerad artefakt för nedladdning'
ingångar:
pathtoPublish: ./artifacts/HelloWorld.dll
artefaktnamn: HelloWorld.dll
Skapa en ny .gitignore-fil

Skriv in:
bin
obj
.vscode
I meddelandefältet skriver du Skapad pipeline.yml och klickar på Begå Knappen

Fortsätt att klicka på Synkronisera ändringar Knappen

Fortsätt till visualstudio.com och klicka resten på instrumentbrädan
Uppdatera sidan för att se yml-filen

Klicka Rörledningar på instrumentbrädan

Klicka sedan på Skapa Pipeline

Klicka på Azure Repos Git

Välj din YAML-fil

Klicka variabler knappen följt av Ny variabel

Placera värdet för varje miljövariabel och klicka på OK Knappen

Klicka på +-tecknet för att fortsätta lägga till varje variabel

Efter att ha placerat in alla variabler, fortsätt att skapa din pipeline

Kör din pipeline
Klicka Rörledningar på instrumentbrädan. Klicka på de tre punkterna (fler alternativ) på din pipeline. Klick Kör pipeline. Slutligen klickar du på Körning knapp.

Klicka på Bygg för att starta byggskedet

Kontrollera om varje jobb i byggskedet är framgångsrikt
Klicka på rullgardinspilen bredvid Jobb för att se status för varje byggjobb

Initiera Sign-stadiet genom att klicka Jobb
Kontrollera om varje steg i signeringsprocessen är framgångsrik

Dubbelkolla om både bygg- och skyltsteg är framgångsrika

Exempel på Azure DevOps Pipeline
Kolla in exempel på Azure DevOps-pipeline vi har skapat på github.com/SSLcom/codesigner-azuredevops-sample
Andra guider för integrering av fjärrsignering
- Cloud Code Signing-integration med CircleCI
- Cloud Code Signing-integration med GitHub Actions
- Cloud Code Signing-integration med GitLab CI
- Cloud Code Signing-integration med Travis CI
- Cloud Code Signing-integration med Jenkins CI
- Cloud Code Signing Integration med BitBucket
- Cloud Code Signing Automation med CI/CD-tjänster
Behöver du anpassade lösningar?
Med vår expertkunskap och femstjärniga supportpersonal är vi redo och villiga att arbeta med dig på skräddarsydda lösningar eller rabatter på stora volymer av signering på företagsnivå. Fyll i formuläret nedan så hör vi av oss.
