🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

إجراءات GitHub المتقدمة 2026: سير العمل القابل لإعادة الاستخدام وOIDC والمصفوفات الديناميكية

⏱️2 min read  ·  255 words
Advanced GitHub Actions 2026: Reusable Workflows, OIDC and Dynamic Matrices

ما وراء CI الأساسي،إجراءات جيثبيدعم سير العمل القابل لإعادة الاستخدام، والإجراءات المركبة، والمصفوفات الديناميكية، ومصادقة OIDC. يغطي هذا الدليل الأنماط المتقدمة التي تستخدمها الفرق الهندسية على نطاق واسع في عام 2026.

سير العمل القابل لإعادة الاستخدام

# .github/workflows/reusable-test.yml
on:
  workflow_call:
    inputs:
      python-version:
        required: true
        type: string
    secrets:
      codecov-token:
        required: true

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: ${{ inputs.python-version }}
      - run: pip install -r requirements.txt && pytest --cov

# Caller workflow
jobs:
  run-tests:
    uses: ./.github/workflows/reusable-test.yml
    with:
      python-version: '3.12'
    secrets:
      codecov-token: ${{ secrets.CODECOV_TOKEN }}

المصفوفة الديناميكية (التي تم إنشاؤها في وقت التشغيل)

jobs:
  generate-matrix:
    runs-on: ubuntu-latest
    outputs:
      matrix: ${{ steps.set-matrix.outputs.matrix }}
    steps:
      - uses: actions/checkout@v4
      - id: set-matrix
        run: |
          SERVICES=$(ls services/ | jq -R -s -c 'split("\n")[:-1]')
          echo "matrix={\"service\":$SERVICES}" >> $GITHUB_OUTPUT

  build:
    needs: generate-matrix
    strategy:
      matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: docker build services/${{ matrix.service }}

مصادقة OIDC (لا توجد أسرار طويلة الأمد)

استخدم OIDC لتبادل رمز GitHub قصير العمر للحصول على بيانات الاعتماد السحابية. لا حاجة للأسرار المخزنة.

permissions:
  id-token: write
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Configure AWS (OIDC)
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: arn:aws:iam::123456789:role/GitHubActionsRole
          aws-region: us-east-1
      - run: aws ecs update-service --cluster prod --service myapp --force-new-deployment

قواعد حماية البيئة

jobs:
  staging:
    environment: staging
    runs-on: ubuntu-latest
    steps:
      - run: ./deploy.sh staging

  production:
    environment: production  # requires manual approval
    needs: staging
    runs-on: ubuntu-latest
    steps:
      - run: ./deploy.sh production

الأفعال المركبة

# .github/actions/setup-project/action.yml
name: Setup Project
inputs:
  python-version:
    default: '3.12'
runs:
  using: composite
  steps:
    - uses: actions/setup-python@v5
      with:
        python-version: ${{ inputs.python-version }}
    - uses: actions/cache@v4
      with:
        path: ~/.cache/pip
        key: pip-${{ hashFiles('requirements.txt') }}
    - run: pip install -r requirements.txt
      shell: bash

الخلاصة

تعمل مسارات العمل القابلة لإعادة الاستخدام على القضاء على الازدواجية عبر اتفاقيات إعادة الشراء. يلغي OIDC الحاجة إلى تخزين بيانات الاعتماد السحابية طويلة الأمد كأسرار. قواعد حماية البيئة بوابة عمليات نشر الإنتاج بعد الحصول على موافقة الإنسان. هذه الأنماط الثلاثة ضرورية لأي فريق هندسي في عام 2026.

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা