هذا دليل حول كيفية دمج Azure DevOps مع eSigner CodeSignTool لتنفيذ توقيع التعليمات البرمجية تلقائيًا.
CodeSignTool هي أداة مساعدة لسطر الأوامر مناسبة لعمليات توقيع التعليمات البرمجية السحابية وتتكامل بسلاسة مع العديد من أنظمة CI / CD الأساسية. إنها تشكل جزءًا من eSigner: خدمة التوقيع عن بُعد الخاصة بنا التي توفر طريقة فعالة وآمنة وسهلة الاستخدام لتوقيع التعليمات البرمجية.
متغيرات البيئة
- USERNAME: اسم مستخدم حساب SSL.com. (مطلوب)
- كلمة السر: كلمة مرور حساب SSL.com (مطلوب)
- CREDENTIAL_ID: معرف الاعتماد لتوقيع الشهادة. إذا تم حذف credential_id وكان المستخدم لديه شهادة توقيع رمز eSigner واحدة فقط ، فسيتم تعيين CodeSignTool افتراضيًا لذلك. إذا كان المستخدم لديه أكثر من شهادة توقيع رمز ، فإن هذه المعلمة إلزامية. (مطلوب)
- TOTP_SECRET: OAuth TOTP Secret. يمكنك الوصول إلى معلومات مفصلة عن https://www.ssl.com/how-to/automate-esigner-ev-code-signing (مطلوب)
- البيئة_NAME : بيئة "TEST" أو "PROD". (مطلوب)
المدخلات
- input_file_path: مسار كائن التعليمات البرمجية المراد توقيعه. (مطلوب)
- الإخراج_dir_path: الدليل حيث سيتم كتابة كائن (كائنات) التعليمات البرمجية الموقعة. إذا تم حذف output_path ، فسيتم استبدال الملف المحدد في -file_path بالملف الموقع.
قم بإنشاء مشروع على visualstudio.com
قم بإنشاء ملف .yml جديد في محرر التعليمات البرمجية الخاص بك
تعيين مشغلات التكامل ومتغيرات البيئة
مشغلات التكامل المستمر
اثار:
- لا شيء
يعرف متغيرات البيئة عالميا. تتجاوز خاصية مستوى الوظيفة المتغيرات العامة
المتغيرات:
buildConfiguration: الإصدار
تجميع الوظائف في مراحل
اكتب خطوات مرحلة البناء. يجب إكمال جميع الوظائف في مرحلة واحدة قبل تنفيذ المرحلة التالية.
مراحل:
- المرحلة: بناء
# عند تشغيل سير العمل ، يكون هذا هو الاسم الذي تم تسجيله
اسم العرض: بناء
وظائف:
- مهنة:
حوض السباحة:
قم بتشغيل المهمة على Windows VMs
vmImage: 'windows-latest'
خطوات:
قم بتثبيت Dotnet 6.0.x.
- المهمة: UseDotNet @ 2
اسم العرض: "تثبيت .NET Core SDK"
المدخلات:
الإصدار: "6.0.x"
PerformMultiLevelLookup: صحيح
includePreviewVersions: صحيح
استعادة مشروع Dotnet
- المهمة: DotNetCoreCLI @ 2
displayName: استعادة
المدخلات:
كوماند: "استعادة"
بناء مشروع دوت نت مع تكوين الإصدار
- المهمة: DotNetCoreCLI @ 2
اسم العرض: بناء
المدخلات:
كوماند: بناء
المشاريع: HelloWorld.csproj
الوسائط: "–configuration $ (buildConfiguration)"
إنشاء أدلة للقطع الأثرية الموقعة
- بوويرشيل: New-Item -ItemType Directory -Path ./artifacts
displayName: "أدلة مكونة للقطع الأثرية"
إنشاء أدلة للحزم الموقعة
- بوويرشيل: New-Item -ItemType Directory -Path ./packages
displayName: "أدلة تم إنشاؤها للحزم"
نسخ الأداة لتكون مسار التوقيع
- بوويرشيل: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: "نسخ القطع الأثرية المبنية إلى دليل الحزم"
حفظ الأداة من أجل استخدام وظيفة التوقيع
- المهمة: PublishBuildArtifacts @ 1
اسم العرض: "حفظ ليتم توقيع الأداة للتنزيل"
المدخلات:
مسار النشر: ./packages/HelloWorld.dll
الاسم: HelloWorld.dll
اكتب خطوات مرحلة التوقيع
- المرحلة: تسجيل
# عند تشغيل سير العمل ، يكون هذا هو الاسم الذي تم تسجيله
اسم العرض: التوقيع
وظائف:
- مهنة:
حوض السباحة:
شغّل المهمة على Ubuntu VMs
vmImage: "Ubuntu-latest"
خطوات:
إنشاء أدلة للقطع الأثرية الموقعة
- سكربت: mkdir -p ./artifacts && mkdir -p ./packages
displayName: "الأدلة المُنشأة للقطع الأثرية والحزم"
قم بتنزيل الأداة ليتم التوقيع عليها
- المهمة: DownloadPipelineArtifact @ 2
المدخلات:
قطعة أثرية: HelloWorld.dll
مسار التنزيل: ./packages
قم بتثبيت Docker 17.09.0-ce
- المهمة: DockerInstaller @ 0
اسم العرض: مثبت Docker
المدخلات:
الإصدار: 17.09.0-ce
نوع الإصدار: مستقر
عامل ميناء سحب صورة CodeSigner عامل ميناء
- البرنامج النصي: عامل ميناء سحب ghcr.io/sslcom/codesigner: أحدث
displayName: "Docker Pull CodeSigner Docker Image"
توقيع قطعة أثرية مع صورة عامل ميناء CodeSigner
- البرنامج النصي: docker run -i-rm -dns 8.8.8.8- مضيف الشبكة- الحجم $ PWD / الحزم: / codeign / أمثلة - المجلد $ PWD / القطع الأثرية: / 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 / أمثلة / HelloWorld.dll
-output_dir_path = / codeign / output
اسم العرض: "توقيع الأداة باستخدام صورة عامل ميناء CodeSigner"
حفظ الأداة الموقعة للتحميل
- المهمة: PublishBuildArtifacts @ 1
اسم العرض: "حفظ الأداة الموقعة للتنزيل"
المدخلات:
PathtoPublish: ./artifacts/HelloWorld.dll
الاسم: HelloWorld.dll
قم بإنشاء ملف .gitignore جديد
اكتب في:
بن
الكائنات
.vscode
في شريط الرسائل ، اكتب Created pipeline.yml وانقر فوق ملف ارتكب زر
تابع للنقر فوق مزامنة التغييرات زر
انتقل إلى visualstudio.com وانقر بقية على لوحة القيادة
قم بتحديث الصفحة لمشاهدة ملف yml
انقر خطوط الأنابيب على لوحة القيادة
المقبل ، انقر فوق إنشاء خط أنابيب
انقر فوق Azure Repos Git
حدد ملف YAML الخاص بك
انقر المتغيرات زر يتبعه متغير جديد
ضع قيمة كل متغير بيئة وانقر فوق OK زر
انقر فوق علامة + للاستمرار في إضافة كل متغير
بعد وضع جميع المتغيرات ، تابع إنشاء خط الأنابيب الخاص بك
قم بتشغيل خط الأنابيب الخاص بك
انقر خطوط الأنابيب على لوحة القيادة. انقر فوق النقاط الثلاث (المزيد من الخيارات) في خط الأنابيب الخاص بك. انقر تشغيل خط الأنابيب. أخيرًا ، انقر فوق ملف يجري .
انقر فوق إنشاء لبدء مرحلة الإنشاء
تحقق مما إذا كانت كل وظيفة في مرحلة الإنشاء ناجحة
انقر فوق سهم القائمة المنسدلة بجانب وظيفة لمعرفة حالة كل وظيفة بناء
ابدأ مرحلة تسجيل الدخول بالنقر فوق وظيفة
تحقق مما إذا كانت كل خطوة في عملية التوقيع ناجحة
تحقق جيدًا مما إذا كانت كل من مرحلتي الإنشاء والتوقيع ناجحة
عينة خط أنابيب Azure DevOps
تحقق من نموذج خط أنابيب Azure DevOps الذي أنشأناه github.com/SSLcom/codesigner-azuredevops-sampleأدلة تكامل أخرى للتوقيع عن بعد
- تكامل توقيع رمز السحابة مع CircleCI
- تكامل توقيع رمز السحابة مع إجراءات GitHub
- تكامل توقيع الرمز السحابي مع GitLab CI
- تكامل توقيع الرمز السحابي مع Travis CI
- تكامل توقيع رمز السحابة مع Jenkins CI
- تكامل التوقيع بالرمز السحابي مع BitBucket
- أتمتة توقيع الرمز السحابي مع خدمات CI / CD
هل تحتاج إلى حلول مخصصة؟
بفضل معرفتنا الخبيرة وموظفي الدعم من فئة الخمس نجوم ، نحن مستعدون وراغبون في العمل معك على حلول مخصصة أو خصومات توقيع كبيرة الحجم على مستوى المؤسسة. املأ النموذج أدناه وسنتواصل معك.