Buat file Jenkins dan tentukan saluran pada editor kode Anda

pipeline { agen opsi apa pun { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Setel alat .NET pada editor kode Anda dengan mengonfigurasi Jenkins
klik Kelola Jenkins tab di dasbor Jenkins Anda.
Gulir ke bawah halaman dan klik Konfigurasi Alat Global.
Gulir ke bawah dan klik Instalasi .NET SDK.
Salin nilai untuk .NET SDK dan tempel di editor kode Anda.
alat { dotnetsdk "DOTNET_CORE_3.1.24" }
Buka plugins.jenkins.io dan instal plugin .NET SDK
Bawah Kelola Jenkins di Dasbor Anda, centang Kelola Plugin untuk mengonfirmasi apakah plugin .NET SDK telah diinstal.
Setelah mengonfirmasi bahwa plugin telah diinstal, kembali ke .NET SDK INSTALLATIONS dan pastikan versi yang benar dan detail rilis plugin .NET SDK telah disetel. Lanjutkan dengan mengklik Simpan .
Atur Variabel Lingkungan pada editor kode Anda
environment { NAMA PENGGUNA = kredensial('es-namapengguna') // nama pengguna akun SSL.com. PASSWORD = kredensial('es-password') // kata sandi akun SSL.com. CREDENTIAL_ID = kredensial('es-credential-id') // ID Kredensial untuk menandatangani sertifikat. TOTP_SECRET = kredensial('es-totp-secret') // Rahasia TOTP OAuth (https://www.ssl.com/how-to/automate-designer-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Nama Lingkungan. Untuk Akun Demo Bisa 'TEST' jika tidak 'PROD' }
Anda akan menemukan nilai untuk setiap variabel di dasbor Jenkins Anda di bawah Keamanan> Mengelola Kredensial.
Atur tahapan untuk membuat direktori artefak, menarik gambar buruh pelabuhan, membangun .NET, dan menandatangani kode artefak
1) Buat Direktori Artefak untuk menyimpan file artefak yang ditandatangani dan tidak ditandatangani.
stage('Buat direktori artefak') { langkah { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }2) Tarik Gambar Docker Codesigner Dari Github Registry.
stage('Docker Pull Image') { langkah { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }3) Bangun proyek atau solusi dotnet dan semua dependensinya. Setelah file dll atau exe dibuat, salin ke folder 'paket' untuk ditandatangani.
stage('Build Dotnet') { langkah { 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) Ini adalah langkah di mana file DLL (artefak) yang dibuat akan ditandatangani dengan CodeSignTool.
stage('Masuk dan Simpan Dotnet Core DLL Artifact') { langkah { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- volume ${WORKSPACE}/artefak:/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: tanda terbaru -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } posting { selalu { archiveArtifacts artefak: "artefak/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Buat repo Github
Salin setiap komponen perintah push di Github.Tulis perintah di terminal baru pada editor kode Anda untuk mendorong kode.
Setelah mendorong kode, buka akun Github Anda dan salin tautan URL proyek Anda.
Lanjutkan ke akun Jenkins Anda dan klik Buat pekerjaan link.
Pilih Pipa Multicabang, atur nama untuk proyek Anda, dan klik tombol OK .
Bawah Sumber Cabang, pilih pergi dan rekatkan tautan URL proyek Github Anda.
Gulir ke bawah Pindai Pemicu Pipa Multibranch. Centang kotak untuk Secara berkala jika tidak sebaliknya jalankan. Anda dapat memilih 2 menit.
klik Simpan .
Kembali ke akun Jenkins Anda, klik proyek Anda, dan konfirmasikan apakah pipeline telah dimulai
Klik pada proyek Jenkins Anda dan pilih Pindai Pipa Multibranch Sekarang di Dasbor.
Klik Output Konsol
Gulir ke bawah dan periksa apakah penandatanganan kode berhasil
Seluruh Skrip
Tentukan pipa
pipeline { agen opsi apa pun { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Instal Alat Bangun
alat { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }
Buat variabel lingkungan
environment { NAMA PENGGUNA = kredensial('es-namapengguna') // nama pengguna akun SSL.com. PASSWORD = kredensial('es-password') // kata sandi akun SSL.com. CREDENTIAL_ID = kredensial('es-credential-id') // ID Kredensial untuk menandatangani sertifikat. TOTP_SECRET = kredensial('es-totp-secret') // Rahasia TOTP OAuth (https://www.ssl.com/how-to/automate-designer-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Nama Lingkungan. Untuk Akun Demo Bisa 'TEST' jika tidak 'PROD' }
Script untuk Tahapan Build dan Sign
tahapan { // 1) Buat Direktori Artefak untuk menyimpan file artefak yang ditandatangani dan tidak ditandatangani stage('Buat direktori artefak') { langkah { sh 'mkdir ${WORKSPACE}/artefak' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Tarik Codesigner Docker Image Dari Github Registry stage('Docker Pull Image') { langkah { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Bangun proyek atau solusi dotnet dan semuanya ketergantungannya. // Setelah file dll atau exe dibuat, salin ke folder 'packages' untuk tahap penandatanganan ('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) Ini adalah langkah di mana file DLL (artefak) yang dibuat akan ditandatangani dengan CodeSignTool. stage('Masuk dan Simpan Dotnet Core DLL Artifact') { langkah { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- volume ${WORKSPACE}/artefak:/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: tanda terbaru -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } posting { selalu { archiveArtifacts artefak: "artefak/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Contoh Jenkins Pipeline
Lihat contoh pipa Jenkins yang telah kami buat github.com/SSLcom/codesigner-jenkins-samplePanduan Integrasi Penandatanganan Jarak Jauh Lainnya
- Integrasi Penandatanganan Kode Cloud dengan CircleCI
- Integrasi Penandatanganan Kode Cloud dengan Tindakan GitHub
- Integrasi Penandatanganan Kode Cloud dengan GitLab CI
- Integrasi Penandatanganan Kode Cloud dengan Travis CI
- Integrasi Penandatanganan Kode Cloud dengan Azure DevOps
- Otomatisasi Penandatanganan Kode Cloud dengan Layanan CI/CD
Butuh Solusi Kustom?
Dengan pengetahuan ahli kami dan staf pendukung bintang lima, kami siap dan bersedia bekerja sama dengan Anda dalam solusi khusus atau diskon penandatanganan volume tinggi tingkat perusahaan. Isi formulir di bawah ini dan kami akan menghubungi Anda.