Dette er en veiledning for hvordan Azure DevOps kan integreres med eSigner CodeSignTool for å utføre automatisert kodesignering.
CodeSignTool er et kommandolinjeverktøy som er egnet for skykodesigneringsprosesser og sømløst integreres med ulike CI/CD-plattformer. Den er en del av eSigner: vår fjernsigneringstjeneste som tilbyr en effektiv, sikker og brukervennlig tilnærming til kodesignering.
Miljøvariabler
- USERNAME: SSL.com-konto brukernavn. (Obligatorisk)
- PASSORD: SSL.com-kontopassord (påkrevd)
- CREDENTIAL_ID: Legitimasjons-ID for signering av sertifikat. Hvis credential_id er utelatt og brukeren bare har ett eSigner-kodesigneringssertifikat, vil CodeSignTool som standard bruke det. Hvis brukeren har mer enn ett kodesigneringssertifikat, er denne parameteren obligatorisk. (Obligatorisk)
- TOTP_SECRET: OAuth TOTP-hemmelighet. Du kan få tilgang til detaljert informasjon om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Nødvendig)
- ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljø. (Obligatorisk)
Innganger
- input_file_path: Banen til kodeobjektet som skal signeres. (Obligatorisk)
- output_dir_path: Katalog hvor signert kodeobjekt(er) vil bli skrevet. Hvis output_path er utelatt, vil filen spesifisert i -file_path bli overskrevet med den signerte filen.
Lag et prosjekt på visualstudio.com
Opprett en ny .yml-fil på koderedigeringsprogrammet
Angi integrasjonstriggere og miljøvariabler
Kontinuerlig integrasjon utløser
avtrekker:
- ingen
Definerer miljøvariabler globalt. Jobbnivåegenskap overstyrer globale variabler
variabler:
buildConfiguration: 'Release'
Grupper jobber i etapper
Skriv trinnene for byggefasen. Alle jobber i ett trinn må fullføres før neste trinn utføres.
stadier:
– scene: bygge
# Når arbeidsflyten kjører, er dette navnet som logges
displayName: Bygg
arbeidsplasser:
– jobb:
basseng:
Kjør jobben på Windows VM-er
vmImage: 'Windows-nyeste'
trinn:
Installer Dotnet 6.0.x
– oppgave: UseDotNet@2
displayName: 'Installer .NET Core SDK'
innganger:
versjon: '6.0.x'
performMultiLevel Lookup: sant
includePreviewVersions: true
Gjenopprett Dotnet-prosjektet
– oppgave: DotNetCoreCLI@2
displayName: Gjenopprett
innganger:
kommando: 'gjenopprett'
Bygg dotnet-prosjekt med utgivelseskonfigurasjon
– oppgave: DotNetCoreCLI@2
displayName: Bygg
innganger:
kommando: bygge
prosjekter: HelloWorld.csproj
argumenter: '–configuration $(buildConfiguration)'
Lag kataloger for signerte artefakter
– powershell: New-Item -ItemType Directory -Path ./artifacts
displayName: 'Opprettet kataloger for artefakter'
Opprett kataloger for signerte pakker
– powershell: New-Item -ItemType Directory -Path ./packages
displayName: 'Opprettet kataloger for pakker'
Kopier artefakten som signeringsbane
– powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destinasjon ./packages/HelloWorld.dll
displayName: "Kopier bygde artefakter til pakkekatalogen"
Lagre artefakt for å bruke signeringsjobb
– oppgave: PublishBuildArtifacts@1
displayName: 'Lagre for å bli signert artefakt for nedlasting'
innganger:
pathtoPublish: ./packages/HelloWorld.dll
artefaktnavn: HelloWorld.dll
Skriv trinnene for Sign-scenen
– scene: Sign
# Når arbeidsflyten kjører, er dette navnet som logges
displayName: Sign
arbeidsplasser:
– jobb:
basseng:
Kjør jobb på Ubuntu VM-er
vmImage: "Ubuntu-siste"
trinn:
Lag kataloger for signerte artefakter
– script: mkdir -p ./artifacts && mkdir -p ./packages
displayName: "Opprettet kataloger for artefakter og pakker"
Last ned artefakten som skal signeres
– oppgave: Last ned PipelineArtifact@2
innganger:
artefakt: HelloWorld.dll
nedlastingsbane: ./pakker
Installer Docker 17.09.0-ce
– oppgave: DockerInstaller@0
displayName: Docker Installer
innganger:
dockerVersjon: 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'
Signer artefakt med CodeSigner docker-bilde
– script: docker run -i –rm –dns 8.8.8.8 –nettverksvert –volum $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output
-e BRUKERNAVN=$(BRUKERNAVN) -e PASSORD=$(PASSORD) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:siste tegn -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codesign/output
displayName: 'Sign artefakt med CodeSigner docker-bilde'
Lagre signert artefakt for nedlasting
– oppgave: PublishBuildArtifacts@1
displayName: 'Lagre signert artefakt for nedlasting'
innganger:
pathtoPublish: ./artifacts/HelloWorld.dll
artefaktnavn: HelloWorld.dll
Opprett en ny .gitignore-fil
Skriv inn:
bin
obj
.vscode
På meldingslinjen skriver du inn Created pipeline.yml og klikker på Forplikte knapp
Fortsett til å klikke på Synkroniser endringer knapp
Fortsett til visualstudio.com og klikk Repos på dashbordet
Oppdater siden for å se yml-filen
Klikk Rørledninger på dashbordet
Deretter klikker du Lag rørledning
Klikk på Azure Repos Git
Velg din YAML-fil
Klikk Variabler knappen etterfulgt av Ny variabel
Plasser verdien for hver miljøvariabel og klikk på OK knapp
Klikk på +-tegnet for å fortsette å legge til hver variabel
Etter å ha plassert inn alle variablene, fortsett å opprette pipeline
Kjør rørledningen din
Klikk Rørledninger på dashbordet. Klikk på de tre prikkene (flere alternativer) på rørledningen. Klikk Kjør rørledning. Til slutt klikker du på Kjør knapp.
Klikk Bygg for å starte byggefasen
Sjekk om hver jobb i byggefasen er vellykket
Klikk på rullegardinpilen ved siden av Jobb for å se statusen til hver byggejobb
Start Sign-stadiet ved å klikke Jobb
Sjekk om hvert trinn i signeringsprosessen er vellykket
Dobbeltsjekk om både bygge- og skiltfasene er vellykkede
Eksempel på Azure DevOps Pipeline
Sjekk ut eksempelet på Azure DevOps-pipeline vi har laget på github.com/SSLcom/codesigner-azuredevops-sampleAndre veiledninger for fjernsigneringsintegrering
- Cloud Code Signing-integrasjon med CircleCI
- Cloud Code Signing-integrasjon med GitHub Actions
- Cloud Code Signing-integrasjon med GitLab CI
- Cloud Code Signing-integrasjon med Travis CI
- Cloud Code Signing-integrasjon med Jenkins CI
- Cloud Code Signing-integrasjon med BitBucket
- Skykodesigneringsautomatisering med CI/CD-tjenester
Trenger du tilpassede løsninger?
Med vår ekspertkunnskap og femstjerners støttepersonell er vi klare og villige til å samarbeide med deg om tilpassede løsninger eller store signeringsrabatter på bedriftsnivå. Fyll ut skjemaet under så tar vi kontakt.