Vytvořte soubor Jenkins a definujte kanál v editoru kódu
potrubí { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Nastavte nástroj .NET ve svém editoru kódu konfigurací Jenkinse
Klepněte na tlačítko Spravujte Jenkinsa na hlavním panelu Jenkins.
Přejděte na stránce dolů a klikněte na Global Tool Configuration.
Přejděte dolů a klepněte na tlačítko Instalace .NET SDK.
Zkopírujte hodnotu pro .NET SDK a vložte ji do editoru kódu.
nástroje { dotnetsdk "DOTNET_CORE_3.1.24" }
Přejděte na adresu plugins.jenkins.io a nainstalujte si plugin .NET SDK
Pod Spravujte Jenkinsa na hlavním panelu, zkontrolujte Spravovat pluginy pro potvrzení, zda byl nainstalován plugin .NET SDK.
Po potvrzení, že byl plugin nainstalován, přejděte zpět na INSTALACE .NET SDK a ujistěte se, že je nastavena správná verze a podrobnosti o vydání pluginu .NET SDK. Pokračujte kliknutím na Uložit .
Nastavte proměnné prostředí v editoru kódu
prostředí { USERNAME = credentials('es-username') // uživatelské jméno účtu SSL.com. PASSWORD = credentials('es-password') // heslo účtu SSL.com. CREDENTIAL_ID = credentials('es-crendential-id') // ID pověření pro podpis certifikátu. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL Název prostředí .com. Pro demo účet může být 'TEST', jinak to bude 'PROD' }
Hodnoty pro každou proměnnou najdete na svém ovládacím panelu Jenkins níže Zabezpečení> Řídit Pověření.
Nastavte fáze pro vytváření adresáře artefaktů, stahování obrazu dockeru, vytváření .NET a kód podepisování artefaktu
1) Vytvořte adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů.
stage('Create artifacts directory') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }2) Stáhněte obrázek Codesigner Docker z registru Github.
stage('Docker Pull Image') { kroky { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }3) Vytvořte projekt nebo řešení dotnet a všechny jeho závislosti. Po vytvoření souboru dll nebo exe zkopírujte do složky 'packages' pro podepsání.
stage('Build Dotnet') { kroky { 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) Toto je krok, kdy budou vytvořené soubory DLL (artefakt) podepsány pomocí 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 -- svazek ${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' } příspěvek { vždy { archiveArtifacts artifacts: "artifacts/HelloSuccessful",: onlyIfWorld.dll", } } } } }
Vytvořte repozitář Github
Zkopírujte každou z komponent příkazu push na Github.Zapište příkazy na nový terminál ve svém editoru kódu, aby se kód vložil.
Po odeslání kódu přejděte na svůj účet Github a zkopírujte odkaz URL vašeho projektu.
Pokračujte ke svému účtu Jenkins a klikněte na Vytvořte práci odkaz.
Vybrat Vícevětví potrubí, nastavte název projektu a klepněte na OK .
Pod Pobočkové zdrojevyberte Git a vložte odkaz URL svého projektu Github.
Přejděte dolů na Skenujte spouštěče vícevětvového potrubí. Zaškrtněte políčko pro Pravidelně, pokud není jinak spuštěn. Můžete vybrat 2 minut.
Klepněte na tlačítko Uložit .
Vraťte se ke svému účtu Jenkins, klikněte na svůj projekt a potvrďte, zda potrubí začalo
Klikněte na svůj projekt Jenkins a vyberte Skenujte potrubí s více pobočkami nyní na Dashboard.
klikněte Výstup konzoly
Přejděte dolů a zkontrolujte, zda je podepsání kódu úspěšné
Celý skript
Definujte potrubí
potrubí { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Nainstalujte nástroje Build Tools
nástroje { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }
Vytvořte proměnnou prostředí
prostředí { USERNAME = credentials('es-username') // uživatelské jméno účtu SSL.com. PASSWORD = credentials('es-password') // heslo účtu SSL.com. CREDENTIAL_ID = credentials('es-crendential-id') // ID pověření pro podpis certifikátu. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL Název prostředí .com. Pro demo účet může být 'TEST', jinak to bude 'PROD' }
Skript pro fáze Build a Sign
stage { // 1) Vytvořit adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů stage('Create artifacts directory') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Pull Codesigner Docker Image z Github Registry stage('Docker Pull Image') { kroky { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Vytvořte dotnet projekt nebo řešení a všechny jeho závislosti. // Po vytvoření dll nebo exe souboru zkopírujte do složky 'packages' pro fázi podepisování ('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) Toto je krok, kdy budou vytvořené soubory DLL (artefakty) podepsány pomocí 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 -- svazek ${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' } příspěvek { vždy { archiveArtifacts artifacts: "artifacts/HelloSuccessful",: onlyIfWorld.dll", } } } } }
Ukázka Jenkinsova potrubí
Podívejte se na ukázkový Jenkinsův plynovod, na kterém jsme vytvořili github.com/SSLcom/codesigner-jenkins-sampleDalší příručky integrace vzdáleného podepisování
- Integrace cloudového podepisování kódu s CircleCI
- Integrace cloudového podepisování kódu s akcemi GitHub
- Integrace cloudového kódového podpisu s GitLab CI
- Integrace cloudového podepisování kódu s Travis CI
- Integrace cloudového podepisování kódu s Azure DevOps
- Cloudová automatizace podepisování kódu se službami CI/CD
Potřebujete vlastní řešení?
S našimi odbornými znalostmi a pětihvězdičkovým podpůrným personálem jsme připraveni a ochotni s vámi spolupracovat na vlastních řešeních nebo slevách na velkoobjemové podpisy na podnikové úrovni. Vyplňte formulář níže a my se vám ozveme.