⏱️2 min read · 255 words

ما وراء CI الأساسي،إجراءات جيثبيدعم سير العمل القابل لإعادة الاستخدام، والإجراءات المركبة، والمصفوفات الديناميكية، ومصادقة OIDC. يغطي هذا الدليل الأنماط المتقدمة التي تستخدمها الفرق الهندسية على نطاق واسع في عام 2026.
📋 Table of Contents
سير العمل القابل لإعادة الاستخدام
# .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.
🔗 Share this article
✍️ Leave a Comment