GitHubRelease@1 - GitHub 릴리스 v1 작업

이 작업을 사용하여 GitHub 릴리스를 만들거나 편집하거나 삭제할 수 있습니다.

Syntax

# 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)
string. 필수 요소.

GitHub 리포지토리에 연결하는 데 사용할 GitHub 서비스 연결의 이름을 지정합니다. 연결은 GitHub 사용자의 OAuth 또는 GitHub 개인용 액세스 토큰을 기반으로 해야 합니다. 서비스 연결에 대한 자세한 내용은 서비스 연결 관리를 참조하세요.


repositoryName - 저장소
string. 필수 요소. 기본값은 $(Build.Repository.Name)입니다.

GitHub 릴리스를 만들거나 편집하거나 삭제할 GitHub 리포지토리의 이름을 지정합니다.


action - 작업
string. 필수 요소. 허용되는 값: create, edit, delete. 기본값은 create입니다.

수행할 릴리스 작업의 유형을 지정합니다. 이 작업은 GitHub 릴리스를 만들거나 편집하거나 삭제할 수 있습니다.


target - 대상
string. 필요한 경우 action = create || action = edit입니다. 기본값은 $(Build.SourceVersion)입니다.

GitHub 릴리스를 만드는 데 사용할 커밋 SHA를 지정합니다(예 48b11d8d6e92a22e3e9563a3f643699c16fd6e27: ). 이 필드에 와 같은 $(myCommitSHA)변수를 사용할 수도 있습니다.


tagSource - 태그 원본
string. 필요한 경우 action = create입니다. 허용되는 값: gitTag (Git 태그), userSpecifiedTag (사용자 지정 태그). 기본값은 gitTag입니다.

릴리스 만들기에 사용할 태그를 지정합니다. 옵션은 gitTag Git 커밋과 연결된 태그를 자동으로 사용합니다. userSpecifiedTag 옵션을 사용하여 태그를 수동으로 제공합니다.


tagPattern - 태그 패턴
string. 선택 사항입니다. 을 사용할 때 tagSource = gitTag사용합니다.

regex를 사용하여 Git 태그 패턴을 지정합니다(예 release-v1.*: ). GitHub 릴리스는 일치하는 Git 태그가 있는 커밋에 대해서만 만들어집니다.


tag - 태그
string. 필요한 경우 action = edit || action = delete || tagSource = userSpecifiedTag입니다.

릴리스를 만들거나 편집하거나 삭제할 때 사용할 태그를 지정합니다. 이 필드에 와 같은 $(myTagName)변수를 사용할 수도 있습니다.


title - 릴리스 제목
string. 선택 사항입니다. 을 사용할 때 action = create || action = edit사용합니다.

GitHub 릴리스의 제목을 지정합니다. 비워 두면 태그가 릴리스 타이틀로 사용됩니다.


releaseNotesSource - 릴리스 정보 원본
string. 선택 사항입니다. 을 사용할 때 action = create || action = edit사용합니다. 허용되는 값: filePath (릴리스 정보 파일), inline (인라인 릴리스 정보). 기본값은 filePath입니다.

GitHub 릴리스에 대한 설명을 지정합니다. filePath (릴리스 정보 파일) 옵션을 사용하여 파일 내용을 릴리스 정보로 사용합니다. inline (인라인 릴리스 정보) 옵션을 사용하여 릴리스 정보를 수동으로 입력합니다.


releaseNotesFilePath - 릴리스 정보 파일 경로
string. 선택 사항입니다. 을 사용할 때 releaseNotesSource = filePath사용합니다.

릴리스 정보를 포함하는 파일을 지정합니다.


releaseNotesInline - 릴리스 정보
string. 선택 사항입니다. 을 사용할 때 releaseNotesSource = inline사용합니다.

릴리스 정보를 지정합니다. Markdown이 지원됩니다.


