Tekunda
طريقة عملنا
الوظائفانضم إلى فريق يبني ذكاءً اصطناعيًا وكيليًا جاهزًا للإنتاج.المدوّنةملاحظات عملية عن الذكاء الاصطناعي وSalesforce والإنتاج.
حلولنا
ضع وكلاء الذكاء الاصطناعي في عملياتكوكلاء يتصرفون، يستشهدون بالمصادر، ويعترضون عند الحاجة.حسّن تجربة العملاء بالذكاء الاصطناعيوكلاء يحلّون ويوجّهون، عبر كل القنوات، بالعربية والإنجليزية.اربط أنظمتكتكامل وMCP: أكثر من 70 نظام مؤسسي، خاضع للحوكمة وقابل للتراجع.ابنِ منتج أو تطبيقمنتجات full-stack وSaaS وتطبيقات جوال أصيلة، بأيدي مهندسين خبراء.اخدم عملاءك بالعربيةوكلاء واعون باللهجات، RTL كامل، Agentforce Voice، WhatsApp.
عمق Salesforce: على بعد نقرة
Agentforceستة وكلاء، رحلة عميل واحدة، مرتكزة على بياناتك.Service Cloudحالات ذاتية حيث ينجز Agentforce العمل.Data 360مصدر حقيقة واحد على Salesforce Data Cloud.Tekunda IoT Cloudمن أحداث الأجهزة إلى فرز ذاتي للحالات.AI Decision Supportإجابات استباقية مرتكزة تعترض حين تختلف البيانات.شريك Salesforceاعتمادات SI وISV وPDO وAgentforce.
مثبتة في الإنتاج
الأجهزة المتصلةASSA ABLOY وFocusCura وPhoniro: أساطيل أجهزة تدير نفسها.الرعاية الصحية والمنزليةأكثر من 12 مؤسسة رعاية تعمل في الإنتاج في هولندا.العقاراترحلة الوكلاء الستة، من مطابقة العرض إلى الرد الأول.
الإثبات
دراسة حالة ASSA ABLOYمن 3,000 حالة كل أسبوع إلى 350.Cerebroمنتج Salesforce أصيل للتسويق والمبيعات، مثبت في الإنتاج.دراسة حالة Syntilioمنصة رعاية بمستوى PDO على AppExchange.كل القطاعاتبنية واحدة تُعايَر حسب قطاعك.
محفظة المنتجاتمن بناء Tekunda

المنصات والمحركات التي نبنيها ونشغّلها: Service Circle وTekunda IoT Cloud والIntegration Hub وTekunda AI.

استكشف المحفظة
احجز اجتماع
AR
EnglishENNederlandsNLالعربيةARFrançaisFRDeutschDE
SalesforcepartnerClaudeClaude partner
AR
EnglishENNederlandsNLالعربيةARFrançaisFRDeutschDE
احجز اجتماع
Tekunda

Shed to grow. نبسّط عمليات الأعمال ليتفرغ فريقك لما يهم بالفعل.

شريك Salesforce معتمد: SI · ISV · PDO · Agentforce
حلولنا
وكلاء الذكاء الاصطناعيوكلاء تجربة العملاءالتكامل وMCPتطوير المنتجاتوكلاء بالعربية
Salesforce
AgentforceService CloudData 360Tekunda IoT CloudAI Decision SupportCerebroاعتمادات الشريك
الشركة
المنتجاتالقطاعاتمقالاتطريقة عملنامن نحنتواصل معنا
© 2026 Tekunda L.L.C-FZ
EnglishNederlandsالعربيةFrançaisDeutsch
الخصوصيةالشروط
العودة إلى المقالات
Andrew Hanna

Andrew Hanna

تم التحديث قبل 3 أشهر

2026-04-07T03:59:26.863Z

كيفية بناء Salesforce CI/CD Pipeline باستخدام GitHub Actions

كيفية بناء Salesforce CI/CD Pipeline باستخدام GitHub Actions

