نشر موقع Hugo إلى Azure Static Web Apps

توضح هذه المقالة كيفية إنشاء تطبيق ويب Hugo ونشره في تطبيقات الويب الثابتة من Azure. والنتيجة النهائية هي تطبيق ويب ثابت جديد من Azure يحتوي على إجراءات GitHub المقترنة التي تمنحك التحكم في كيفية بناء التطبيق ونشره.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء تطبيق Hugo
  • إعداد تطبيقات ويب ثابتة Azure
  • نشر تطبيق Hugo في Azure

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

المتطلبات الأساسية

إنشاء تطبيق Hugo

إنشاء تطبيق Hugo باستخدام واجهة سطر الأوامر (CLI) لـ Hugo:

  1. اتبع دليل التثبيت لتثبيت تطبيق Hugo على نظام التشغيل الخاص بك.

  2. قم بفتح محطة طرفية

  3. يُرجى تشغيل واجهة سطر الأوامر في Hugo لإنشاء تطبيق جديد.

    hugo new site static-app
    
  4. انتقل إلى التطبيق الذي تم إنشاؤه حديثا.

    cd static-app
    
  5. قم بتهيئة مستودع Git.

    git init
    
  6. احرص على تسمية الفرع الخاص بك بـ main.

    git branch -M main
    
  7. بعد ذلك، أضف سمة إلى الموقع عن طريق تثبيت سمة على هيئة وحدة فرعية لـ git ثم تحديدها في ملف تكوين Hugo.

    git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke
    echo 'theme = "ananke"' >> config.toml
    
  8. التزم بالتغييرات.

    git add -A
    git commit -m "initial commit"
    

ادفع تطبيقك إلى GitHub

تحتاج إلى مستودع على GitHub للاتصال بـAzure Static Web Apps. توضح الخطوات التالية كيفية إنشاء مستودع لموقعك.

  1. أنشئ مستودع GitHub فارغًا (لا تقم بإنشاء README) من https://github.com/new اسمه hugo-static-app.

  2. إضافة مستودع GitHub كمستودع ناءٍ إلى مستودعك المحلي. تأكد من إضافة اسم مستخدم GitHub بدلاً من العنصر النائب <YOUR_USER_NAME> في الأمر التالي.

    git remote add origin https://github.com/<YOUR_USER_NAME>/hugo-static-app
    
  3. ادفع مستودعك المحلي إلى GitHub.

    git push --set-upstream origin main
    

قم بنشر تطبيق الويب الخاص بك

توضح لك الخطوات التالية كيفية إنشاء تطبيق موقع ثابت جديد ونشره في بيئة إنتاج.

قم بإنشاء التطبيق

  1. انتقل إلى مدخل Azure

  2. حدد إنشاء مورد

  3. البحث عن Static Web Apps

  4. حدد تطبيقات الويب الثابتة

  5. حدد إنشاء.

  6. في علامة التبويب Basics، أدخل القيم التالية.

    الخاصية القيمة
    الاشتراك اسم اشتراك Azure خاصتك.
    مجموعة الموارد my-hugo-group
    الاسم hugo-static-app
    نوع الخطة الحره
    المنطقة ل Azure Functions API والبيئات المرحلية حدد أقرب منطقة إليك.
    Source GitHub
  7. حدد Sign in with GitHub ثم قم بالمصادقة باستخدام GitHub.

  8. أدخل قيم GitHub التالية.

    الخاصية القيمة
    المنظمة حدد مؤسسة GitHub المطلوبة.
    المستودع حدد hugo-static-app.
    الفرع حدد "main".

    إشعار

    إذا لم تشاهد أي مستودعات، فقد تحتاج إلى تخويل Azure Static Web Apps على GitHub. استعرض للوصول إلى مستودع GitHub وانتقل إلى الإعدادات Applications > Authorized OAuth Apps، وحدد Azure Static Web Apps، ثم حدد Grant>. بالنسبة لمستودعات المؤسسة، يجب أن تكون مالكًا للمؤسسة لمنح الأذونات.

  9. في القسم تفاصيل البنية، حدد مخصص من القائمة المنسدلة الإعدادات المسبقة للبنية واحتفظ بالقيم الافتراضية.

المراجعة والإنشاء

  1. حدد Review + Create للتحقق من صحة التفاصيل.

  2. حدد Create لبدء إنشاء App Service Static Web App وتوفير GitHub Actions للنشر.

  3. بمجرد اكتمال النشر، حدد Go to resource.

  4. في شاشة المورد، حدد رابط URL لفتح التطبيق المنشور. قد تحتاج إلى الانتظار دقيقة أو دقيقتين حتى تكتمل إجراءات GitHub.

    Deployed application

إصدار مخصص من Hugo

عندما تقوم بإنشاء تطبيق ويب ثابت، يتم إنشاء ملف سير عمل يحتوي على إعدادات تكوين النشر للتطبيق. يمكنك تعيين إصدار Hugo معين في ملف سير العمل عن طريق توفير قيمة HUGO_VERSION في القسم env. يوضح تكوين المثال التالي كيفية تعيين Hugo إلى إصدار معين.

jobs:
  build_and_deploy_job:
    if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
    runs-on: ubuntu-latest
    name: Build and Deploy Job
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true
      - name: Build And Deploy
        id: builddeploy
        uses: Azure/static-web-apps-deploy@v1
        with:
          azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
          repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for GitHub integrations (i.e. PR comments)
          action: "upload"
          ###### Repository/Build Configurations - These values can be configured to match you app requirements. ######
          # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
          app_location: "/" # App source code path
          api_location: "api" # Api source code path - optional
          output_location: "public" # Built app content directory - optional
          ###### End of Repository/Build Configurations ######
        env:
          HUGO_VERSION: 0.58.0

استخدام ميزة Git Info في تطبيق Hugo الخاص بك

إذا كان تطبيق Hugo الخاص بك يستخدم ميزة Git Info، فإن ملف سير العمل الافتراضي الذي تم إنشاؤه ل Static Web App يستخدم إجراء GitHub للسحاف لإحضار إصدار سطحي من مستودع Git الخاص بك، مع عمق افتراضي يبلغ 1. في هذا السيناريو، يرى Hugo جميع ملفات المحتوى الخاصة بك على أنها قادمة من تثبيت واحد، لذلك لديهم نفس الكاتب والطوابع الزمنية للتعديل الأخير والمتغيرات الأخرى .GitInfo .

قم بتحديث ملف سير العمل لإحضار محفوظات Git الكاملة عن طريق إضافة معلمة actions/checkout جديدة ضمن الخطوة لتعيين fetch-depth إلى 0 (بلا حد):

      - uses: actions/checkout@v3
        with:
          submodules: true
          fetch-depth: 0

يؤدي إحضار المحفوظات الكاملة إلى زيادة وقت الإنشاء لسير عمل GitHub Actions، ولكن .Lastmod المتغيرات و .GitInfo دقيقة ومتاحة لكل ملف من ملفات المحتوى.

تنظيف الموارد

إذا كنت لن تستمر في استخدام هذا التطبيق، يمكنك حذف مورد تطبيق Azure Static Web من خلال الخطوات التالية:

  1. في علامة تبويب جديدة، افتح مدخل Azure
  2. في شريط البحث العلوي، ابحث عن تطبيقك بالاسم الذي قدمته سابقًا
  3. انقر فوق التطبيق
  4. انقر فوق الزر حذف
  5. انقر فوق نعم لتأكيد إجراء الحذف

الخطوات التالية