assets - 자산
string. 선택 사항입니다. 을 사용할 때 action = create || action = edit사용합니다. 기본값은 $(Build.ArtifactStagingDirectory)/*입니다.

릴리스의 자산으로 업로드할 파일을 지정합니다. 와일드카드 문자를 사용하여 여러 파일을 지정할 수 있습니다. 예를 들어 릴리스 파이프라인에 사용하거나 를 사용합니다 $(Build.ArtifactStagingDirectory)/*.zip$(System.DefaultWorkingDirectory)/*.zip .

줄당 하나씩 여러 패턴을 지정할 수도 있습니다. 기본적으로 디렉터리의 모든 파일이 $(Build.ArtifactStagingDirectory) 업로드됩니다. 사용할 수 있는 미리 정의된 변수 목록에 대한 자세한 내용은 빌드 변수릴리스 변수를 참조하세요.


assetUploadMode - 자산 업로드 모드
string. 선택 사항입니다. 을 사용할 때 action = edit사용합니다. 허용되는 값: delete (기존 자산 삭제), replace (기존 자산 바꾸기). 기본값은 delete입니다.

사용하려는 자산 업로드 모드를 지정합니다. delete (기존 자산 삭제) 옵션을 사용하여 먼저 릴리스에서 기존 자산을 삭제한 다음 모든 자산을 업로드합니다. replace (기존 자산 바꾸기) 옵션을 사용하여 이름이 같은 자산을 바꿉니다.


isDraft - 초안 릴리스
boolean. 선택 사항입니다. 을 사용할 때 action = create || action = edit사용합니다. 기본값은 false입니다.

릴리스를 초안(게시되지 않음)으로 저장할지 여부를 나타냅니다. 이면 false릴리스가 게시됩니다.


isPreRelease - 시험판
boolean. 선택 사항입니다. 을 사용할 때 action = create || action = edit사용합니다. 기본값은 false입니다.

릴리스를 시험판으로 표시해야 하는지 여부를 나타냅니다.


addChangeLog - 변경 로그 추가
boolean. 선택 사항입니다. 을 사용할 때 action = create || action = edit사용합니다. 기본값은 true입니다.

changelog를 포함할지를 지정합니다. 로 true설정하면 현재 릴리스와 마지막으로 게시된 릴리스 간의 변경 내용 목록(커밋 및 문제)이 생성되고 릴리스 정보에 추가됩니다.


changeLogCompareToRelease - 비교
string. 필요한 경우 addChangeLog = true입니다. 허용되는 값: lastFullRelease (마지막 전체 릴리스), lastNonDraftRelease (마지막 초안이 아닌 릴리스), lastNonDraftReleaseByTag (태그별 마지막 초안이 아닌 릴리스). 기본값은 lastFullRelease입니다.

changelog를 생성하기 위해 비교할 릴리스를 나타냅니다.

  • lastFullRelease (마지막 전체 릴리스): 현재 릴리스를 시험판으로 표시되지 않은 최신 초안이 아닌 릴리스와 비교합니다.
  • lastNonDraftRelease (마지막 초안이 아닌 릴리스): 현재 릴리스와 가장 최근의 초안이 아닌 릴리스를 비교합니다.
  • lastNonDraftReleaseByTag (태그별 마지막 초안이 아닌 릴리스): 현재 릴리스를 지정된 태그와 일치하는 마지막 초안이 아닌 릴리스와 비교합니다. 정확한 태그 대신 regex를 지정할 수도 있습니다.

changeLogCompareToReleaseTag - 릴리스 태그
string. 필요한 경우 changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true입니다.

릴리스 태그에 대한 regex를 지정합니다. 이 태그와 일치하는 릴리스는 변경 로그 계산의 기반으로 사용됩니다.


changeLogType - Changelog 형식
string. 필요한 경우 addChangeLog = true입니다. 허용되는 값: commitBased (커밋 기반), issueBased (문제 기반). 기본값은 commitBased입니다.

changelog 형식을 지정합니다. 변경 로그는 커밋 기반 또는 문제 기반일 수 있습니다. 커밋 기반 변경 로그는 릴리스에 포함된 모든 커밋을 나열합니다. 문제 기반 변경 로그는 릴리스에 포함된 모든 문제 또는 PR(끌어오기 요청)을 나열합니다.


changeLogLabels - 카테고리
string. 선택 사항입니다. 를 사용하는 경우 changeLogType = issueBased && addChangeLog = true를 사용합니다. 기본값은 [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]입니다.

문제 또는 PR과 연결된 레이블에 따라 변경 내용을 분류합니다. 레이블의 경우 범주의 표시 이름과 문제 상태를 멘션 수 있습니다. 레이블의 예로는 가 있습니다 "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". 변경 내용에 여러 레이블이 있는 경우 첫 번째 지정된 레이블이 우선합니다. 문제 또는 PR의 플랫 목록을 보려면 이 필드를 비워 둡니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

없음

설명

파이프라인에서 이 작업을 사용하여 GitHub 릴리스를 만들거나 편집하거나 삭제합니다.

GitHub 서비스 연결

이 작업을 수행하려면 GitHub 리포지토리에 대한 쓰기 권한이 있는 GitHub 서비스 연결이 필요합니다. Azure Pipelines 프로젝트에서 GitHub 서비스 연결을 만들 수 있습니다. 만든 후에는 이 작업의 설정에서 서비스 연결의 이름을 사용합니다.

예제

GitHub 릴리스 만들기

다음 YAML은 작업이 실행될 때마다 GitHub 릴리스를 만듭니다. 빌드 번호는 릴리스의 태그 버전으로 사용됩니다. $(Build.ArtifactStagingDirectory) 폴더의 모든 .exe 파일 및 README.txt 파일이 자산으로 업로드됩니다. 기본적으로 작업은 변경 로그(이 릴리스의 일부인 커밋 및 문제 목록)를 생성하고 릴리스 정보로 게시합니다.

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

리포지토리 태그를 기반으로 릴리스 만들기를 제어할 수도 있습니다. 다음 YAML은 파이프라인을 트리거하는 커밋에 연결된 Git 태그가 있는 경우에만 GitHub 릴리스를 만듭니다. GitHub 릴리스는 연결된 Git 태그와 동일한 태그 버전으로 만들어집니다.

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

작업 조건과 함께 작업을 사용하여 작업이 실행되는 시기를 더욱 세밀하게 제어하여 릴리스 생성을 제한할 수도 있습니다. 예를 들어 다음 YAML에서 작업은 파이프라인이 'refs/tags/release-v*' 패턴과 일치하는 Git 태그에 의해 트리거되는 경우에만 실행됩니다.

- 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>

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
Settable 변수 모두
에이전트 버전 2.0.0 이상
작업 범주 유틸리티