GitHubRelease@1 - مهمة إصدار GitHub الإصدار 1

استخدم هذه المهمة لإنشاء إصدار GitHub أو تحريره أو حذفه.

بناء الجملة

# GitHub Release v1
# Create, edit, or delete a GitHub release.
- task: GitHubRelease@1
  inputs:
    gitHubConnection: # string. Required. GitHub connection (OAuth or PAT). 
    repositoryName: '$(Build.Repository.Name)' # string. Required. Repository. Default: $(Build.Repository.Name).
    action: 'create' # 'create' | 'edit' | 'delete'. Required. Action. Default: create.
    #target: '$(Build.SourceVersion)' # string. Required when action = create || action = edit. Target. Default: $(Build.SourceVersion).
    tagSource: 'gitTag' # 'gitTag' | 'userSpecifiedTag'. Required when action = create. Tag source. Default: gitTag.
    #tagPattern: # string. Optional. Use when tagSource = gitTag. Tag Pattern. 
    #tag: # string. Required when action = edit || action = delete || tagSource = userSpecifiedTag. Tag. 
    #title: # string. Optional. Use when action = create || action = edit. Release title. 
    #releaseNotesSource: 'filePath' # 'filePath' | 'inline'. Optional. Use when action = create || action = edit. Release notes source. Default: filePath.
    #releaseNotesFilePath: # string. Optional. Use when releaseNotesSource = filePath. Release notes file path. 
    #releaseNotesInline: # string. Optional. Use when releaseNotesSource = inline. Release notes. 
    #assets: '$(Build.ArtifactStagingDirectory)/*' # string. Optional. Use when action = create || action = edit. Assets. Default: $(Build.ArtifactStagingDirectory)/*.
    #assetUploadMode: 'delete' # 'delete' | 'replace'. Optional. Use when action = edit. Asset upload mode. Default: delete.
    #isDraft: false # boolean. Optional. Use when action = create || action = edit. Draft release. Default: false.
    #isPreRelease: false # boolean. Optional. Use when action = create || action = edit. Pre-release. Default: false.
    #makeLatest: 'true' # 'true' | 'false' | 'legacy'. Optional. Use when action = create || action = edit. Make Latest. Default: true.
    #addChangeLog: true # boolean. Optional. Use when action = create || action = edit. Add changelog. Default: true.
  # Changelog configuration
    changeLogCompareToRelease: 'lastFullRelease' # 'lastFullRelease' | 'lastNonDraftRelease' | 'lastNonDraftReleaseByTag'. Required when addChangeLog = true. Compare to. Default: lastFullRelease.
    #changeLogCompareToReleaseTag: # string. Required when changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true. Release Tag. 
    changeLogType: 'commitBased' # 'commitBased' | 'issueBased'. Required when addChangeLog = true. Changelog type. Default: commitBased.
    #changeLogLabels: '[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]' # string. Optional. Use when changeLogType = issueBased && addChangeLog = true. Categories. Default: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].
# GitHub Release v1
# Create, edit, or delete a GitHub release.
- task: GitHubRelease@1
  inputs:
    gitHubConnection: # string. Required. GitHub connection (OAuth or PAT). 
    repositoryName: '$(Build.Repository.Name)' # string. Required. Repository. Default: $(Build.Repository.Name).
    action: 'create' # 'create' | 'edit' | 'delete'. Required. Action. Default: create.
    #target: '$(Build.SourceVersion)' # string. Required when action = create || action = edit. Target. Default: $(Build.SourceVersion).
    tagSource: 'gitTag' # 'gitTag' | 'userSpecifiedTag'. Required when action = create. Tag source. Default: gitTag.
    #tagPattern: # string. Optional. Use when tagSource = gitTag. Tag Pattern. 
    #tag: # string. Required when action = edit || action = delete || tagSource = userSpecifiedTag. Tag. 
    #title: # string. Optional. Use when action = create || action = edit. Release title. 
    #releaseNotesSource: 'filePath' # 'filePath' | 'inline'. Optional. Use when action = create || action = edit. Release notes source. Default: filePath.
    #releaseNotesFilePath: # string. Optional. Use when releaseNotesSource = filePath. Release notes file path. 
    #releaseNotesInline: # string. Optional. Use when releaseNotesSource = inline. Release notes. 
    #assets: '$(Build.ArtifactStagingDirectory)/*' # string. Optional. Use when action = create || action = edit. Assets. Default: $(Build.ArtifactStagingDirectory)/*.
    #assetUploadMode: 'delete' # 'delete' | 'replace'. Optional. Use when action = edit. Asset upload mode. Default: delete.
    #isDraft: false # boolean. Optional. Use when action = create || action = edit. Draft release. Default: false.
    #isPreRelease: false # boolean. Optional. Use when action = create || action = edit. Pre-release. Default: false.
    #addChangeLog: true # boolean. Optional. Use when action = create || action = edit. Add changelog. Default: true.
  # Changelog configuration
    changeLogCompareToRelease: 'lastFullRelease' # 'lastFullRelease' | 'lastNonDraftRelease' | 'lastNonDraftReleaseByTag'. Required when addChangeLog = true. Compare to. Default: lastFullRelease.
    #changeLogCompareToReleaseTag: # string. Required when changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true. Release Tag. 
    changeLogType: 'commitBased' # 'commitBased' | 'issueBased'. Required when addChangeLog = true. Changelog type. Default: commitBased.
    #changeLogLabels: '[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]' # string. Optional. Use when changeLogType = issueBased && addChangeLog = true. Categories. Default: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

