التكامل المستمر (CI)
لاستخدام السجل على CI الخاص بك، تحتاج إلى التأكد من تسجيل الدخول إلى السجل عن طريق تشغيل tuist تسجيل الدخول إلى السجل كجزء من سير عملك.
فقط XCODE INTEGRATION
لا يلزم إنشاء سلسلة مفاتيح جديدة غير مؤمّنة مسبقًا إلا إذا كنت تستخدم تكامل حزم Xcode.
نظرًا لأنه يتم تخزين بيانات اعتماد السجل في سلسلة مفاتيح، فأنت بحاجة إلى التأكد من إمكانية الوصول إلى سلسلة المفاتيح في بيئة CI. لاحظ أن بعض موفري CI أو أدوات الأتمتة مثل [Fastlane] (https://fastlane.tools/) تنشئ بالفعل سلسلة مفاتيح مؤقتة أو توفر طريقة مدمجة لكيفية إنشاء واحدة. ومع ذلك، يمكنك أيضًا إنشاء واحدة من خلال إنشاء خطوة مخصصة باستخدام التعليمات البرمجية التالية:
bash
TMP_DIRECTORY=$(mktemp -d)
KEYCHAIN_PATH=$TMP_DIRECTORY/keychain.keychain
KEYCHAIN_PASSWORD=$(uuidgen)
security create-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security default-keychain -s $KEYCHAIN_PATH
security unlock-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH`` سيتم بعد ذلك تخزين بيانات الاعتماد في سلسلة المفاتيح الافتراضية. تأكد من إنشاء سلسلة المفاتيح الافتراضية وإلغاء قفلها قبل تشغيل تسجيل الدخول إلى سجل tuist.
بالإضافة إلى ذلك، تحتاج إلى التأكد من تعيين متغير البيئة TUIST_CONFIG_TOKEN. يمكنك إنشاء واحد باتباع الوثائق
مثال على سير العمل لإجراءات GitHub يمكن أن يبدو بعد ذلك على النحو التالي:
yaml
name: Build
jobs:
build:
steps:
- # Your set up steps...
- name: Create keychain
run: |
TMP_DIRECTORY=$(mktemp -d)
KEYCHAIN_PATH=$TMP_DIRECTORY/keychain.keychain
KEYCHAIN_PASSWORD=$(uuidgen)
security create-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security default-keychain -s $KEYCHAIN_PATH
security unlock-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH
- name: Log in to the Tuist Registry
env:
TUIST_CONFIG_TOKEN: ${{ secrets.TUIST_CONFIG_TOKEN }}
run: tuist registry login
- # Your build stepsدقة متزايدة عبر البيئات
تكون عمليات الحل النظيف/البارد أسرع قليلاً مع السجل الخاص بنا، ويمكنك تجربة تحسينات أكبر إذا واصلت التبعيات التي تم حلها عبر إنشاءات CI. لاحظ أنه بفضل السجل، يكون حجم الدليل الذي تحتاج إلى تخزينه واستعادته أصغر بكثير مما هو عليه بدون السجل، مما يستغرق وقتًا أقل بكثير. لتخزين التبعيات مؤقتًا عند استخدام تكامل حزمة Xcode الافتراضية، فإن أفضل طريقة هي تحديد clonedSourcePackagesDirPath عند حل التبعيات عبر xcodebuild. يمكن القيام بذلك عن طريق إضافة ما يلي إلى ملف Config.swift الخاص بك:
swift
import ProjectDescription
let config = Config(
generationOptions: .options(
additionalPackageResolutionArguments: ["-clonedSourcePackagesDirPath", ".build"]
)
)بالإضافة إلى ذلك، ستحتاج إلى العثور على مسار Package.resolved. يمكنك الحصول على المسار عن طريق تشغيل ls ** / Package.resolved. يجب أن يبدو المسار مثل App.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved.
بالنسبة لحزم Swift والتكامل المستند إلى XcodeProj، يمكننا استخدام الدليل الافتراضي .build الموجود إما في جذر المشروع أو في الدليل Tuist. تأكد من صحة المسار عند إعداد خط الأنابيب الخاص بك.
فيما يلي مثال على سير عمل إجراءات GitHub لحل التبعيات وتخزينها مؤقتًا عند استخدام تكامل حزمة Xcode الافتراضية:
yaml
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-${{ hashFiles('App.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
- name: Resolve dependencies
if: steps.cache-restore.outputs.cache-hit != 'true'
run: xcodebuild -resolvePackageDependencies -clonedSourcePackagesDirPath .build
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}