قم بإنشاء ملف Jenkins وحدد خط الأنابيب في محرر التعليمات البرمجية الخاص بك
خط الأنابيب {عامل أي خيارات {buildDiscarder (logRotator (numToKeepStr: "5")) disableConcurrentBuilds ()}
قم بتعيين أداة .NET في محرر التعليمات البرمجية الخاص بك عن طريق تكوين Jenkins
انقر على إدارة جنكينز علامة تبويب على لوحة معلومات Jenkins الخاصة بك.
قم بالتمرير لأسفل الصفحة وانقر فوق تكوين الأداة العامة.
انتقل لأسفل وانقر تثبيتات .NET SDK.
انسخ قيمة .NET SDK والصقها في محرر التعليمات البرمجية.
أدوات {dotnetsdk "DOTNET_CORE_3.1.24"}
انتقل إلى plugins.jenkins.io وقم بتثبيت المكون الإضافي .NET SDK
تحت إدارة جنكينز في لوحة التحكم الخاصة بك ، تحقق إدارة المكونات الإضافية لتأكيد ما إذا كان قد تم تثبيت المكون الإضافي .NET SDK.
بعد التأكد من تثبيت المكون الإضافي ، ارجع إلى .NET SDK INSTALLATIONS وتأكد من تعيين الإصدار الصحيح وتفاصيل الإصدار للمكون الإضافي .NET SDK. تابع للنقر فوق حفظ .
قم بتعيين متغيرات البيئة في محرر التعليمات البرمجية الخاص بك
البيئة {USERNAME = بيانات الاعتماد ('es-username') // اسم مستخدم حساب SSL.com. PASSWORD = بيانات الاعتماد ('es-password') // كلمة مرور حساب SSL.com. CREDENTIAL_ID = بيانات الاعتماد ('es-crendential-id') // معرف بيانات الاعتماد لتوقيع الشهادة. TOTP_SECRET = بيانات الاعتماد ('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com اسم البيئة. بالنسبة للحساب التجريبي ، يمكن أن يكون "TEST" وإلا فسيكون "PROD"}
ستجد قيم كل متغير في لوحة معلومات Jenkins أسفل الأمن> إدارة وثائق التفويض.
حدد مراحل إنشاء دليل القطع الأثرية ، وسحب صورة عامل الإرساء ، وبناء .NET ، وكود توقيع الأداة
1) إنشاء دليل قطعة أثرية لتخزين الملفات الأثرية الموقعة وغير الموقعة.
stage ('إنشاء دليل المصنوعات') {الخطوات {sh 'mkdir $ {WORKSPACE} / artifacts' sh 'mkdir $ {WORKSPACE} /packs'}}2) سحب صورة Codesigner Docker من Github Registry.
المرحلة ('Docker Pull Image') {الخطوات {sh 'docker pull ghcr.io/sslcom/codesigner:latest'}}3) بناء مشروع أو حل dotnet وجميع تبعياتها. بعد إنشاء ملف dll أو exe ، انسخ إلى مجلد "الحزم" للتوقيع.
stage ('Build Dotnet') {الخطوات {sh 'dotnet build dotnet / HelloWorld.csproj -c Release' sh 'cp dotnet / bin / Release / netcoreapp3.1 / HelloWorld-0.0.1.dll $ {WORKSPACE} / packs / HelloWorld.dll '}}4) هذه هي الخطوة التي سيتم فيها توقيع ملفات DLL (قطعة أثرية) التي تم إنشاؤها باستخدام CodeSignTool.
stage ('Sign and Save Dotnet Core DLL Artifact') {الخطوات {sh 'docker run -i --rm --dns 8.8.8.8 - مضيف الشبكة - المجلد $ {WORKSPACE} / الحزم: / codeign /amples - الحجم $ {WORKSPACE} / artifacts: / codeign / 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: أحدث علامة -input_file_path = / codeign /amples / HelloWorld.dll -output_dir_path = / codeign / output '} post {دائمًا {archiveArtifacts artifacts: "artifacts / HelloWorld.dll" ، onlyIfSuccessful: true }}}}}
قم بإنشاء Github repo
انسخ كل مكون من مكونات أمر الدفع على Github.اكتب الأوامر في محطة طرفية جديدة في محرر الكود لدفع الكود.
بعد دفع الكود ، انتقل إلى حساب Github الخاص بك وانسخ رابط URL الخاص بمشروعك.
انتقل إلى حساب Jenkins الخاص بك وانقر فوق قم بإنشاء وظيفة الرابط.
اختار خط أنابيب متعدد الفروع, عيّن اسمًا لمشروعك ، وانقر فوق OK .
تحت مصادر الفروع، حدد بوابة والصق رابط URL لمشروع Github الخاص بك.
انتقل لأسفل مسح مشغلات خطوط الأنابيب متعددة الفروع. ضع علامة في المربع الخاص بـ بشكل دوري إذا لم يتم تشغيلها بطريقة أخرى. يمكنك الاختيار 2 دقيقة.
انقر على حفظ .
ارجع إلى حساب Jenkins الخاص بك ، وانقر فوق مشروعك ، وتأكد مما إذا كان خط الأنابيب قد بدأ
انقر فوق مشروع Jenkins الخاص بك وحدد امسح خط الأنابيب متعدد الفروع الآن على لوحة القيادة.
انقر إخراج وحدة التحكم
قم بالتمرير لأسفل وتحقق من نجاح توقيع الرمز
البرنامج النصي بأكمله
تحديد خط الأنابيب
خط الأنابيب {عامل أي خيارات {buildDiscarder (logRotator (numToKeepStr: "5")) disableConcurrentBuilds ()}
قم بتثبيت أدوات البناء
أدوات {dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk}
خلق متغير البيئة
البيئة {USERNAME = بيانات الاعتماد ('es-username') // اسم مستخدم حساب SSL.com. PASSWORD = بيانات الاعتماد ('es-password') // كلمة مرور حساب SSL.com. CREDENTIAL_ID = بيانات الاعتماد ('es-crendential-id') // معرف بيانات الاعتماد لتوقيع الشهادة. TOTP_SECRET = بيانات الاعتماد ('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com اسم البيئة. بالنسبة للحساب التجريبي ، يمكن أن يكون "TEST" وإلا فسيكون "PROD"}
البرنامج النصي لمراحل البناء والتوقيع
المراحل {// 1) إنشاء دليل الأداة لمرحلة ملفات العناصر الأثرية الموقعة وغير الموقعة بالمخزن ('إنشاء دليل العناصر الأثرية') {الخطوات {sh 'mkdir $ {WORKSPACE} / artifacts' sh 'mkdir $ {WORKSPACE} / packs'}} / / 2) سحب صورة Codesigner Docker من Github Registry stage ('Docker Pull Image') {الخطوات {sh 'docker pull ghcr.io/sslcom/codesigner:latest'}} // 3) بناء مشروع أو حل dotnet وجميع تبعياتها. // بعد إنشاء ملف dll أو exe ، انسخ إلى مجلد "الحزم" لمرحلة التوقيع ("Build Dotnet") {الخطوات {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) هذه هي الخطوة حيث سيتم توقيع ملفات DLL (الأداة) التي تم إنشاؤها باستخدام CodeSignTool. stage ('Sign and Save Dotnet Core DLL Artifact') {الخطوات {sh 'docker run -i --rm --dns 8.8.8.8 - مضيف الشبكة - المجلد $ {WORKSPACE} / الحزم: / codeign /amples - الحجم $ {WORKSPACE} / artifacts: / codeign / 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: أحدث علامة -input_file_path = / codeign /amples / HelloWorld.dll -output_dir_path = / codeign / output '} post {دائمًا {archiveArtifacts artifacts: "artifacts / HelloWorld.dll" ، onlyIfSuccessful: true }}}}}
عينة جينكينز بايبلاين
تحقق من عينة خط أنابيب Jenkins التي أنشأناها github.com/SSLcom/codesigner-jenkins-sampleأدلة تكامل أخرى للتوقيع عن بعد
- تكامل توقيع رمز السحابة مع CircleCI
- تكامل توقيع رمز السحابة مع إجراءات GitHub
- تكامل توقيع الرمز السحابي مع GitLab CI
- تكامل توقيع الرمز السحابي مع Travis CI
- تكامل توقيع الرمز السحابي مع Azure DevOps
- أتمتة توقيع الرمز السحابي مع خدمات CI / CD
هل تحتاج إلى حلول مخصصة؟
بفضل معرفتنا الخبيرة وموظفي الدعم من فئة الخمس نجوم ، نحن مستعدون وراغبون في العمل معك على حلول مخصصة أو خصومات توقيع كبيرة الحجم على مستوى المؤسسة. املأ النموذج أدناه وسنتواصل معك.