تمرين - إنشاء صورة التطبيق
في هذه الوحدة، يمكنك إنشاء مسار التقسيم المرحلي ل GitHub Actions الخاص بك عن طريق إنشاء صورة التطبيق ودفعها إلى Azure Container Registry.
تظهر الصورة التالية البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD التي قمت بتصميمها:
في هذا التمرين، يمكنك إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية عن طريق القيام بالخطوات التالية:
- إنشاء سير عمل GitHub Actions.
on push
إنشاء المشغل.- إنشاء صورة التطبيق ودفعها.
- تعيين البيانات السرية.
- شغل المهمة.
إنشاء سير عمل إجراءات GitHub
يتم تقسيم مهام سير عمل GitHub إلى وظائف، ويتم تقسيم الوظائف إلى خطوات. يمكن أن تحتوي كل خطوة على أوامر متعددة وتستخدم إجراءات متعددة لتنفيذها.
لبدء إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك، انتقل إلى نسخة المستودع الخاصة بك من مستودع العينة في موقع GitHub على الويب.
حدد علامة التبويب إجراءات.
حدد الارتباط لإعداد سير عمل بنفسك.
عند هذه النقطة، المسار هو مجرد ملف فارغ في دليل .github/workflows في المستودع الخاص بك. يوفر GitHub المكونات التي تم إنشاؤها مسبقًا التي تحتاجها لبناء معظم التدفقات. للبدء، انسخ التعليمات البرمجية التالية والصقها في جزء تحرير ملف جديد:
# This is a basic workflow to help you get started with Actions name: CI # Controls when the action will run. Triggers the workflow on push or pull request # events but only for the main branch on: push: branches: [ main ] pull_request: branches: [ main ] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 # Runs a single command using the runners shell - name: Run a one-line script run: echo Hello, world! # Runs a set of commands using the runners shell - name: Run a multi-line script run: | echo Add other actions to build, echo test, and deploy your project.
أعلى جزءتحرير ملف جديد، قم بإعادة تسمية الملف من main.yml إلى build-staging.yml.
name
تغيير المفتاح منCI
إلىBuild and push the latest build to staging
.# This is a basic workflow to help you get started with Actions name: Build and push the latest build to staging
تعديل المشغل 'on'
يأتي قالب سير العمل الأساسي مع مشغلين:
- أي دفع إلى الفرع الرئيسي.
- أي طلب سحب على الفرع الرئيسي.
لا تحتاج إلى تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية على طلب سحب، لذا قم بتعديله للاحتفاظ بمشغل الدفع فقط عن طريق تغيير المشغلات في on
المفتاح. قم بإزالة المشغل الثاني، وترك علامات push
فقط.
name: Build and push the latest build to staging
on:
push:
branches: [ main ]
تكوين خطوة السداد مع الخروج
بعد ذلك، ابدأ العمل على خطوات المهمة. في هذه العملية، يمكنك تنفيذ كل من مهام الإنشاء ومهام التوزيع في الرسم التخطيطي لتصميم البنية الأساسية لبرنامج ربط العمليات التجارية.
ضمن
jobs
، أعد تسميةbuild
المفتاح إلىbuild_push_image
.تريد تشغيل سير العمل هذا على Ubuntu 20.04، لذا قم بتغيير
runs-on
المفتاح منubuntu-latest
إلىubuntu-20.04
.احذف الأمرين الأخيرين في
steps
المفتاح، وهما مجرد أمثلة للقالب.يجب أن يبدو الملف الخاص بك، بدون التعليقات، مثل هذا المثال:
name: Build and push the latest build to staging on: push: branches: [ main ] jobs: build_push_image: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2
لديك الآن خطوة تستخدم checkout
الإجراء . يقوم هذا الإجراء باستنساخ المستودع في بيئة المهمة. هذه الخطوة تعادل الإجراء الأول، استنساخ المستودع، في الرسم التخطيطي لتصميم البنية الأساسية لبرنامج ربط العمليات التجارية.
إضافة خطوات Docker
بعد ذلك، أضف إجراءات لإنشاء صورة Docker. يمكنك ضبط الاستخدام لهذه الإجراءات. يستخدم هذا المثال عددا قليلا فقط من المعلمات المتوفرة. لمزيد من المعلومات، راجع وثائق GitHub build-push-action.
في علامة التبويب Marketplace في اللوحة اليمنى، ابحث عن تسجيل دخول docker، وحدد النتيجة الأولى التي نشرها docker.
إشعار
كانت إجراءات Docker قبل الإصدار 2 مضمنة في تدفق تسجيل الدخول، ولكن في الإصدارين 2 وما فوق، يتم فصل هذه الإجراءات، لذلك تحتاج إلى إجراءين لتعيين سير العمل بشكل صحيح.
ضمن التثبيت، حدد أيقونة النسخ لنسخ استخدام YAML.
الصق YAML المنسخ أسفل
actions/checkout@v2
الإجراء.هام
كن حذرًا مع المسافة البادئة عند استخدام YAML. يجب محاذاة المفتاح
name
مع المفتاح السابقuses
.أضف القيم التالية إلى
registry
المفاتيحusername
و وpassword
:registry
:${{ secrets.ACR_NAME }}
username
:${{ secrets.ACR_LOGIN }}
password
:${{ secrets.ACR_PASSWORD }}
احذف المفاتيح الأخرى، لأنها غير مستخدمة في هذا التمرين.
في اللوحة اليمنى ضمن Marketplace، ابحث عن build and push docker images، وحدد النتيجة الأولى التي نشرها docker.
ضمن التثبيت، حدد أيقونة النسخ لنسخ استخدام YAML.
الصق YAML المنسوخة أسفل المفتاح الأخير من الإجراء المنسوخ مسبقاً
docker-login
.أعد تسمية
name
المفتاح منBuild and push Docker images
إلىBuild and push staging images
.أضف القيم التالية إلى
context
المفاتيحpush
و وtags
:context
:.
push
:true
tags
:${{secrets.ACR_NAME}}/contoso-website:latest
احذف المفاتيح الأخرى، لأنها غير مستخدمة في هذا التمرين.
أضف إجراء آخر يسمى
docker/setup-buildx-action
بين إجراء السداد مع الخروج وإجراء تسجيل الدخول، لإعداد محرك الإنشاء لاستخدام Docker. انسخ القصاصة البرمجية التالية والصقها بين الإجراءينcheckout
وlogin
.- name: Set up Buildx uses: docker/setup-buildx-action@v3.0.0
يجب أن يبدو ملفك النهائي، بدون التعليقات، مثل المثال التالي:
name: Build and push the latest build to staging on: push: branches: [ main ] jobs: build_push_image: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up Buildx uses: docker/setup-buildx-action@v3.0.0 - name: Docker Login uses: docker/login-action@v3.0.0 with: registry: ${{ secrets.ACR_NAME }} username: ${{ secrets.ACR_LOGIN }} password: ${{ secrets.ACR_PASSWORD }} - name: Build and push staging images uses: docker/build-push-action@v5.0.0 with: context: . push: true tags: ${{secrets.ACR_NAME}}/contoso-website:latest
تطبيق التغييرات
لتثبيت التغييرات، حدد الزر Commit changes في أعلى اليمين. في شاشة Commit changes ، أدخل وصفا للتثبيت، ثم حدد Commit changes.
يؤدي تحديد Commit changes إلى تشغيل بنية جديدة، ولكن فشل هذا الإصدار لأنك لم تقم بتعيين الأسرار بعد.
تعيين بيانات سرية
لتعيين الأسرار، في صفحة مستودع GitHub، حدد علامة التبويب الإعدادات، ثم حدد Secrets and variables>Actions من القائمة اليسرى. حدد الأسرار التالية التي يستخدمها سير العمل:
ACR_NAME
: القيمة التيACR_Name
تم إرجاعها بواسطة البرنامج النصي للإعدادACR_LOGIN
: القيمة التيACR Login Username
تم إرجاعها بواسطة البرنامج النصي للإعدادACR_PASSWORD
: القيمة التيACR Login Password
تم إرجاعها بواسطة البرنامج النصي للإعدادRESOURCE_GROUP
: القيمة التيResource Group Name
تم إرجاعها بواسطة البرنامج النصي للإعدادCLUSTER_NAME
: contoso-video
لتعريف كل سر:
- حدد سر مستودع جديد.
- بالنسبة إلى Name، أدخل الاسم السري من القائمة السابقة.
- بالنسبة إلى البيانات السرية، أدخل القيمة التي حفظتها من البرنامج النصي للإعداد، أو قم بتشغيل استعلام Cloud Shell للحصول على القيمة.
- حدد Add secret.
تشغيل الاستعلامات الاختيارية للحصول على قيم البيانات السرية
إذا لم يكن لديك القيم التي أرجعها البرنامج النصي للإعداد، يمكنك تشغيل الأوامر التالية في Azure Cloud Shell للحصول على المعلومات:
ACR_NAME
:az acr list --query "[?contains(resourceGroup, 'mslearn-gh-pipelines')].loginServer" -o table
ACR_LOGIN
:az acr credential show --name <ACR_NAME> --query "username" -o table
ACR_PASSWORD
:az acr credential show --name <ACR_NAME> --query "passwords[0].value" -o table
RESOURCE_GROUP
:az aks list -o tsv --query "[?name=='contoso-video'].resourceGroup"
تشغيل المهمة
حدد علامة التبويب إجراءات.
حدد التنفيذ الوحيد في القائمة، مهمة build-staging.yml الفاشلة.
في أعلى اليمين، حدد Re-run jobs>Re-run all jobs، وفي شاشة Re-run all jobs، حدد Re-run jobs.
عند اكتمال الإنشاء، قم بتشغيل
az acr repository list --name <ACR_NAME> -o table
في Cloud Shell للتأكد منcontoso-website
ظهور مستودع Container Registry في النتائج.
تابع إلى الوحدة التالية لإنشاء سير عمل الإنتاج الخاص بك.