Skip to content

Improve release publisher pipeline #61551

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
43 changes: 25 additions & 18 deletions azure-pipelines.release-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,25 @@ pr: none

parameters:
- name: _REMINDER
default: Review & undraft the release at https://github.com/microsoft/TypeScript/releases once it appears!
displayName: Review & undraft the release at https://github.com/microsoft/TypeScript/releases once it appears!
type: boolean
default: true
- name: PUBLISH_TAG
displayName: npm publish tag
default: dev
values:
- dev
- beta
- rc
- latest
- name: RELEASE_TITLE_NAME
displayName: GitHub release title name
default: 0.0.0 Test
- name: TAG_NAME
displayName: Git tag name
default: v0.0.0-SetMe

variables:
- name: _REMINDER
value: ${{ parameters._REMINDER }}
- name: PUBLISH_TAG
value: ${{ parameters.PUBLISH_TAG }}
- name: RELEASE_TITLE_NAME
Expand Down Expand Up @@ -47,11 +55,11 @@ extends:
os: windows

stages:
- stage: Stage_1
displayName: Publish tarball
- stage: Publish
displayName: Publish
jobs:
- job: Job_1
displayName: Agent job
- job: tarball
displayName: Publish tarball
condition: succeeded()
timeoutInMinutes: 0
templateContext:
Expand All @@ -66,29 +74,26 @@ extends:
steps:
- checkout: none
- task: CmdLine@2
displayName: Rename versioned drop to typescript.tgz
displayName: Copy versioned drop to typescript.tgz
inputs:
script: |
pushd $(Pipeline.Workspace)/tgz
ls -lhR
mv typescript-*.tgz typescript.tgz
cp typescript-*.tgz typescript.tgz
- task: Npm@1
displayName: npm publish tarball
inputs:
command: custom
workingDir: $(Pipeline.Workspace)/tgz
verbose: false
customCommand: publish $(Pipeline.Workspace)/tgz/typescript.tgz --tag $(PUBLISH_TAG)
# This must match the service connection.
# This must match the service connection name.
customEndpoint: Typescript NPM
publishEndpoint: Typescript NPM

- stage: Stage_2
displayName: Publish git tag
dependsOn: Stage_1
jobs:
- job: Job_1
displayName: Agent job
- job: github
displayName: Create github release
dependsOn: tarball
condition: succeeded()
timeoutInMinutes: 0
templateContext:
Expand All @@ -104,20 +109,22 @@ extends:
- task: GitHubRelease@1
displayName: GitHub release (create)
inputs:
# This must match the service connection.
# This must match the service connection name.
gitHubConnection: typescript-bot connection
repositoryName: microsoft/TypeScript
tagSource: userSpecifiedTag
tag: $(TAG_NAME)
title: TypeScript $(RELEASE_TITLE_NAME)
releaseNotesSource: inline
releaseNotesInline: |
<!---
For release notes, check out the [release announcement]().
For new features, check out the [What's new in TypeScript $(TAG_NAME)]().
For the complete list of fixed issues, check out the
* [fixed issues query for TypeScript $(TAG_NAME)](https://github.com/microsoft/TypeScript/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3A%22TypeScript+3.3%22+is%3Aclosed+).
Downloads are available on:
* [npm](https://www.npmjs.com/package/typescript)
-->
assets: $(Pipeline.Workspace)/tgz/**/typescript-*.tgz
isDraft: true
isDraft: ${{ not(eq(parameters.PUBLISH_TAG, 'latest')) }}
addChangeLog: false