trigger: none pr: none parameters: - name: _REMINDER 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: PUBLISH_TAG value: ${{ parameters.PUBLISH_TAG }} - name: RELEASE_TITLE_NAME value: ${{ parameters.RELEASE_TITLE_NAME }} - name: TAG_NAME value: ${{ parameters.TAG_NAME }} resources: pipelines: - pipeline: 'tgz' project: 'TypeScript' source: 'Release\TypeScript Release' repositories: - repository: 1esPipelines type: git name: 1ESPipelineTemplates/1ESPipelineTemplates ref: refs/tags/release extends: template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines parameters: pool: name: TypeScript-AzurePipelines-EO image: 1ESPT-AzureLinux3 os: linux sdl: sourceAnalysisPool: name: TypeScript-AzurePipelines-EO image: 1ESPT-Windows2022 os: windows stages: - stage: Publish displayName: Publish jobs: - job: tarball displayName: Publish tarball condition: succeeded() timeoutInMinutes: 0 templateContext: templateContext: type: releaseJob isProduction: true inputs: - input: pipelineArtifact pipeline: 'tgz' artifactName: 'tgz' targetPath: '$(Pipeline.Workspace)/tgz' steps: - checkout: none - task: CmdLine@2 displayName: Copy versioned drop to typescript.tgz inputs: script: | pushd $(Pipeline.Workspace)/tgz ls -lhR 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 name. customEndpoint: Typescript NPM publishEndpoint: Typescript NPM - job: github displayName: Create github release dependsOn: tarball condition: succeeded() timeoutInMinutes: 0 templateContext: type: releaseJob isProduction: true inputs: - input: pipelineArtifact pipeline: 'tgz' artifactName: 'tgz' targetPath: '$(Pipeline.Workspace)/tgz' steps: - checkout: none - task: NodeTool@0 inputs: versionSpec: 20.x displayName: 'Install Node' - task: CmdLine@2 displayName: Get commit hash inputs: script: | # Read package.json and get gitHead pushd $(Pipeline.Workspace)/tgz ls -lhR tar -zxvf typescript-*.tgz cd package GIT_COMMIT_HASH=$(node -e "console.log(JSON.parse(require('fs').readFileSync('package.json', 'utf-8')).gitHead)") if [ -z "$GIT_COMMIT_HASH" ]; then echo "Failed to get git commit hash from package.json" exit 1 fi echo "##vso[task.setvariable variable=GIT_COMMIT_HASH]$GIT_COMMIT_HASH" echo "Git commit hash: $GIT_COMMIT_HASH" - task: GitHubRelease@1 displayName: GitHub release (create) inputs: # This must match the service connection name. gitHubConnection: typescript-bot connection repositoryName: microsoft/TypeScript tagSource: userSpecifiedTag tag: $(TAG_NAME) title: TypeScript $(RELEASE_TITLE_NAME) target: $(GIT_COMMIT_HASH) releaseNotesSource: inline releaseNotesInline: | assets: $(Pipeline.Workspace)/tgz/**/typescript-*.tgz isDraft: ${{ not(eq(parameters.PUBLISH_TAG, 'latest')) }} addChangeLog: false