Skapa en Jenkins-fil och definiera pipelinen i din kodredigerare
pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Ställ in .NET-verktyget på din kodredigerare genom att konfigurera Jenkins
Klicka på Hantera Jenkins fliken på din Jenkins instrumentpanel.
Rulla ner på sidan och klicka på Global Tool Configuration.
Bläddra ner och klicka .NET SDK-installationer.
Kopiera värdet för .NET SDK och klistra in det i din kodredigerare.
verktyg { dotnetsdk "DOTNET_CORE_3.1.24" }
Gå till plugins.jenkins.io och installera .NET SDK-plugin
Enligt Hantera Jenkins på din instrumentpanel, kontrollera Hantera plugins för att bekräfta om plugin-programmet .NET SDK har installerats.
Efter att ha bekräftat att plugin-programmet har installerats, gå tillbaka till .NET SDK-INSTALLATIONER och se till att rätt version och versionsinformation för .NET SDK-plugin är inställd. Fortsätt att klicka på Save knapp.
Ställ in miljövariabler på din kodredigerare
miljö { USERNAME = credentials('es-username') // SSL.com-kontots användarnamn. PASSWORD = credentials('es-password') // SSL.com-kontolösenord. CREDENTIAL_ID = credentials('es-crendential-id') // Credential ID för signering av certifikat. 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önamn. För demokonto kan det vara "TEST" annars blir det "PROD" }
Du hittar värdena för varje variabel på din Jenkins instrumentpanel under Säkerhet> hantera Referenser.
Ställ in stegen för att skapa artefaktkatalog, dra docker-bild, bygga .NET och kodsignera artefakten
1) Skapa artefaktkatalog för lagra signerade och osignerade artefaktfiler.
stage('Skapa artefakterkatalog') { steg { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/paket' } }2) Dra Codesigner Docker Image från Github Registry.
stage('Docker Pull Image') { steg {sh 'docker pull ghcr.io/sslcom/codesigner:latest'} }3) Bygg ett dotnet-projekt eller -lösning och alla dess beroenden. Efter att dll- eller exe-filen har skapats, kopiera till mappen "paket" för signering.
stage('Build Dotnet') { steg { 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) Detta är steget där de skapade DLL-filerna (artefakt) kommer att signeras med CodeSignTool.
stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --nätverksvärd --volym ${WORKSPACE}/paket:/codesign/examples -- volym ${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:senaste tecken -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } inlägg { alltid { archiveArtifacts artifacts: "artifacts/HelloWorld.dll", } } } } }
Skapa en Github-repo
Kopiera var och en av push-kommandokomponenterna på Github.Skriv kommandona på en ny terminal på din kodredigerare för att trycka på koden.
Efter att ha tryckt på koden, gå till ditt Github-konto och kopiera URL-länken till ditt projekt.
Fortsätt till ditt Jenkins-konto och klicka på Skapa ett jobb länken.
Välja Flergrenad rörledning, ställ in namnet på ditt projekt och klicka på OK knapp.
Enligt Filialkällor, Välj gå och klistra in URL-länken till ditt Github-projekt.
Bläddra ner till Scan Multibranch Pipeline Triggers. Markera rutan för Periodvis om inte annat kör. Du kan välja 2 minuter.
Klicka på Save knapp.
Gå tillbaka till ditt Jenkins-konto, klicka på ditt projekt och bekräfta om pipelinen har startat
Klicka på ditt Jenkins-projekt och välj Skanna multibranch pipeline nu på instrumentpanelen.
Klicka Konsolutgång
Rulla ned och kontrollera om kodsigneringen lyckas
Hela manuset
Definiera pipelinen
pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Installera byggverktyg
verktyg { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }
Skapa en miljövariabel
miljö { USERNAME = credentials('es-username') // SSL.com-kontots användarnamn. PASSWORD = credentials('es-password') // SSL.com-kontolösenord. CREDENTIAL_ID = credentials('es-crendential-id') // Credential ID för signering av certifikat. 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önamn. För demokonto kan det vara "TEST" annars blir det "PROD" }
Skript för bygg- och skyltstadierna
steg {// 1) Skapa artefaktkatalog för butikssignerade och osignerade artefaktfiler stage('Skapa artefaktkatalog') { steg { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/paket' } } / / 2) Dra Codesigner Docker Image från Github Registry scenen ('Docker Pull Image') { steg { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Bygg ett dotnet-projekt eller -lösning och allt dess beroenden. // Efter att den har skapats dll- eller exe-fil, kopiera till 'packages'-mappen för signering ('Build Dotnet') { steg { 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) Detta är steget där de skapade DLL-filerna (artefakt) kommer att signeras med CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --nätverksvärd --volym ${WORKSPACE}/paket:/codesign/examples -- volym ${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:senaste tecken -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } inlägg { alltid { archiveArtifacts artifacts: "artifacts/HelloWorld.dll", } } } } }
Prov Jenkins Pipeline
Kolla in provet Jenkins pipeline vi har skapat på github.com/SSLcom/codesigner-jenkins-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 Azure DevOps
- 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.