Opprett en Jenkins-fil og definer rørledningen på koderedigeringsprogrammet
pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Sett .NET-verktøyet på koderedigeringsprogrammet ditt ved å konfigurere Jenkins
Klikk på Administrer Jenkins fanen på Jenkins-dashbordet.
Rull ned på siden og klikk på Global Tool Configuration.
Rull ned og klikk .NET SDK-installasjoner.
Kopier verdien for .NET SDK og lim den inn i koderedigeringsprogrammet.
verktøy { dotnetsdk "DOTNET_CORE_3.1.24" }
Gå til plugins.jenkins.io og installer .NET SDK-plugin
Under Administrer Jenkins på dashbordet, sjekk Administrer programtillegg for å bekrefte om .NET SDK-plugin-modulen er installert.
Etter å ha bekreftet at plugin-en er installert, går du tilbake til .NET SDK-INSTALLASJONER og kontrollerer at den riktige versjonen og utgivelsesdetaljene for .NET SDK-pluginen er angitt. Fortsett til å klikke på Spar knapp.
Still inn miljøvariablene på koderedigeringsprogrammet
miljø { BRUKERNAVN = credentials('es-username') // SSL.com-kontobrukernavn. PASSWORD = credentials('es-password') // SSL.com-kontopassord. CREDENTIAL_ID = legitimasjon('es-crendential-id') // Legitimasjons-ID for signering av sertifikat. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com miljønavn. For demokonto kan det være "TEST", ellers blir det "PROD" }
Du finner verdiene for hver variabel på Jenkins-dashbordet under Sikkerhet> Administrer Legitimasjon.
Angi stadier for å lage artefaktkatalog, trekke docker-bilde, bygge .NET og kodesignering av artefakten
1) Opprett artefaktkatalog for lagre signerte og usignerte artefaktfiler.
stage('Create artifacts directory') { trinn { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/pakker' } }2) Trekk Codesigner Docker Image fra Github Registry.
stage('Docker Pull Image') { trinn { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }3) Bygg et dotnet-prosjekt eller -løsning og alle dets avhengigheter. Etter at dll- eller exe-filen er opprettet, kopierer du til 'pakker'-mappen for signering.
stage('Build Dotnet') { steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/ HelloWorld.dll' } }4) Dette er trinnet der de opprettede DLL-filene (artefakt) blir signert med CodeSignTool.
stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --nettverksvert --volume ${WORKSPACE}/packages:/codesign/examples -- volum ${WORKSPACE}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { alltid { archiveArtifacts artifacts: "artifacts/HelloIlfSuccessful only: trueIfact.dll", } } } } }
Opprett en Github-repo
Kopier hver av push-kommandokomponentene på Github.Skriv kommandoene på en ny terminal på kodeeditoren for å trykke koden.
Etter å ha presset koden, gå til Github-kontoen din og kopier URL-lenken til prosjektet ditt.
Fortsett til Jenkins-kontoen din og klikk på Skap en jobb kobling.
Velg Flergrenet rørledning, angi navnet på prosjektet ditt, og klikk på OK knapp.
Under Filialkilder, plukke ut gå og lim inn URL-koblingen til Github-prosjektet ditt.
Rull ned til Skann multibranch pipeline triggere. Merk av for Periodisk hvis ikke annet kjøres. Du kan velge 2 minutter.
Klikk på Spar knapp.
Gå tilbake til Jenkins-kontoen din, klikk på prosjektet ditt og bekreft om pipelinen har startet
Klikk på Jenkins-prosjektet ditt og velg Skann multibranch pipeline nå på dashbordet.
Klikk Konsollutgang
Rull ned og sjekk om kodesignering er vellykket
Hele manuset
Definer rørledningen
pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Installer byggeverktøy
verktøy { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }
Lag en miljøvariabel
miljø { BRUKERNAVN = credentials('es-username') // SSL.com-kontobrukernavn. PASSWORD = credentials('es-password') // SSL.com-kontopassord. CREDENTIAL_ID = legitimasjon('es-crendential-id') // Legitimasjons-ID for signering av sertifikat. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com miljønavn. For demokonto kan det være "TEST", ellers blir det "PROD" }
Skript for bygge- og skiltstadiene
stadier {// 1) Opprett Artifact Directory for store signerte og usignerte artefaktfiler stage('Create artifacts directory') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Trekk Codesigner Docker-bilde fra Github-registerstadiet ('Docker Pull Image') { trinn { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Bygg et dotnet-prosjekt eller -løsning og alt dens avhengigheter. // Etter at den har blitt opprettet dll- eller exe-fil, kopierer du til 'packages'-mappen for signering ('Build Dotnet') { steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/ Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/HelloWorld.dll' } } // 4) Dette er trinnet der de opprettede DLL-filene (artefakt) blir signert med CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --nettverksvert --volume ${WORKSPACE}/packages:/codesign/examples -- volum ${WORKSPACE}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { alltid { archiveArtifacts artifacts: "artifacts/HelloIlfSuccessful only: trueIfact.dll", } } } } }
Prøve Jenkins Pipeline
Sjekk ut prøven Jenkins-rørledningen vi har laget på github.com/SSLcom/codesigner-jenkins-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 Azure DevOps
- 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.