تطور Salesforce development كثيرا منذ أيام دفع التغييرات يدويا عبر Change Sets. ومع نمو الفرق وزيادة عدد releases، تتحول deployments اليدوية بسرعة إلى bottleneck.

هنا يأتي دور CI/CD (Continuous Integration and Continuous Delivery). فالـ pipeline الجيد يحقق validate وtest وpromote للتغييرات تلقائيا من development إلى production.

في هذا الدليل نوضح كيف تعمل Salesforce CI/CD، وكيف تبني pipeline باستخدام GitHub Actions، ومتى تبدأ DIY automation في أن تصبح صعبة الإدارة.

لماذا CI/CD مهم في Salesforce

فرق Salesforce لا تنشر تطبيقا compiled، بل metadata وconfiguration مثل:

  • Apex classes وtriggers

  • Lightning Web Components

  • Flows وautomation

  • Profiles وpermission sets وobjects وfields وlayouts

بدون automation تظهر مشكلات مثل drift بين البيئات، dependencies ناقصة، أخطاء يدوية وضعف traceability بين work items ومحتوى release.

تعالج CI/CD pipelines ذلك عبر:

  • validate للتغييرات تلقائيا

  • تشغيل tests قبل deployment

  • استخدام Git كمصدر للحقيقة

  • promote للتغييرات المعتمدة فقط

نماذج Salesforce development

1. Org-based development

هذا ما زال النموذج الأكثر شيوعا. يعمل developers داخل sandboxes، ثم يتم retrieve للـ metadata إلى Git، وبعدها تقوم CI/CD pipeline بترقيتها عبر البيئات.

Developer Sandbox
      ↓
QA
      ↓
UAT / Staging
      ↓
Production

2. Package-based development

يستخدم package-based development حزم modular بدلا من نقل metadata كاملة ككتلة واحدة. يناسب ذلك ISVs وAppExchange partners وenterprise teams ذات workstreams متعددة.

أنماط مقترحة حسب حجم الفريق

فرق صغيرة

Developer Sandbox
      ↓
Retrieve to Git
      ↓
Pull Request validation
      ↓
Build unlocked package version
      ↓
Install in Staging / QA Sandbox
      ↓
Install same package version in Production

يعمل هذا عندما يكون الفريق صغيرا ومتناسقا، وrelease frequency عالية، وبيئة staging أو QA واحدة كافية للـ signoff.

فرق نامية وكبيرة

الفرق الأكبر تحتاج غالبا إلى QA وUAT منفصلتين. QA تتحقق من integrated source changes، بينما UAT تتحقق من release artifact الذي سيصل إلى production.

Qa Devops

Developer Sandbox
      ↓
Feature branch
      ↓
Pull Request validation
      ↓
Merge to develop
      ↓
Deploy source to QA
      ↓
Create release branch
      ↓
Build unlocked package version
      ↓
Install package in UAT
      ↓
Install same package version in Production

ISVs وmodular packages

تبدأ ISVs غالبا بنموذج package-led. أما orgs الكبيرة فتتجه إلى modular unlocked packages مثل sales package وservice operations وcustomer onboarding وcore automation.

Branching strategy

قبل بناء pipeline، اختر كيف يتحرك العمل داخل Git. الخياران الأكثر شيوعا هما GitFlow وtrunk-based development.

GitFlow