المدخلات

اتصال gitHubConnection - GitHub (OAuth أو PAT)
Person. مطلوب.

يحدد اسم اتصال خدمة GitHub لاستخدامه للاتصال بمستودع GitHub. يجب أن يستند الاتصال إلى OAuth لمستخدم GitHub أو رمز وصول شخصي GitHub. لمزيد من المعلومات حول اتصالات الخدمة، راجع إدارة اتصالات الخدمة.


مستودع repositoryName -
Person. مطلوب. القيمة الافتراضية: $(Build.Repository.Name).

يحدد اسم مستودع GitHub حيث ستقوم بإنشاء إصدار GitHub أو تحريره أو حذفه.


إجراءات action -
Person. مطلوب. القيم المسموح بها: createeditdelete. القيمة الافتراضية: create.

تحديد نوع عملية الإصدار التي يجب تنفيذها. يمكن لهذه المهمة إنشاء إصدار GitHub أو تحريره أو حذفه.


target - الهدف
Person. مطلوب عند action = create || action = edit. القيمة الافتراضية: $(Build.SourceVersion).

يحدد SHA الالتزام أو اسم الفرع الذي تريد استخدامه لإنشاء إصدار GitHub، على سبيل المثال 48b11d8d6e92a22e3e9563a3f643699c16fd6e27 أو main. يمكنك أيضا استخدام متغير، مثل $(myCommitSHA)، في هذا الحقل.


مصدر علامة tagSource -
Person. مطلوب عند action = create. القيم المسموح بها: gitTag (علامة Git)، userSpecifiedTag (علامة المستخدم المحددة). القيمة الافتراضية: gitTag.

تحديد العلامة التي تريد استخدامها لإنشاء الإصدار. يستخدم خيار gitTag تلقائيا العلامة المقترنة بتثبيت Git. استخدم خيار userSpecifiedTag لتوفير علامة يدويا.


نمط علامة tagPattern -
Person. اختياري. استخدم عند tagSource = gitTag.

يحدد نمط علامة Git باستخدام regex، على سبيل المثال release-v1.*. سيتم إنشاء إصدار GitHub فقط للتثبيتات التي تحتوي على علامة Git مطابقة.


علامة
Person. مطلوب عند action = edit || action = delete || tagSource = userSpecifiedTag.

تحديد العلامة التي تريد استخدامها عند إنشاء إصدار أو تحريره أو حذفه. يمكنك أيضا استخدام متغير، مثل $(myTagName)، في هذا الحقل.


عنوان الإصدار title -
Person. اختياري. استخدم عند action = create || action = edit.

تحديد عنوان إصدار GitHub. إذا تركت فارغة، سيتم استخدام العلامة كعنوان الإصدار.


releaseNotesSource - مصدر ملاحظات الإصدار
Person. اختياري. استخدم عند action = create || action = edit. القيم المسموح بها: filePath (ملف ملاحظات الإصدار)، inline (ملاحظات الإصدار المضمنة). القيمة الافتراضية: filePath.

يحدد وصف إصدار GitHub. استخدم الخيار filePath (ملف ملاحظات الإصدار) لاستخدام محتويات الملف كملاحظات إصدار. استخدام خيار inline (ملاحظات الإصدار المضمنة) لإدخال ملاحظات الإصدار يدويا


releaseNotesFilePath - مسار ملف ملاحظات الإصدار
Person. اختياري. استخدم عند releaseNotesSource = filePath.

يحدد الملف الذي يحتوي على ملاحظات الإصدار.


ملاحظات الإصدار releaseNotesInline -
Person. اختياري. استخدم عند releaseNotesSource = inline.

تحديد ملاحظات الإصدار. Markdown مدعوم.


