Opret en Jenkins-fil og definer pipelinen på din kodeeditor
pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Indstil .NET-værktøjet på din kodeeditor ved at konfigurere Jenkins
Klik på knappen Administrer Jenkins fanen på dit Jenkins-dashboard.
Rul ned på siden, og klik på Global Tool Configuration.
Rul ned og klik .NET SDK-installationer.
Kopiér værdien for .NET SDK og indsæt den i din kodeeditor.
værktøjer { dotnetsdk "DOTNET_CORE_3.1.24" }
Gå til plugins.jenkins.io og installer .NET SDK-pluginnet
Under Administrer Jenkins på dit Dashboard, tjek Administrer plugins for at bekræfte, om .NET SDK-plugin'et er blevet installeret.
Når du har bekræftet, at plugin'et er blevet installeret, skal du gå tilbage til .NET SDK-INSTALLATIONER og sørge for, at den korrekte version og udgivelsesdetaljer for .NET SDK-pluginnet er indstillet. Fortsæt med at klikke på Gem .
Indstil miljøvariablerne på din kodeeditor
miljø { BRUGERNAVN = legitimationsoplysninger('es-brugernavn') // SSL.com-kontobrugernavn. PASSWORD = credentials('es-password') // SSL.com kontoadgangskode. CREDENTIAL_ID = credentials('es-crendential-id') // Credential ID for signering af certifikat. TOTP_SECRET = legitimationsoplysninger('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 bliver det 'PROD' }
Du finder værdierne for hver variabel på dit Jenkins-dashboard under Sikkerhed> Administrer Legitimationsoplysninger.
Indstil stadierne for oprettelse af artefaktbibliotek, træk af docker-billede, opbygning af .NET og kodesignering af artefakten
1) Opret artefaktkatalog til butikssignerede og usignerede artefaktfiler.
stage('Create artifacts directory') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/pakker' } }2) Træk Codesigner Docker-billede fra Github Registry.
stage('Docker Pull Image') { steps {sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }3) Byg et dotnet-projekt eller -løsning og alle dets afhængigheder. Efter at dll- eller exe-filen er blevet oprettet, skal du kopiere til mappen 'pakker' for at signere.
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 det trin, hvor de oprettede DLL-filer (artefakt) vil blive signeret med CodeSignTool.
stage('Sign og gem Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --netværksvært --volumen ${WORKSPACE}/pakker:/codesign/eksempler -- bind ${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:nyeste tegn -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { altid { archiveArtifacts artifacts: "artifacts/HelloWorld.dll", } } } } }
Opret en Github-repo
Kopier hver af push-kommandokomponenterne på Github.Skriv kommandoerne på en ny terminal på din kodeeditor for at skubbe koden.
Når du har trykket koden, skal du gå til din Github-konto og kopiere URL-linket til dit projekt.
Fortsæt til din Jenkins-konto, og klik på Skab et job .
Vælg Flergrenet rørledning, indstil navnet på dit projekt, og klik på OK .
Under Filialkilder, Vælg Git og indsæt URL-linket til dit Github-projekt.
Rul ned til Scan Multibranch Pipeline Triggere. Sæt kryds i boksen for Periodisk hvis ikke andet køres. Du kan vælge 2 minutter.
Klik på knappen Gem .
Gå tilbage til din Jenkins-konto, klik på dit projekt, og bekræft, om pipelinen er startet
Klik på dit Jenkins-projekt og vælg Scan multibranch pipeline nu på instrumentbrættet.
Klik Konsol output
Rul ned og kontroller, om kodesignering er vellykket
Hele scriptet
Definer rørledningen
pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Installer byggeværktøjer
værktøjer { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }
Opret en miljøvariabel
miljø { BRUGERNAVN = legitimationsoplysninger('es-brugernavn') // SSL.com-kontobrugernavn. PASSWORD = credentials('es-password') // SSL.com kontoadgangskode. CREDENTIAL_ID = credentials('es-crendential-id') // Credential ID for signering af certifikat. TOTP_SECRET = legitimationsoplysninger('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 bliver det 'PROD' }
Script til bygge- og skiltestadierne
stadier {// 1) Opret artefaktkatalog til butikssignerede og usignerede artefaktfiler stage('Opret artefaktmappe') { trin { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/pakker' } } / / 2) Træk Codesigner Docker-billede fra Github Registry-stadiet ('Docker Pull Image') { trin { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Byg et dotnet-projekt eller -løsning og alle dens afhængigheder. // Efter at den er blevet oprettet dll- eller exe-fil, kopieres til 'packages'-mappen for at signere fase('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 det trin, hvor de oprettede DLL-filer (artefakt) vil blive signeret med CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- bind ${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:nyeste tegn -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { altid { archiveArtifacts artifacts: "artifacts/HelloWorld.dll", } } } } }
Prøve Jenkins Pipeline
Tjek prøven Jenkins pipeline, vi har lavet på github.com/SSLcom/codesigner-jenkins-sampleAndre Remote Signing Integration Guides
- 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 Azure DevOps
- Cloud Code Signing Automation med CI/CD-tjenester
Brug for tilpassede løsninger?
Med vores ekspertviden og femstjernede supportmedarbejdere er vi klar til og villige til at arbejde sammen med dig om skræddersyede løsninger eller store signeringsrabatter på virksomhedsniveau. Udfyld formularen nedenfor, så kontakter vi dig.