Maak een Jenkins-bestand en definieer de pijplijn in uw code-editor
pijplijn {agent alle opties {buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds()}
Stel de .NET-tool in op uw code-editor door Jenkins . te configureren
Klik op de Beheer Jenkins tabblad op uw Jenkins-dashboard.
Scroll naar beneden op de pagina en klik op Global Tool Configuration.
Scroll naar beneden en klik .NET SDK-installaties.
Kopieer de waarde voor .NET SDK en plak deze in uw code-editor.
tools { dotnetsdk "DOTNET_CORE_3.1.24" }
Ga naar plugins.jenkins.io en installeer de .NET SDK-plug-in
Onder Beheer Jenkins op je Dashboard, check Beheer plug-ins om te bevestigen of de .NET SDK-plug-in is geïnstalleerd.
Nadat u hebt bevestigd dat de plug-in is geïnstalleerd, gaat u terug naar .NET SDK-INSTALLATIES en zorgt u ervoor dat de juiste versie en releasedetails van de .NET SDK-plug-in zijn ingesteld. Ga verder om op de . te klikken Bespaar knop.
Stel de omgevingsvariabelen in op uw code-editor
omgeving { GEBRUIKERSNAAM = referenties('es-gebruikersnaam') // SSL.com account gebruikersnaam. WACHTWOORD = referenties ('es-wachtwoord') // SSL.com-accountwachtwoord. CREDENTIAL_ID = referenties('es-credential-id') // Referentie-ID voor ondertekening van certificaat. TOTP_SECRET = referenties('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com-omgevingsnaam. Voor demo-account kan het 'TEST' zijn, anders is het 'PROD'}
U vindt de waarden voor elke variabele op uw Jenkins-dashboard onder: Beveiliging> Beheren Geloofsbrieven.
Stel de fasen in voor het maken van de artefactenmap, het ophalen van de docker-afbeelding, het bouwen van .NET en het ondertekenen van code voor het artefact
1) Maak een Artifact Directory voor het opslaan van ondertekende en niet-ondertekende artefactbestanden.
stage('Maak artefactenmap') { stappen { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages'} }2) Haal de Codesigner Docker-afbeelding uit het Github-register.
stage('Docker Pull Image') { stappen { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }3) Bouw een dotnet-project of -oplossing en al zijn afhankelijkheden. Nadat het dll- of exe-bestand is gemaakt, kopieert u naar de map 'packages' om te ondertekenen.
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) Dit is de stap waarin de gemaakte DLL-bestanden (artefact) worden ondertekend met CodeSignTool.
stage('Sign and Save Dotnet Core DLL Artifact') { stappen { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- volume ${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 { altijd { archiveArtifacts artefacten: "artifacts/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Maak een Github-repo
Kopieer elk van de push-opdrachtcomponenten op Github.Schrijf de opdrachten op een nieuwe terminal op uw code-editor om de code te pushen.
Nadat je de code hebt gepusht, ga je naar je Github-account en kopieer je de URL-link van je project.
Ga naar uw Jenkins-account en klik op de Maak een baan link.
Kies Multibranch-pijpleiding, stel de naam voor uw project in en klik op de OK knop.
Onder Branchebronnenselecteer Git en plak de URL-link van uw Github-project.
Blader naar beneden naar Multibranch-pijplijntriggers scannen. Vink het vakje aan voor Periodiek, indien niet anders uitgevoerd. U kunt selecteren 2 minuten.
Klik op de Bespaar knop.
Ga terug naar je Jenkins-account, klik op je project en bevestig of de pijplijn is gestart
Klik op uw Jenkins-project en selecteer Nu multibranch-pijpleiding scannen op het Dashboard.
Klik Console-uitgang
Scroll naar beneden en controleer of het ondertekenen van de code gelukt is
Gehele script
Definieer de pijplijn
pijplijn {agent alle opties {buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds()}
Bouwtools installeren
tools {dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk}
Een omgevingsvariabele maken
omgeving { GEBRUIKERSNAAM = referenties('es-gebruikersnaam') // SSL.com account gebruikersnaam. WACHTWOORD = inloggegevens ('es-wachtwoord') // SSL.com-accountwachtwoord. CREDENTIAL_ID = referenties('es-credential-id') // Referentie-ID voor ondertekening van certificaat. TOTP_SECRET = referenties('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com-omgevingsnaam. Voor demo-account kan het 'TEST' zijn, anders is het 'PROD'}
Script voor de bouw- en ondertekenfase
stages { // 1) Maak een Artifact Directory om ondertekende en niet-ondertekende artefactbestanden op te slaan / 2) Haal Codesigner Docker Image uit Github Registry stage('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest'}} // 3) Bouw een dotnet-project of -oplossing en alle zijn afhankelijkheden. // Nadat het dll- of exe-bestand is gemaakt, kopieert u het naar de map 'packages' voor ondertekeningsfase ('Build Dotnet') { stappen { 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) Dit is de stap waarin de gemaakte DLL-bestanden (artefacten) worden ondertekend met CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { stappen { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- volume ${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 { altijd { archiveArtifacts artefacten: "artifacts/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Voorbeeld Jenkins-pijpleiding
Bekijk de voorbeeld Jenkins-pijplijn waarop we hebben gemaakt github.com/SSLcom/codesigner-jenkins-sampleAndere integratiehandleidingen voor ondertekening op afstand
- Integratie van Cloud Code Signing met CircleCI
- Integratie van Cloud Code Signing met GitHub-acties
- Cloud Code Signing-integratie met GitLab CI
- Cloud Code Signing-integratie met Travis CI
- Cloud Code Signing-integratie met Azure DevOps
- Cloud Code Signing-automatisering met CI/CD-services
Oplossingen op maat nodig?
Met onze deskundige kennis en vijfsterrenondersteuningspersoneel staan we klaar en bereid om met u samen te werken aan aangepaste oplossingen of grote ondertekeningskortingen op ondernemingsniveau. Vul het onderstaande formulier in en we nemen contact met je op.