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://www.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-sampleAndra 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.