From 63a006d6e44665921d9ee2491a003c19d0baf768 Mon Sep 17 00:00:00 2001 From: Kevin Coughlin Date: Fri, 3 May 2019 16:12:54 -0700 Subject: [PATCH 1/2] Add TypeScript compatibility build definition --- scripts/typescript-compatibility-build.yml | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 scripts/typescript-compatibility-build.yml diff --git a/scripts/typescript-compatibility-build.yml b/scripts/typescript-compatibility-build.yml new file mode 100644 index 0000000000000..420b367c458fd --- /dev/null +++ b/scripts/typescript-compatibility-build.yml @@ -0,0 +1,116 @@ +trigger: + branches: + include: + - tsc-compat-debug + #- refs/tags/office-ui-fabric-react_v* + +variables: + - name: PackageName + value: office-ui-fabric-react + - name: CompatRepoUrl + value: https://github.com/Microsoft/ui-fabric-ts-validation.git + - name: NodeVersion + value: '10.x' + - name: VmImage + value: 'Ubuntu 16.04' + +jobs: + - job: Build + pool: + vmImage: $(VmImage) + timeoutInMinutes: 60 + steps: + - checkout: self + clean: true + + - task: NodeTool@0 + displayName: 'Use Node $(NodeVersion)' + inputs: + versionSpec: '$(NodeVersion)' + checkLatest: true + + # Install Rush repo dependencies + - script: | + node common/scripts/install-run-rush.js install --bypass-policy + displayName: Run Rush install in office-ui-fabric-react repository + + # Build package in Rush repo + - script: | + node common/scripts/install-run-rush.js build --to $(PackageName) + displayName: Run Rush build --to $(PackageName) + + # Run npm pack to simulate installation from feed + - script: | + npm pack ./packages/$(PackageName) + displayName: Run npm pack $(PackageName) + + # Rename built package tarball to reference later + - script: | + mv *.tgz $(Build.StagingDirectory)/$(PackageName).tgz + displayName: Move $(PackageName).tgz to Build.StagingDirectory + + # Publish built library for validation job + - task: PublishBuildArtifacts@1 + displayName: Publish Build Artifacts + inputs: + pathtoPublish: $(Build.StagingDirectory) + artifactName: drop + + - job: Compatibility + dependsOn: Build + condition: succeeded() + timeoutInMinutes: 60 + pool: + vmImage: $(VmImage) + strategy: + maxParallel: 2 + matrix: + 'TypeScript 2.9': + TypeScriptVersion: 2.9 + 'TypeScript 3.0': + TypeScriptVersion: 3.0 + 'TypeScript 3.1': + TypeScriptVersion: 3.1 + 'TypeScript 3.2': + TypeScriptVersion: 3.2 + 'TypeScript 3.3': + TypeScriptVersion: 3.3 + 'TypeScript 3.4': + TypeScriptVersion: 3.4 + steps: + - checkout: none + - task: NodeTool@0 + displayName: 'Use Node $(NodeVersion)' + inputs: + versionSpec: '$(NodeVersion)' + checkLatest: true + + # Download build library + - task: DownloadBuildArtifacts@0 + displayName: 'Download Build Artifacts' + inputs: + artifactName: drop + downloadPath: $(Build.StagingDirectory) + + # Clone repository containing versioned TypeScript sample apps + - script: | + git clone $(CompatRepoUrl) $(Build.StagingDirectory)/__tests__ + displayName: Clone compatibility repository + + # Install repository's dependencies + - script: | + node common/scripts/install-run-rush.js install + displayName: Run Rush install in compatibility repository + workingDirectory: $(Build.StagingDirectory)/__tests__ + + # Install built package tarball in sample app + - script: | + npm install $(Build.StagingDirectory)/drop/$(PackageName).tgz + displayName: Install $(PackageName) in TypeScript $(TypeScriptVersion) test app + workingDirectory: $(Build.StagingDirectory)/__tests__/tests/$(TypeScriptVersion) + + # Build sample app consuming Office UI Fabric React to test TypeScript version compatibility + - script: | + node common/scripts/install-run-rush.js test --to $(TypeScriptVersion)-office-ui-fabric-react-test + displayName: Build TypeScript $(TypeScriptVersion) test app + workingDirectory: $(Build.StagingDirectory)/__tests__ From 186a0d308fdca099ab6d5c11e47591c436aa0940 Mon Sep 17 00:00:00 2001 From: Kevin Coughlin Date: Fri, 3 May 2019 22:52:17 -0700 Subject: [PATCH 2/2] Enable tsc 2.4 and 2.7 tests --- scripts/typescript-compatibility-build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/typescript-compatibility-build.yml b/scripts/typescript-compatibility-build.yml index 420b367c458fd..bc657449bf1d8 100644 --- a/scripts/typescript-compatibility-build.yml +++ b/scripts/typescript-compatibility-build.yml @@ -65,6 +65,10 @@ jobs: strategy: maxParallel: 2 matrix: + 'TypeScript 2.4': + TypeScriptVersion: 2.4 + 'TypeScript 2.7': + TypeScriptVersion: 2.7 'TypeScript 2.9': TypeScriptVersion: 2.9 'TypeScript 3.0':