Jenkins
لا يملك AppArch إضافة (plugin) لـ Jenkins ولا قالبًا خاصًا به. في Jenkins تشغّل حاوية الـ collector عبر docker run - الصورة نفسها المستخدمة في أي CI آخر. أما اتصال Git نفسه فهو بيانات اعتماد عادية (GitHub أو GitLab أو Bitbucket أو Azure DevOps).
بيانات اعتماد Jenkins
Section titled “بيانات اعتماد Jenkins”من Manage Jenkins ← Credentials أنشئ:
- Secret text باسم
APPARCH_TOKEN- رمز الـ runner للمشروع (راجع تسجيل مشروع). - Username with password باسم
apparch-hub- اسم المستخدم = معرّف التثبيت، وكلمة المرور = مفتاح التثبيت. هذا ما يسحب الصورة منhub.apparch.io؛ فرمز المشروع ليس بيانات اعتماد للسجلّ.
يحتاج الـ agent إلى Docker.
خط الأنابيب
Section titled “خط الأنابيب”pipeline { agent any environment { APPARCH_TOKEN = credentials('APPARCH_TOKEN') } stages { stage('AppArch') { steps { withCredentials([usernamePassword(credentialsId: 'apparch-hub', usernameVariable: 'HUB_USER', passwordVariable: 'HUB_KEY')]) { sh 'echo "$HUB_KEY" | docker login hub.apparch.io -u "$HUB_USER" --password-stdin' } sh ''' PR_ARGS="" if [ -n "$CHANGE_ID" ]; then PR_ARGS="-e APPARCH_Collector__Provider__Type=gitlab \ -e APPARCH_Collector__Provider__ProjectId=group/project \ -e APPARCH_Collector__Provider__PullRequestId=$CHANGE_ID" fi docker run --rm -v "$WORKSPACE:/workspace:ro" \ -e APPARCH_Collector__Token="$APPARCH_TOKEN" \ -e APPARCH_Collector__ApiUrl="https://api.yourdomain.com" \ $PR_ARGS \ hub.apparch.io/collectors/dotnet:latest /workspace ''' } } }}مراجعة طلب السحب أم فحص كامل
Section titled “مراجعة طلب السحب أم فحص كامل”لا يعرض Jenkins متغيّرات طلب الدمج الخاصة بالمزوّد؛ فلا يستطيع الـ runner اكتشاف طلب السحب وحده. تمرّر السياق صراحةً:
| المتغيّر | القيمة |
|---|---|
APPARCH_Collector__Provider__Type | gitlab أو github أو bitbucket أو azuredevops |
APPARCH_Collector__Provider__ProjectId | المستودع لدى المزوّد، مثل group/project |
APPARCH_Collector__Provider__PullRequestId | رقم PR / MR ($CHANGE_ID في خط أنابيب multibranch) |
اختياري: APPARCH_Collector__Provider__BaseUrl، __WebUrl، __BaseSha، __StartSha، __HeadSha، __Title، __Author.
- مع هذه المتغيّرات يكون التشغيل مراجعة لطلب السحب (ArchPilot وسجلّ ArchScan).
- ودونها يكون فحصًا كاملًا (ArchScan وArchSecurity).
إفشال البناء
Section titled “إفشال البناء”أضِف --fail-on <المستوى> بعد /workspace (critical أو error أو warning أو info)، أو اضبط APPARCH_FAIL_ON. إذا وُجدت نتيجة بهذا المستوى أو أعلى، ينتهي الـ collector برمز الخروج 4 بعد إرسال كل النتائج، ويَسِم Jenkins المرحلة بالفشل. وإذا لم يُضبط أيٌّ منهما، يُطبَّق مستوى fail-on المضبوط في اللوحة لمساحة العمل؛ وإن لم يوجد هناك أيضًا فلا تُفشل النتائج الخطوة أبدًا.
لأنظمة CI الأخرى: إضافة الـ runner إلى CI.