main      → production history
develop   → integration branch
feature/* → work item branches
release/* → release candidate branches
hotfix/*  → urgent production fixes

يناسب GitFlow الفرق التي لديها QA وUAT وscheduled releases. أما trunk-based development فيناسب الفرق الصغيرة الناضجة ذات automation قوية وdeployments متكررة.

معمارية pipeline المقترحة

لأغلب فرق Salesforce النامية، النموذج العملي هو:

Developer Sandbox
      ↓
Retrieve metadata to Git
      ↓
Feature branch
      ↓
Pull Request validation
      ↓
Merge to develop
      ↓
Deploy source to QA
      ↓
Create release branch
      ↓
Build unlocked package version
      ↓
Install package in UAT
      ↓
Regression testing and signoff
      ↓
Install same package version in Production

source deploy إلى QA سريع لاختبارات integration، بينما تتحول package version إلى release artifact ثابتة للـ UAT وproduction.

package.xml مقابل source tracking مقابل Serpent workflow

الفئة Package.xml Source tracking + unlocked packages Serpent workflow
النموذج Manifest-driven deployment Git-driven development مع package promotion Task-driven workflow حول Git والبيئات وrelease visibility
أفضل استخدام Hotfixes والفرق legacy فرق حديثة تريد versioned releases فرق تريد سرعة ورؤية وتشغيل أسهل
Dependencies يدوية أفضل، لكنها تحتاج discipline مدعومة بـ metadata analysis وworkflow logic
التعاون يدوي غالبا Git-centric ومناسب للمطورين مناسب للمطورين وadmins وtesters وrelease managers

استخدام package.xml وsource tracking

package.xml هو manifest التقليدي الذي يحدد metadata المطلوب retrieve أو deploy لها.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
  <types>
    <members>AccountService</members>
    <name>ApexClass</name>
  </types>
  <version>61.0</version>
</Package>

يمنحك تحكما صريحا، لكنه يدوي وسهل أن يفوّت dependencies ويصعب مع releases الكبيرة.

Source tracking يقارن تغييرات org مع local source:

sf project retrieve start
sf project deploy start

في أغلب الفرق الحديثة، استخدم source tracking أثناء development وunlocked packages أثناء release promotion.

اختيار feature-level changes بأمان

تحتوي sandbox غالبا على تغييرات متعددة. النمط الآمن هو retrieve لكل شيء، ثم اختيار components الخاصة بميزة واحدة فقط وcommit لها في feature branch.

sf project retrieve start
git status
git add force-app/main/default/classes/PricingService.cls
git add force-app/main/default/triggers/OpportunityTrigger.trigger
git commit -m "Feature: pricing approval flow"

مع Serpent يصبح ذلك أسهل لأن work items وmetadata selection وdependency analysis موجودة في workflow واحد.

Delta deployments مقابل full branch deployments

Delta deployments مفيدة لـ PR validation السريعة والميزات الصغيرة المعزولة.

sf sgd source delta \
  --to HEAD \
  --from origin/develop \
  --output-dir delta \
  --generate-delta
sf project deploy validate --source-dir delta --test-level RunLocalTests
sf project deploy start --source-dir delta

Full deployments أفضل مع destructive changes وrevert commits وإعادة ضبط drift في البيئات المشتركة.

sf project deploy start --source-dir force-app

Unlocked packages من أجل release versioning

تجعل unlocked packages releases أكثر وضوحا: يتم promote لـ versioned artifact بدلا من metadata متفرقة. هذا يحسن traceability وUAT-to-production promotion وخطة rollback.

sf package create --name SalesApp --package-type Unlocked --path force-app
sf package version create --package SalesApp --wait 20 --installation-key-bypass
sf package install --package 04tXXXXXXXXXXXX --target-org myUATOrg --wait 20
sf package install --package 04tXXXXXXXXXXXX --target-org myProdOrg --wait 20

بناء GitHub Actions pipeline

GitHub Actions خيار مناسب للفرق التي تريد فهم mechanics وبناء CI/CD foundation داخل repository. يتم تعريف workflows كملفات YAML بجانب الكود.

feature/*   → developer work item branches
develop     → deployed to QA
release/*   → package version build
main        → production history
hotfix/*    → urgent production fixes
name: Salesforce CI/CD

on:
  pull_request:
    branches: [develop]
  push:
    branches:
      - develop
      - 'release/*'
  workflow_dispatch:
    inputs:
      package_version_id:
        required: false

env:
  PROJECT_DIR: force-app
  QA_ALIAS: qa
  UAT_ALIAS: uat
  PROD_ALIAS: prod
  PACKAGE_NAME: SalesApp

jobs:
  pr-validate:
    if: github.event_name == 'pull_request'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm install @salesforce/cli --global
      - run: sf plugins install sfdx-git-delta
      - run: echo "${{ secrets.SF_JWT_KEY_QA }}" > server.key
      - run: |
          sf org login jwt \
            --client-id ${{ secrets.SF_CLIENT_ID_QA }} \
            --jwt-key-file server.key \
            --username ${{ secrets.SF_USERNAME_QA }} \
            --instance-url ${{ secrets.SF_INSTANCE_URL_QA }} \
            --alias $QA_ALIAS
      - run: |
          sf sgd source delta --to HEAD --from origin/develop --output-dir delta --generate-delta
          sf project deploy validate --source-dir delta --target-org $QA_ALIAS --test-level RunLocalTests

في production ستضيف عادة jobs منفصلة لـ deploy to QA وpackage version build وinstall in UAT ثم manual promotion إلى production.

Connected App وJWT authentication

  1. أنشئ Connected App في Salesforce App Manager.

  2. اضبط callback URL على http://localhost:1717/OauthRedirect.

  3. اختر OAuth scopes مثل api وrefresh_token, offline_access.

  4. ارفع certificate واحفظ private key في GitHub Secrets.

openssl genrsa -out server.key 2048
openssl req -new -x509 -days 1825 -key server.key -out server.crt

أخطاء شائعة وحلول

Error السبب المحتمل الحل
INVALID_LOGIN JWT key أو client ID غير صحيح راجع secrets وتأكد من عدم وجود trailing newlines.
INSUFFICIENT_ACCESS Connected App permissions راجع scopes وتفعيل التطبيق للـ integration user.
Tests failing on deploy Code coverage أقل من 75% شغّل sf apex run test محليا وحسّن coverage.

الخلاصة

Salesforce DevOps لا يتعلق بأداة واحدة أو pipeline مثالية واحدة. المهم هو عملية موثوقة تجعل Git source of truth، وتحقق validate تلقائي، وتجعل releases versioned وtraceable.

GitHub Actions يساعد الفرق على فهم automation من الداخل. ومع تعقّد Salesforce environments، تساعد أدوات مثل Serpent على الحفاظ على السرعة مع control وvisibility وrelease confidence.

مقالات أخرى

Web Summit Qatar 2026: نمو مركز وزخم تجاري حقيقي
Andrew Hanna

Andrew Hanna

·تم التحديث 8 يونيو 2026

2026-06-08T14:08:14.367Z

Web Summit Qatar 2026: نمو مركز وزخم تجاري حقيقي

دليل: أفضل منصات وأدوات Salesforce DevOps لعام 2026
Serpent Team

Serpent Team

·تم التحديث 26 أبريل 2026

2026-04-26T19:26:24.805Z

دليل: أفضل منصات وأدوات Salesforce DevOps لعام 2026

بذل جهد إضافي: إنشاء تجارب عملاء استثنائية
Tekunda Team

Tekunda Team

·تم التحديث 7 أبريل 2026

2026-04-07T04:07:16.677Z

بذل جهد إضافي: إنشاء تجارب عملاء استثنائية

Freaky Friday: لماذا أحب العمل هنا
Tekunda Team

Tekunda Team

·تم التحديث 7 أبريل 2026

2026-04-07T04:07:04.560Z

Freaky Friday: لماذا أحب العمل هنا

لماذا وكيف تبدأ مسيرة مهنية في Salesforce: المهارات والموارد
Tekunda Team

Tekunda Team

·تم التحديث 7 أبريل 2026

2026-04-07T04:07:00.024Z

لماذا وكيف تبدأ مسيرة مهنية في Salesforce: المهارات والموارد

داخل Web Summit Lisbon 2025: كيف يبدو فعلا
Andrew Hanna

Andrew Hanna

·تم التحديث 7 أبريل 2026

2026-04-07T04:06:47.297Z

داخل Web Summit Lisbon 2025: كيف يبدو فعلا