Bir Jenkins dosyası oluşturun ve işlem hattını kod düzenleyicinizde tanımlayın
boru hattı { aracı herhangi bir seçenek { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Jenkins'i yapılandırarak kod düzenleyicinizde .NET aracını ayarlayın
Tıkla Jenkins'i yönetin Jenkins panonuzdaki sekme.
Sayfayı aşağı kaydırın ve Global Araç Yapılandırması'na tıklayın.
Aşağı kaydırın ve tıklayın .NET SDK Kurulumları.
.NET SDK değerini kopyalayın ve kod düzenleyicinize yapıştırın.
araçlar { dotnetsdk "DOTNET_CORE_3.1.24" }
plugins.jenkins.io adresine gidin ve .NET SDK eklentisini yükleyin
Altında Jenkins'i yönetin Kontrol Panelinizde, kontrol edin Eklentileri Yönetin .NET SDK eklentisinin yüklenip yüklenmediğini onaylamak için.
Eklentinin yüklendiğini onayladıktan sonra .NET SDK KURULUMLARI'na dönün ve .NET SDK eklentisinin doğru sürümünün ve sürüm ayrıntılarının ayarlandığından emin olun. Tıklamak için devam edin İndirim düğmesine basın.
Kod düzenleyicinizde Ortam Değişkenlerini ayarlayın
ortam { USERNAME = kimlik bilgileri('es-kullanıcıadı') // SSL.com hesabı kullanıcı adı. PASSWORD = kimlik bilgileri('es-password') // SSL.com hesap şifresi. CREDENTIAL_ID = credentials('es-credential-id') // İmza sertifikası için kimlik bilgisi. TOTP_SECRET = kimlik bilgileri('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Ortam Adı. Demo Hesap için 'TEST' olabilir, aksi takdirde 'PROD' olacaktır }
Jenkins kontrol panelinizde her bir değişkenin değerlerini altında bulabilirsiniz. Güvenlik> Yönet Kimlik.
Yapıtlar dizini oluşturma, liman işçisi görüntüsünü çekme, .NET oluşturma ve yapıtı imzalayan kod için aşamaları ayarlayın
1) Mağaza imzalı ve imzasız yapı dosyaları için Yapıt Dizini oluşturun.
Stage('Create yapıt dizini') { adımlar { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }2) Github Kayıt Defterinden Codesigner Docker Görüntüsünü Çekin.
stage('Docker Pull Image') { adımlar { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }3) Bir dotnet projesi veya çözümü ve tüm bağımlılıklarını oluşturun. Dll veya exe dosyası oluşturulduktan sonra, imzalamak için 'packages' klasörüne kopyalayın.
Stage('Build Dotnet') { adımlar { 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) Oluşturulan DLL (artifact) dosyalarının CodeSignTool ile imzalanacağı adımdır.
stage('Dotnet Core DLL Yapısını İmzala ve Kaydet') { adımlar { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- birim ${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 işareti -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } gönderi { her zaman {archiveArtifacts yapıtları: "eserler/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Github deposu oluşturun
Push komutu bileşenlerinin her birini Github'a kopyalayın.Kodu itmek için komutları kod düzenleyicinizdeki yeni bir terminale yazın.
Kodu bastıktan sonra Github hesabınıza gidin ve projenizin URL bağlantısını kopyalayın.
Jenkins hesabınıza ilerleyin ve Bir iş oluşturun bağlantı.
Klinik Çok Şubeli Boru Hattı, projenizin adını belirleyin ve OK düğmesine basın.
Altında Şube Kaynaklarıseçin Git ve Github projenizin URL bağlantısını yapıştırın.
Aşağı ilerleyin Çok Dallı İşlem Hattı Tetikleyicilerini Tara. için kutuyu işaretleyin Aksi takdirde periyodik olarak çalıştırın. Seçebilirsin 2 dakikadır..
Tıkla İndirim düğmesine basın.
Jenkins hesabınıza geri dönün, projenize tıklayın ve boru hattının başlayıp başlamadığını onaylayın.
Jenkins projenize tıklayın ve seçin Çok Dallı İşlem Hattını Şimdi Tara Gösterge Tablosunda.
Tıkla Konsol Çıkışı
Aşağı kaydırın ve kod imzalamanın başarılı olup olmadığını kontrol edin
Tüm Komut Dosyası
Boru hattını tanımlayın
boru hattı { aracı herhangi bir seçenek { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Derleme Araçlarını Yükleyin
araçlar { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }
Bir ortam değişkeni oluşturun
ortam { USERNAME = kimlik bilgileri('es-kullanıcıadı') // SSL.com hesabı kullanıcı adı. PASSWORD = kimlik bilgileri('es-password') // SSL.com hesap şifresi. CREDENTIAL_ID = credentials('es-credential-id') // İmza sertifikası için kimlik bilgisi. TOTP_SECRET = kimlik bilgileri('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Ortam Adı. Demo Hesap için 'TEST' olabilir, aksi takdirde 'PROD' olacaktır }
Oluşturma ve İmzalama Aşamaları için Komut Dosyası
1. Aşamalar { // 2) İmzalı ve imzasız yapay dosyaları depolamak için Yapı Dizini oluştur / 3) Github Kayıt Defteri aşamasından Codesigner Docker Görüntüsünü Çekin('Docker Pull Image') { adımlar { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3.1) Bir dotnet projesi veya çözümü ve tümünü oluşturun bağımlılıkları. // Dll veya exe dosyası oluşturulduktan sonra, imzalama aşaması için 'packages' klasörüne kopyalayın('Build Dotnet') {steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/ Release/netcoreapp0.0.1/HelloWorld-4.dll ${WORKSPACE}/packages/HelloWorld.dll' } } // 8.8.8.8) Bu, oluşturulan DLL (yapı) dosyalarının CodeSignTool ile imzalanacağı adımdır. stage('Dotnet Core DLL Yapısını İmzala ve Kaydet') { adımlar { sh 'docker run -i --rm --dns XNUMX --network host --volume ${WORKSPACE}/packages:/codesign/examples -- birim ${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 işareti -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } gönderi { her zaman {archiveArtifacts yapıtları: "eserler/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Örnek Jenkins Ardışık Düzen
Oluşturduğumuz örnek Jenkins işlem hattına göz atın github.com/SSLcom/codesigner-jenkins-sampleDiğer Uzaktan İmzalama Entegrasyon Kılavuzları
- CircleCI ile Bulut Kod İmzalama Entegrasyonu
- GitHub Eylemleri ile Bulut Kod İmzalama Entegrasyonu
- GitLab CI ile Bulut Kod İmzalama Entegrasyonu
- Travis CI ile Bulut Kod İmzalama Entegrasyonu
- Azure DevOps ile Bulut Kod İmzalama Entegrasyonu
- CI/CD Hizmetleri ile Bulut Kod İmzalama Otomasyonu
Özel Çözümlere mi ihtiyacınız var?
Uzman bilgi birikimimiz ve beş yıldızlı destek ekibimizle, özel çözümler veya kurumsal düzeyde yüksek hacimli imza indirimleri konusunda sizinle birlikte çalışmaya hazır ve istekliyiz. Aşağıdaki formu doldurun, sizinle iletişime geçelim.