الأستعمال
- اسم: قم بتوقيع قطعة أثرية باستخدام CodeSignTool
الاستعمالات: sslcom / Actions-codeigner @ تطوير
مع:
- أوامر CodeSignTool:
- get_credential_ids
: إخراج قائمة معرفات اعتماد eSigner المرتبطة بالمستخدم.
- credential_info
: مفتاح الإخراج ومعلومات الشهادة المتعلقة بمعرف بيانات الاعتماد.
- sign
: التوقيع وكائن رمز الطابع الزمني.
- batch_sign
: قم بالتوقيع والطابع الزمني على كائنات رمز متعددة باستخدام OTP واحد.
- hash
: قم بحساب التجزئة مسبقًا لاستخدامها لاحقًا مع أمر batch_hash_sign.
- batch_sign_hash
: علامة التجزئة المحسوبة مسبقًا بأمر التجزئة.
أمر: إشارة
- اسم مستخدم حساب SSL.com.
username: ${{secrets.ES_USERNAME}}
- كلمة مرور حساب SSL.com.
password: ${{secrets.ES_PASSWORD}}
- معرف الاعتماد لتوقيع الشهادة.
credential_id: ${{secrets.CREDENTIAL_ID}}
- سر OAuth TOTP (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
- مسار كائن التعليمات البرمجية المراد توقيعه.
file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar
- الدليل حيث سيتم كتابة كائن (كائنات) التعليمات البرمجية الموقعة.
output_path: ${GITHUB_WORKSPACE}/artifacts
المدخلات
- اسم المستخدم: اسم مستخدم حساب SSL.com. (مطلوب)
- كلمه السر: كلمة مرور حساب SSL.com (مطلوب)
- الاعتماد_المعرّف: معرف الاعتماد لتوقيع الشهادة. إذا تم حذف credential_id وكان المستخدم لديه شهادة توقيع رمز eSigner واحدة فقط ، فسيتم تعيين CodeSignTool افتراضيًا لذلك. إذا كان المستخدم لديه أكثر من شهادة توقيع رمز ، فإن هذه المعلمة إلزامية. (مطلوب)
- totp_secret: OAuth TOTP Secret. يمكنك الوصول إلى معلومات مفصلة عن https://www.ssl.com/how-to/automate-esigner-ev-code-signing (مطلوب)
- مسار الملف: مسار كائن التعليمات البرمجية المراد توقيعه. (مطلوب)
- مسار الاخراج: الدليل حيث سيتم كتابة كائن (كائنات) التعليمات البرمجية الموقعة. إذا تم حذف output_path ، فسيتم استبدال الملف المحدد في -file_path بالملف الموقع.
Java Code (Maven) JAR مثال لتوقيع سير العمل
تحضير مكونات سير العمل
- قم بإنشاء مجلد Github على المحرر الخاص بك. قم بتضمين مهام سير العمل مع المجلد وأنشئ ملف yml ضمن المجلد.
- قم بتسمية مشروعك ونوع سير العمل المتضمن
الاسم: Maven Build and Sign
- قم بتشغيل سير العمل هذا بضغطة واحدة
تشغيل: ادفع
- خلق متغير البيئة
- تُستخدم متغيرات البيئة لجعل العينات أكثر قابلية للقراءة. في لقطة الشاشة أعلاه لنموذج سير العمل ، تم حذف PROJECT_NAME و PROJECT_VERSION و MAVEN_VERSION اختياريًا. التوقيع لا يزال من الممكن المضي قدما حتى مع هذه الإغفالات.
البيئة: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- حدد الوظائف في المحرر الخاص بك
الوظائف: بناء وتوقيع جرة:
- قم بتشغيل الوظيفة على Ubuntu Runner
يعمل على: ubuntu-latest
- قم بإنشاء اسم. عند تشغيل سير العمل ، يكون هذا هو الاسم الذي تم تسجيله.
الاسم: CodeSigner على Java مع Maven
حدد خطوات التحقق من الكود المصدري ، وإعداد بيئة Java و Maven ، وإنشاء دليل Artifact.
1) تحقق من الكود المصدري حتى يتمكن سير العمل من الوصول إليه.
الخطوات: - الاستخدامات: الإجراءات / الخروج @ v2
2) قم بإعداد بيئة Java و Maven لاستخدام سير العمل.
- الاسم: تثبيت Maven و Java يستخدم: s4u/setup-maven-action@v1.3.1 مع: java-version: '$ {env.JAVA_VERSION}}' maven-version: '$ {env.MAVEN_VERSION}}
3) إنشاء دليل قطعة أثرية لتخزين الملفات الأثرية الموقعة وغير الموقعة
- الاسم: إنشاء غلاف الدليل: تشغيل bash: | mkdir $ {GITHUB_WORKSPACE} / artifacts mkdir $ {GITHUB_WORKSPACE} / الحزم
4) بناء مشروع أو حل مخضرم وجميع تبعياته.
بعد إنشاء ملف jar ، انسخ إلى مجلد "الحزم" للتوقيع
- في سير عمل مثال التوقيع المكتوب هذا ، تم إنشاء أنواع متعددة من المشاريع. هذا هو سبب الاحتفاظ بملفات أنواع المشاريع المختلفة عن طريق إنشاء مجلدات فرعية. تم إنشاء مجلد فرعي باسم "java" لمشاريع Java. في لقطة الشاشة التجريبية أعلاه ، لم تكن هناك حاجة لإنشاء مجلد فرعي باسم "java" لذلك لم يتم تضمينه في البرنامج النصي.
- الاسم: Build Java Project shell: bash run: | mvn clean install -f java / pom.xml cp java / target / $ {env.PROJECT_NAME}} - $ {env.PROJECT_VERSION}}. jar $ {GITHUB_WORKSPACE} /pack / $ {env.PROJECT_NAME}}. إناء
حدد الخطوات الخاصة بوظائف التوقيع والتحميل
- مهمة التوقيع هي الخطوة التي سيتم فيها توقيع ملفات JAR (قطعة أثرية) التي تم إنشاؤها باستخدام CodeSignTool.
- الاسم: استخدامات Sign Artifact: sslcom / Actions-codeigner @ تطوير مع:
كائن رمز التوقيع والطابع الزمني.
الأمر: تسجيل
اسم مستخدم حساب SSL.com.
اسم المستخدم: $ {{secrets.ES_USERNAME}}
كلمة مرور حساب SSL.com.
كلمة المرور: $ {{secrets.ES_PASSWORD}}
معرف الاعتماد لتوقيع الشهادة.
بيانات الاعتماد: $ {{secrets.CREDENTIAL_ID}}
سر OAuth TOTP (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: $ {{secrets.ES_TOTP_SECRET}}
مسار كائن التعليمات البرمجية المراد توقيعه. (ملفات DLL ، JAR ، EXE ، MSI vb ...)
file_path: $ {GITHUB_WORKSPACE} /packs / $ {env.PROJECT_NAME}}. jar
الدليل حيث سيتم كتابة كائن (كائنات) التعليمات البرمجية الموقعة.
output_path: $ {GITHUB_WORKSPACE} / قطعة أثرية
- وظيفة التحميل هي الخطوة التي سيتم فيها تحميل العناصر الأثرية من سير العمل الخاص بك ، مما يتيح لك مشاركة البيانات بين الوظائف وبيانات المتجر بمجرد اكتمال سير العمل
- الاسم: تحميل الملفات الموقعة يستخدم: Actions / upload-artifact @ v2 with: name: $ {{env.PROJECT_NAME}}. jar path: ./artifacts/${{env.PROJECT_NAME}}.jar
احصل على أداة رفع قطعة أثرية للبناء من Github Marketplace
راجع نص الترميز الخاص بك
بشكل عام ، يجب أن يبدو نص الترميز الخاص بمهام التجميع والتوقيع والتحميل مثل الصورة أدناه. تأكد من تصحيح أي أخطاء مثل التهجئة الخاطئة أو فواصل الأسطر الخاطئة في البرنامج النصي حتى تتم عملية التوقيع بسلاسة.
حدد متغيرات البيئة الخاصة بك
انتقل إلى موقع مشروعك على حساب Github الخاص بك. انقر على الإجراءات التبويب. انقر على سر المستودع الجديد زر لوضع القيم لكل متغير بيئة مطلوب في توقيع التعليمات البرمجية الخاصة بك.
قم بإنشاء مستودع جديد على سطر الأوامر
انتقل إلى موقع مشروعك على Github وانسخ كل مكون من أمر الدفع.
ادفع المشروع
قم بتضمين كل سطر أوامر دفع في محرر التعليمات البرمجية الخاص بك. عند الانتهاء ، سيتم دفع الرمز تلقائيًا على Github.
انتظر حتى يتم توقيع الأداة باستخدام eSigner CodeSignTool
قم بتحميل الملف الموقع
اضغط على الملف الموقع لتحميله.
عينة خط أنابيب إجراءات جيثب
تحقق من نموذج خط أنابيب إجراءات Github الذي أنشأناه github.com/SSLcom/codesigner-github-sample
أدلة أخرى لتكامل التوقيع عن بعد CI / CD
- تكامل توقيع رمز السحابة مع CircleCI
- تكامل توقيع الرمز السحابي مع GitLab CI
- تكامل توقيع رمز السحابة مع Jenkins CI
- تكامل توقيع الرمز السحابي مع Travis CI
- تكامل توقيع الرمز السحابي مع Azure DevOps
- أتمتة توقيع الرمز السحابي مع خدمات CI / CD
هل تحتاج إلى حلول مخصصة؟
بفضل معرفتنا الخبيرة وموظفي الدعم من فئة الخمس نجوم ، نحن مستعدون وراغبون في العمل معك على حلول مخصصة أو خصومات توقيع كبيرة الحجم على مستوى المؤسسة. املأ النموذج أدناه وسنتواصل معك.