متغيرات البيئة
- 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 بالملف الموقع.
تحضير مكونات سير العمل (توقيع DLL التعليمات البرمجية لـ .NET)
- قم بإنشاء مجلد .circleci
في مساحة عمل توقيع التعليمات البرمجية الخاصة بك ، قم بإنشاء ملف مجلد .circleci. تحتها ، قم بإنشاء ملف ملف config.yml.
- اضبط إصدار CI
النسخة: 2.1
- استدعاء الوظائف من خلال مهام سير العمل. تنظم مهام سير العمل مجموعة من الوظائف ليتم تشغيلها. تم تكوين الوظائف لخط الأنابيب هذا أدناه
انظر: https://circleci.com/docs/2.0/configuration-reference/#workflows
سير العمل:
- اكتب اسم سير العمل.
دوت نت:
- داخل سير العمل ، أنت تحدد الوظائف التي تريد تشغيلها.
الوظائف: - بناء - شاخصة: يتطلب: - بناء
حدد مرحلة البناء
- حدد وظيفة ليتم استدعاؤها لاحقًا في سير العمل.
(انظر: https://circleci.com/docs/2.0/configuration-reference/#jobs)
الوظائف: بناء:
- خلق متغير البيئة
- تُستخدم متغيرات البيئة لجعل العينات أكثر قابلية للقراءة. في لقطة الشاشة أعلاه لأحد أمثلة سير عمل التوقيع ، تم حذف PROJECT_NAME و PROJECT_VERSION و DOTNET_VERSION اختياريًا. التوقيع لا يزال من الممكن المضي قدما حتى مع هذه الإغفالات.
البيئة: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: / home / circleci / project
- تحديد منفذ Docker: (https://circleci.com/docs/2.0/executor-types/)
# يمكنك تحديد صورة من Dockerhub أو استخدام إحدى صورنا المريحة من مركز مطوري CircleCI.
عامل ميناء: - الصورة: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- ضع دليل العمل للوظيفة
work_directory: / home / circleci / project
- أضف خطوات إلى الوظيفة
انظر: https://circleci.com/docs/2.0/configuration-reference/#steps
خطوات:
- تحقق من الكود المصدري حتى يتمكن سير العمل من الوصول إليه.
- الدفع
- إنشاء دليل قطعة أثرية لتخزين الملفات الأثرية الموقعة وغير الموقعة
- تشغيل: الاسم: أمر إنشاء دليل القطع الأثرية: | mkdir -p $ {WORKSPACE} / artifacts mkdir -p $ {WORKSPACE} / packs
- بناء مشروع أو حل dotnet وجميع تبعياته.
- تشغيل: الاسم: إنشاء أمر مشروع Dotnet: dotnet build dotnet / $ {PROJECT_NAME} .csproj -c Release
- نسخ الأداة إلى دليل القطع الأثرية
- في سير عمل مثال التوقيع المكتوب هذا ، تم إنشاء أنواع متعددة من المشاريع. هذا هو سبب الاحتفاظ بملفات أنواع المشاريع المختلفة عن طريق إنشاء مجلدات فرعية. تم إنشاء مجلد فرعي باسم "dotnet" لمشاريع Dotnet. في لقطة الشاشة التجريبية أعلاه ، لم تكن هناك حاجة لإنشاء مجلد فرعي باسم "dotnet" لذلك لم يتم تضمينه في البرنامج النصي.
- تشغيل: الاسم: الأمر Copy Artifacts: | cp dotnet / bin / Release / netcoreapp $ {DOTNET_VERSION} / $ {PROJECT_NAME} - $ {PROJECT_VERSION} .dll $ {WORKSPACE} /packages/HelloWorld.dll
- استمر في الاحتفاظ بالقطعة الأثرية في دليل القطع الأثرية للتوقيع
- persist_to_workspace: الجذر:. المسارات: - الحزم / *
حدد مرحلة التوقيع
- حدد وظيفة التوقيع
إشارة:
- خلق متغير البيئة
- في لقطة الشاشة أعلاه ، تم تحديد أمر sign مباشرة في برنامج Sign script وليس ضمن متغيرات البيئة. بيمكن أن توقع كلتا الطريقتين بشكل صحيح باستخدام CircleCI.
- تُستخدم متغيرات البيئة لجعل العينات أكثر قابلية للقراءة. في لقطة الشاشة أعلاه لمثال سير العمل ، لم يتم تضمين بعض المتغيرات بشكل اختياري. التوقيع لا يزال من الممكن المضي قدما حتى مع هذه الإغفالات.
البيئة: ENVIRONMENT_NAME: PROD COMMAND: sign WORKSPACE: / home / circleci / project
- ضع دليل العمل للوظيفة على Circle-CI
work_directory: / home / circleci / project
- اسم القطعة الأثرية للتوقيع
- تعد قيمة "الاسم الاصطناعي" خيارًا لمشاريع متعددة. تمت إضافة معلمة "الاسم الاصطناعي" بحيث يمكن استخدام جزء التوقيع نفسه لجميع أنواع المشاريع. نظرًا لأن المثال الموجود في لقطة الشاشة يستند إلى مشروع واحد ، فليس من الضروري تضمينه.
المعلمات: اسم الأداة: النوع: السلسلة الافتراضية: "
- تحديد منفذ عامل الإرساء:
للحصول على مرجع إضافي ، انظر: https://circleci.com/docs/2.0/executor-types/
يمكنك تحديد صورة من Dockerhub أو استخدام إحدى صورنا المريحة من مركز مطوري CircleCI.
تأكد من تحديث علامة صورة Docker أدناه لإصدار openjdk من تطبيقك.
تتوفر قائمة بالصور المريحة المتوفرة من CircleCI Docker هنا: https://circleci.com/developer/images/image/cimg/openjdk
عامل ميناء: - الصورة: cimg / openjdk: 17.0.3
- أضف خطوات إلى الوظيفة
للحصول على مرجع إضافي ، انظر: https://circleci.com/docs/2.0/configuration-reference/#steps
خطوات:
- إنشاء دليل قطعة أثرية لتخزين الملفات الأثرية الموقعة وغير الموقعة
- تشغيل: الاسم: أمر إنشاء دليل القطع الأثرية: | mkdir -p $ {WORKSPACE} / artifacts mkdir -p $ {WORKSPACE} / packs
- إرفاق مساحة العمل من أجل الوصول إلى ملف الأداة
- attach_workspace: في: / home / circleci / project
- تفعيل Docker لـ CodeSigner على Circle-CI
- setup_remote_docker: الاسم: إعداد إصدار عامل الإرساء البعيد: 19.03.13 docker_layer_caching: صحيح
- سحب صورة Codesigner Docker من Github Registry
- تشغيل: الاسم: أمر سحب Docker Image: | سحب عامل الإرساء ghcr.io/sslcom/codesigner: أحدث سحب عامل الإرساء في جبال الألب: 3.4
- اكتب الخطوة حيث سيتم توقيع الأداة باستخدام CodeSignTool.
- run: name: Sign Artifact File الأمر: | docker create -v / codeign / bunder --name codeign-in alpine: 3.4 / bin / true docker create -v / codeign / artifacts - name code-out alpine: 3.4 / bin / true docker cp $ {WORKSPACE} /pack / << parameters.artifact-name >> تسجيل الدخول بالرمز: / codeign / bunder docker run -i --rm --dns 8.8.8.8 - مضيف الشبكة - مجلدات - من تسجيل الدخول - مجلدات - من رمز التوقيع - out -e USERNAME = $ {USERNAME} -e PASSWORD = $ {PASSWORD} -e CREDENTIAL_ID = $ {CREDENTIAL_ID} -e TOTP_SECRET = $ {TOTP_SECRET} -e ENVIRONMENT_NAME = $ {ENVIRONMENT_NAME} ghcr.io/sslcomdates $ {COMMAND} -input_file_path = / codeign /packs / << parameters.artifact-name >> -output_dir_path = / codeign / artifacts docker cp codeign-out: / codeign / artifacts / << parameters.artifact-name >> $ { WORKSPACE} / القطع الأثرية / << parameters.artifact-name >>
- اكتب الخطوة الخاصة بقطعة أثرية ليتم تحميلها من سير العمل الخاص بك مما يتيح لك مشاركة البيانات بين الوظائف وبيانات المتجر بمجرد اكتمال سير العمل
- store_artifacts: الاسم: مسار تحميل الملفات الموقعة: / home / circleci / project / artifacts / << parameters.artifact-name >> الوجهة: << parameters.artifact-name >>
قم بإنشاء مستودع جديد على سطر الأوامر
انسخ مكونات أمر الدفع من موقع مشروعك على حساب GitHub الخاص بك
قم بتضمين جميع مكونات أوامر الدفع في المحرر الخاص بك
قم بإعداد مشروع على CircleCI باستخدام المستودع المدمج في GitHub
حدد جميع متغيرات البيئة
أثناء تشغيل المشروع ، انقر فوق الزر إعدادات المشروع متبوعًا بمتغيرات البيئة لتحديد المتغيرات
ضع القيم لكل متغير
انقر على أضف متغير البيئة زر لإضافة أسماء وقيم جميع المتغيرات المطلوبة للمشروع.
انتظر حتى يتم بناء المشروع
انقر فوق الاستمرار في مساحة العمل
انتظر لفترة وجيزة حتى يتم تحميل أرشيف مساحة العمل بنجاح.
انقر فوق زر التوقيع
انتظر حتى يتم إعداد Remote Docker
قد يستغرق الأمر أكثر من دقيقة ، حسب حجم الملف
انتظر حتى يتم التوقيع على القطع الأثرية
انقر القطع الأثرية علامة التبويب
إذا قمت بالنقر فوق القطع الأثرية، ستتمكن من رؤية الملف الذي قمت بتوقيعه بنجاح. سيتم إخطارك أيضًا من قبل CircleCI بالتوقيع الناجح للرمز.
عينة خط أنابيب CircleCI
تحقق من عينة خط أنابيب CircleCI التي أنشأناها github.com/SSLcom/codesigner-circleci-sampleأدلة أخرى لتكامل التوقيع عن بعد CI / CD
- تكامل توقيع رمز السحابة مع إجراءات GitHub
- تكامل توقيع الرمز السحابي مع GitLab CI
- تكامل توقيع رمز السحابة مع Jenkins CI
- تكامل توقيع الرمز السحابي مع Travis CI
- تكامل توقيع الرمز السحابي مع Azure DevOps
- تكامل التوقيع بالرمز السحابي مع BitBucket
- أتمتة توقيع الرمز السحابي مع خدمات CI / CD
هل تحتاج إلى حلول مخصصة؟
بفضل معرفتنا الخبيرة وموظفي الدعم من فئة الخمس نجوم ، نحن مستعدون وراغبون في العمل معك على حلول مخصصة أو خصومات توقيع كبيرة الحجم على مستوى المؤسسة. املأ النموذج أدناه وسنتواصل معك.