يوفر هذا الإجراء الوظائف التالية لمستخدمي GitHub Actions:
يمكنك اختياريًا تنزيل الإصدار المطلوب من Node.js وتخزينه مؤقتًا وإضافته إلى PATH
التخزين المؤقت اختياريًا لتبعيات npm/yarn/pnpm
تسجيل مطابقات المشكلة لإخراج الخطأ
تكوين المصادقة لـ GPR أو npm
راجع action.yml
- الاستخدامات: action/setup-node@v4 مع:# مواصفات الإصدار للإصدار الذي سيتم استخدامه في تدوين SemVer.# كما أنه يقبل أيضًا الأسماء المستعارة مثل lts/*، الأحدث، Nightly وcanary builds# أمثلة: 12.x، 10.15.1، >=10.15.0، lts/ الهيدروجين، 16 ليلة، الأحدث، إصدار العقدة: ''# ملف يحتوي على مواصفات الإصدار للإصدار المطلوب استخدامه. أمثلة: package.json، .nvmrc، .node-version، .tool-versions.# إذا تم توفير كل من ملف إصدار العقدة وملف إصدار العقدة، فسيستخدم الإجراء الإصدار من إصدار العقدة. Node-version-file: ''# اضبط هذا الخيار إذا كنت تريد أن يتحقق الإجراء من أحدث إصدار متاح # يلبي مواصفات الإصدار.# لن يؤثر إلا على إصدارات lts Nodejs (12.x, >=10.15. 0 لتر/هيدروجين). # الافتراضي: falsecheck-latest: false# البنية المستهدفة للعقدة المراد استخدامها. أمثلة: x86، x64. سيتم استخدام بنية النظام بشكل افتراضي.# الافتراضي: ''. يستخدم الإجراء بنية النظام حسب البنية الافتراضية: ''# يستخدم لسحب توزيعات العقدة من https://github.com/actions/node-versions. # نظرًا لوجود افتراضي، لا يتم توفيره عادةً من قبل المستخدم. # عند تشغيل هذا الإجراء على github.com، تكون القيمة الافتراضية كافية. # عند التشغيل على GHES، يمكنك تمرير رمز وصول شخصي إلى github.com إذا كنت تواجه قيودًا على المعدل. ## نوصي باستخدام حساب خدمة مع أقل الأذونات اللازمة. أيضًا# عند إنشاء PAT جديد، حدد النطاقات الأقل اللازمة.## [اعرف المزيد حول إنشاء واستخدام الأسرار المشفرة](https://help.github.com/en/actions/automating-your-workflow-with-github -actions/creating-and-using-encrypted-secrets)## الافتراضي: ${{ github.server_url == 'https://github.com' && جيثب.توكين || '' }}الرمز المميز: ''# يستخدم لتحديد مدير الحزم للتخزين المؤقت في الدليل الافتراضي. القيم المدعومة: npm، الغزل، pnpm. # يجب أن يكون مدير الحزم مثبتًا مسبقًا # الافتراضي: ''cache: ''# يستخدم لتحديد المسار إلى ملف التبعية: package-lock.json، Yarn.lock، إلخ. # سيتم إنشاء التجزئة من الملف الهدف للمفتاح الأساسي. إنه يعمل فقط إذا تم تحديد ذاكرة التخزين المؤقت. # يدعم أحرف البدل أو قائمة أسماء الملفات للتخزين المؤقت لتبعيات متعددة. # الافتراضي: ''cache-dependency-path: ''# تسجيل اختياري لإعداد المصادقة. سيتم تعيين السجل في ملف .npmrc و.yarnrc على مستوى المشروع، # وإعداد المصادقة للقراءة من env.NODE_AUTH_TOKEN.# الافتراضي: ''registry-url: ''# نطاق اختياري للمصادقة مقابل السجلات المحددة النطاق. # سيعود إلى مالك المستودع عند استخدام سجل حزم GitHub (https://npm.pkg.github.com/).# الافتراضي: ''النطاق: ''# تعيين خيار المصادقة دائمًا في ملف npmrc.# الافتراضي : ''المصادقة دائمًا:''
أساسي:
خطوات: - الاستخدامات: Actions/checkout@v4- الاستخدامات: Actions/setup-node@v4 مع: عقدة الإصدار: 18- تشغيل: npm ci- تشغيل: اختبار npm
يعد إدخال node-version
اختياريًا. إذا لم يتم توفيره، فسيتم استخدام إصدار العقدة من PATH. ومع ذلك، يوصى دائمًا بتحديد إصدار Node.js وعدم الاعتماد على إصدار النظام.
سيقوم الإجراء أولاً بفحص ذاكرة التخزين المؤقت المحلية بحثًا عن تطابق نصفي. إذا لم تتمكن من العثور على إصدار محدد في ذاكرة التخزين المؤقت، فسيحاول الإجراء تنزيل إصدار Node.js. سوف يسحب إصدارات LTS من إصدارات إصدارات العقدة وفي حالة الفشل أو الفشل سوف يعود إلى السلوك السابق للتنزيل مباشرة من العقدة dist.
للحصول على معلومات بخصوص الإصدارات المخزنة محليًا مؤقتًا من Node.js على برامج التشغيل المستضافة على GitHub، راجع GitHub Actions Runner Images.
يدعم إدخال node-version
مواصفات الإصدار الدلالي، للحصول على أمثلة أكثر تفصيلاً، يرجى الرجوع إلى وثائق حزمة semver.
أمثلة:
الإصدارات الرئيسية: 18
، 20
إصدارات أكثر تحديدًا: 10.15
و 16.15.1
و 18.4.0
بناء جملة NVM LTS: lts/erbium
، lts/fermium
، lts/*
، lts/-n
أحدث إصدار: *
أو latest
/ current
/ node
ملاحظة: مثل القيم الأخرى، *
سيحصل على أحدث إصدار Node.js مخبأ محليًا، أو أحدث إصدار من الإجراءات/إصدارات العقدة، اعتمادًا على check-latest
المدخلات.
يتم حل node
current
/ latest
/ دائمًا إلى أحدث إصدار من التوزيعة. يتم بعد ذلك تنزيل هذا الإصدار من الإجراءات/إصدارات العقدة إن أمكن، أو مباشرة من Node.js إذا لم يكن الأمر كذلك. نظرًا لأنه لن يتم تخزينه مؤقتًا دائمًا، فمن الممكن الوصول إلى الحد الأقصى للمعدل عند التنزيل من التوزيعة
يوصى دائمًا بتنفيذ ملف القفل الخاص بمدير الحزم الخاص بك لأسباب تتعلق بالأمان والأداء. لمزيد من المعلومات، راجع قسم "العمل مع ملفات القفل" في دليل الاستخدام المتقدم.
يحتوي الإجراء على وظيفة مضمنة للتخزين المؤقت واستعادة التبعيات. يستخدم الإجراءات/ذاكرة التخزين المؤقت أسفل الغطاء للتخزين المؤقت لبيانات الحزم العالمية ولكنه يتطلب إعدادات تكوين أقل. مديرو الحزم المدعومون هم npm
و yarn
و pnpm
(v6.10+). يعد إدخال cache
اختياريًا، ويتم إيقاف تشغيل التخزين المؤقت بشكل افتراضي.
يقوم الإجراء الافتراضي بالبحث عن ملف التبعية ( package-lock.json
أو npm-shrinkwrap.json
أو yarn.lock
) في جذر المستودع، ويستخدم التجزئة الخاصة به كجزء من مفتاح ذاكرة التخزين المؤقت. استخدم cache-dependency-path
في الحالات التي يتم فيها استخدام ملفات تبعية متعددة، أو تكون موجودة في أدلة فرعية مختلفة.
ملاحظة: لا يقوم الإجراء بتخزين node_modules
مؤقتًا
راجع أمثلة استخدام ذاكرة التخزين المؤقت لإدخال yarn
/ pnpm
ومسار cache-dependency-path
في دليل الاستخدام المتقدم.
التخزين المؤقت لتبعيات npm:
خطوات: - الاستخدامات: Actions/checkout@v4- الاستخدامات: Actions/setup-node@v4 مع: إصدار العقدة: 20 ذاكرة تخزين مؤقت: 'npm'- تشغيل: npm ci- تشغيل: اختبار npm
التخزين المؤقت لتبعيات npm في monorepos:
خطوات: - الاستخدامات: Actions/checkout@v4- الاستخدامات: Actions/setup-node@v4 مع: إصدار العقدة: 20cache: مسار تبعية ذاكرة التخزين المؤقت npm: subdir/package-lock.json- تشغيل: npm ci- تشغيل: اختبار npm
الوظائف: البناء: التشغيل: أحدث إستراتيجية أوبونتو: المصفوفة: العقدة: [ 14, 16, 18 ] الاسم: العقدة ${{ Matrix.node }} Samplesteps: - الاستخدامات: الإجراءات/checkout@v4 - الاسم: استخدامات عقدة الإعداد: الإجراءات/setup-node@v4with: إصدار العقدة: ${{ Matrix.node }} - التشغيل: npm ci - التشغيل: اختبار npm
setup-node
على GHES تأتي setup-node
مثبتة مسبقًا على الجهاز مع GHES في حالة تمكين الإجراءات. عند تنزيل توزيعات Nodejs ديناميكيًا، تقوم setup-node
بتنزيل التوزيعات من actions/node-versions
على github.com (خارج الجهاز). يتم إجراء هذه الاستدعاءات إلى actions/node-versions
عبر طلبات غير مصادق عليها، والتي تقتصر على 60 طلبًا في الساعة لكل عنوان IP. إذا تم تقديم المزيد من الطلبات خلال الإطار الزمني، فستبدأ في رؤية أخطاء حد المعدل أثناء التنزيل والتي تبدو كما يلي: ##[error]API rate limit exceeded for...
. بعد هذا الخطأ، سيحاول الإجراء تنزيل الإصدارات مباشرة من الموقع الرسمي، ولكن يمكن أن يكون له أيضًا حد للمعدل لذا من الأفضل وضع رمز مميز.
للحصول على حد أعلى للسعر، يمكنك إنشاء رمز وصول شخصي على github.com وتمريره كمدخل token
للإجراء:
الاستخدامات: action/setup-node@v4with: الرمز المميز: ${{ Secrets.GH_DOTCOM_TOKEN }} نسخة العقدة: 20
إذا لم يتمكن العداء من الوصول إلى github.com، فيجب أن تأتي أي إصدارات Nodejs مطلوبة أثناء تشغيل سير العمل من ذاكرة التخزين المؤقت لأداة العداء. راجع "إعداد ذاكرة التخزين المؤقت للأداة على برامج التشغيل المستضافة ذاتيًا دون الوصول إلى الإنترنت" لمزيد من المعلومات.
تحقق من أحدث إصدار
باستخدام ملف إصدار العقدة
باستخدام أبنية مختلفة
باستخدام إصدارات الكناري v8
باستخدام الإصدارات الليلية
باستخدام إصدارات RC
تخزين بيانات الحزم مؤقتًا
استخدام أنظمة تشغيل وبنيات متعددة
النشر إلى npmjs وGPR باستخدام npm
النشر إلى npmjs وGPR باستخدام الغزل
استخدام الحزم الخاصة
يتم إصدار البرامج النصية والوثائق في هذا المشروع بموجب ترخيص MIT
المساهمات هي موضع ترحيب! راجع دليل المساهمين
كن لطيفا. راجع قواعد السلوك لدينا