الأصول assets -
Person. اختياري. استخدم عند action = create || action = edit. القيمة الافتراضية: $(Build.ArtifactStagingDirectory)/*.

يحدد الملفات التي تريد تحميلها كأصول للإصدار. يمكنك استخدام أحرف البدل لتحديد ملفات متعددة. على سبيل المثال، استخدم $(Build.ArtifactStagingDirectory)/*.zip أو استخدم $(System.DefaultWorkingDirectory)/*.zip للبنية الأساسية لبرنامج ربط العمليات التجارية للإصدار.

يمكنك أيضا تحديد أنماط متعددة، نمط واحد لكل سطر. بشكل افتراضي، سيتم تحميل جميع الملفات في دليل $(Build.ArtifactStagingDirectory). لمزيد من المعلومات حول قائمة المتغيرات المحددة مسبقا المتوفرة، راجع إنشاء متغيرات ومتغيرات الإصدار .


وضع تحميل الأصول assetUploadMode -
Person. اختياري. استخدم عند action = edit. القيم المسموح بها: delete (حذف الأصول الم exisiting)، replace (استبدال الأصول الموجودة). القيمة الافتراضية: delete.

يحدد وضع تحميل الأصول الذي تريد استخدامه. استخدم خيار delete (حذف الأصول الموجودة) لحذف أي أصول موجودة في الإصدار أولا ثم تحميل جميع الأصول. استخدم خيار replace (استبدال الأصول الموجودة) لاستبدال أي أصول لها نفس الاسم.


إصدار مسودة isDraft -
Person. اختياري. استخدم عند action = create || action = edit. القيمة الافتراضية: false.

يشير إلى ما إذا كان يجب حفظ الإصدار كمسودة (غير منشور). إذا false، نشر الإصدار.


isPreRelease - ما قبل الإصدار
Person. اختياري. استخدم عند action = create || action = edit. القيمة الافتراضية: false.

يشير إلى ما إذا كان يجب وضع علامة على الإصدار على أنه إصدار مسبق.


makeLatest - أحدث الأعمال
Person. اختياري. استخدم عند action = create || action = edit. القيم المسموح بها: truefalselegacy. القيمة الافتراضية: true.

حدد ما إذا كان يجب تعيين هذا الإصدار كأحدث إصدار للمستودعات. تم ضبطه على 'خطأ' لمنع وضع هذا الإصدار على أنه الأحدث، أو 'إرث' لاستخدام تحديد الإصدار القديم من GitHub بناء على تاريخ الإنشاء والإصدار الدلالي.


addChangeLog - إضافة سجل التغيير
Person. اختياري. استخدم عند action = create || action = edit. القيمة الافتراضية: true.

يحدد ما إذا كنت تريد تضمين سجل تغيير. إذا تم تعيينها إلى true، إنشاء قائمة بالتغييرات (التثبيتات والمشاكل) بين الإصدار الحالي والإصدار المنشور الأخير وإلحاقها بملاحظات الإصدار.


changeLogCompareToRelease - مقارنة
Person. مطلوب عند addChangeLog = true. القيم المسموح بها: lastFullRelease (الإصدار الكامل الأخير)، lastNonDraftRelease (الإصدار الأخير غير المسود)، lastNonDraftReleaseByTag (آخر إصدار غير مسودة حسب العلامة). القيمة الافتراضية: lastFullRelease.

يشير إلى الإصدار الذي يجب مقارنته مع لإنشاء سجل التغيير:

  • lastFullRelease (الإصدار الكامل الأخير): يقارن الإصدار الحالي بأحدث إصدار غير مسودات لم يتم وضع علامة عليه على أنه إصدار مسبق.
  • lastNonDraftRelease (الإصدار الأخير غير المسود): يقارن الإصدار الحالي بأحدث إصدار غير مسودات.
  • lastNonDraftReleaseByTag (آخر إصدار غير مسودات حسب العلامة): يقارن الإصدار الحالي مع الإصدار الأخير غير المطابق للمسودة الذي يطابق العلامة المحددة. يمكنك أيضا تحديد regex بدلا من علامة دقيقة.

علامة الإصدار changeLogCompareToReleaseTag -
Person. مطلوب عند changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

تحديد regex لعلامة الإصدار. سيتم استخدام الإصدار المطابق لهذه العلامة كأساس لحساب سجل التغيير.


changeLogType - نوع Changelog
Person. مطلوب عند addChangeLog = true. القيم المسموح بها: commitBased (مستندة إلى الالتزام)، issueBased (مستندة إلى المشكلة). القيمة الافتراضية: commitBased.

تحديد نوع سجل التغيير. يمكن أن يكون سجل التغيير مستندا إلى الالتزام أو مستندا إلى المشكلة. يسرد سجل التغيير المستند إلى التثبيت جميع التثبيتات المضمنة في الإصدار. يسرد سجل التغيير المستند إلى المشكلة جميع المشكلات أو طلبات السحب (PRs) المضمنة في الإصدار.


فئات changeLogLabels -
Person. اختياري. استخدم عند changeLogType = issueBased && addChangeLog = true. القيمة الافتراضية: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

تصنيف التغييرات استنادا إلى التسمية المقترنة بالقضية أو طلب السحب. بالنسبة للتسمية، يمكنك ذكر اسم العرض للفئة وحالة المشكلة. تتضمن أمثلة التسميات: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". في الحالات التي يحتوي فيها التغيير على تسميات متعددة، تأخذ التسمية المحددة الأولى الأولوية. اترك هذا الحقل فارغا لمشاهدة قائمة مسطحة بالمشكلات أو PRs.


خيارات التحكم بالمهمة

تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.

متغيرات الإخراج

لا شيء.

ملاحظات

استخدم هذه المهمة في البنية الأساسية لبرنامج ربط العمليات التجارية لإنشاء إصدار GitHub أو تحريره أو تجاهله.

اتصال خدمة GitHub

تتطلب هذه المهمة اتصال خدمة GitHub مع إذن Write إلى مستودع GitHub. يمكنك إنشاء اتصال خدمة GitHub في مشروع Azure Pipelines. بمجرد الإنشاء، استخدم اسم اتصال الخدمة في إعدادات هذه المهمة.

امثله

إنشاء إصدار GitHub

ينشئ YAML التالي إصدار GitHub في كل مرة يتم فيها تشغيل المهمة. يتم استخدام رقم الإصدار كإصدار علامة للإصدار. يتم تحميل جميع الملفات .exe والملفات README.txt في المجلد $(Build.ArtifactStagingDirectory) كأصول. بشكل افتراضي، تنشئ المهمة أيضا سجل تغيير (قائمة بالتثبيتات والمشكلات التي تشكل جزءا من هذا الإصدار) وتنشره كملاحظات حول الإصدار.

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'      
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    tagSource: gitTag
    tag: $(Build.BuildNumber)      
    assets: |
      $(Build.ArtifactStagingDirectory)/*.exe
      $(Build.ArtifactStagingDirectory)/README.txt

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

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'      
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven           
    assets: $(Build.ArtifactStagingDirectory)/*.exe

قد تحتاج أيضا إلى استخدام المهمة بالاقتران مع شروط المهمة للحصول على تحكم أدق في وقت تشغيل المهمة، وبالتالي تقييد إنشاء الإصدارات. على سبيل المثال، في YAML التالي، يتم تشغيل المهمة فقط عند تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بواسطة علامة Git مطابقة للنمط 'refs/tags/release-v*'.

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'   
  condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/release-v')   
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven           
    assets: $(Build.ArtifactStagingDirectory)/*.exe

تحرير إصدار GitHub

يحدث YAML التالي حالة إصدار GitHub من "مسودة" إلى "منشور". يتم تحديد الإصدار الذي سيتم تحريره بواسطة العلامة المحددة.

- task: GithubRelease@1
  displayName: 'Edit GitHub Release'
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    action: edit
    tag: $(myDraftReleaseVersion)
    isDraft: false

حذف إصدار GitHub

يحذف YAML التالي إصدار GitHub. يتم تحديد الإصدار الذي سيتم حذفه بواسطة العلامة المحددة.

- task: GithubRelease@1
  displayName: 'Delete GitHub Release'
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    action: delete
    tag: $(myDraftReleaseVersion)

ملاحظات الإصدار المضمنة

ينشئ YAML التالي إصدار GitHub ويضيف ملاحظات الإصدار المضمنة.

- task: GitHubRelease@1
  inputs:
    gitHubConnection: <GITHUB_SERVICE_CONNECTION>
    repositoryName: '$(Build.Repository.Name)'
    action: 'create'
    target: '$(Build.SourceVersion)'
    tagSource: 'userSpecifiedTag'
    tag: <YOUR_TAG>
    title: <YOUR_TITLE>
    releaseNotesSource: 'inline'
    releaseNotesInline: <YOUR_RELEASE_NOTES>

المتطلبات

احتياج الوصف
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي
يعمل على العامل، DeploymentGroup
متطلبات بلا
قدرات لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة.
قيود الأمر أي
متغيرات Settable أي
إصدار العامل 2.0.0 أو أحدث
فئة المهمة الأداة المساعدة