انتقل إلى المحتوى

الـ variables في Actions

ملاحظة

تحتاج هذه الميزة إلى تفعيل Actions على الـ repository من SettingsAdvanced SettingsEnable Repository Actions، وإلى runner متاح يوفّره مدير الخدمة. إن لم يظهر تبويب Actions في الـ repository فالميزة غير متاحة بعد، وكل ما هنا ينطبق «إن كانت مفعّلة».

الـ variable قيمة إعداد غير سرّية — اسم بيئة، أو رقم إصدار أداة، أو عنوان خادم — تحفظها مرة واحدة في ليڤانت غيت (LevantGit) وتقرأها من أي workflow بالتعبير ${{ vars.NAME }}، بدل تكرارها في كل ملف YAML. تظهر قيمتها في الواجهة ولا تُحجب من السجل؛ فما يجب إخفاؤه يوضع secret لا variable.

الـ variable مقابل الـ secret

الـ variable الـ secret
الغرض قيم إعداد عادية كلمات سر و tokens ومفاتيح
هل تُقرأ من الواجهة بعد الحفظ؟ نعم لا
هل تُحجب من السجل؟ لا نعم
السياق في YAML ${{ vars.NAME }} ${{ secrets.NAME }}

القاعدة بسيطة: إن كان ظهور القيمة في السجل أو لشخص آخر مشكلةً، فهي secret لا variable. راجع صفحة الـ secrets.

مستويات الـ variables

تستطيع إنشاء الـ variable في ثلاثة مستويات، ويتحدّد المستوى بالمكان الذي تنشئه فيه:

  • الـ repository: SettingsActionsVariables. متاح لـ workflows هذا الـ repository فقط.
  • الـ organization: إعدادات الـ organization ← ActionsVariables. متاح لكل repositories الـ organization.
  • المستخدم: Settings في حسابك ← ActionsVariables. متاح لكل repositories الشخصية.

اضغط Add Variable واكتب الاسم والقيمة. انتبه: يُحوَّل الاسم إلى أحرف كبيرة عند الحفظ، فإن سمّيته node_version يُخزَّن باسم NODE_VERSION، وعليك أن تكتبه بالأحرف الكبيرة في ملف YAML.

قواعد التسمية

  • حروف لاتينية (a-z، A-Z) وأرقام (0-9) وشرطة سفلية (_) فقط، دون مسافات.
  • لا يبدأ بالسابقة GITHUB_ ولا GITEA_.
  • لا يبدأ بـ CI.
  • لا يبدأ برقم.
  • غير حسّاس لحالة الأحرف.
  • فريد في مستواه (لا variableان بالاسم نفسه في الـ repository الواحد أو الـ organization الواحدة).

استخدام الـ variable في الـ workflow

بعد إنشائه يصبح الـ variable متاحًا تلقائيًا في السياق vars، ويُقرأ بالتعبير ${{ vars.VARIABLE_NAME }}. مثال يستخدم variable باسم NODE_VERSION لاختيار إصدار Node.js:

name: Test
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ vars.NODE_VERSION }}
      - run: npm ci
      - run: npm test

عندما تريد ترقية إصدار Node.js في كل repositories الـ organization، تغيّر قيمة الـ variable مرة واحدة على مستوى الـ organization، دون أن تلمس أي ملف YAML.

ماذا لو تكرّر الاسم في مستويين؟

إن وُجد variable بالاسم نفسه في أكثر من مستوى، فالأولوية للمستوى الأقرب إلى الـ repository: variable الـ repository يُختار دائمًا قبل variable الـ organization أو المستخدم. هذا يسمح بقيمة افتراضية عامة مع استثناء محلي في repository معيّن.

نصيحة

إن كان الـ variable يخصّ workflow واحدًا فقط، فقد يكون من الأبسط تعريفه في الملف نفسه تحت env: على مستوى الـ workflow. استخدم variables الواجهة عندما تريد تغيير القيمة دون commit جديد، أو مشاركتها بين عدة repositories.

ماذا بعد؟


هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.