-
Notifications
You must be signed in to change notification settings - Fork 64
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #201: Port to .NET Core 3.0 and revamp engineering…
…/build/test **Non-goals** - [ ] Signing **New commands** `dotnet build`: Build all managed code `dotnet test`: Run all managed unit tests `dotnet publish -r [osx-x64|win-x64]`: Build all code including Scalar installer packages and scripts **Scripts** `BuildScalarForMac.sh`/`BuildScalarForWindows.bat`: Build all code and generate installers and install scripts `RunUnitTests.(sh|bat)`: Run the managed unit tests `RunFunctionalTests.(sh|bat)`: Run the functional tests `RestorePackages.bat`: No-op **Directories** ``` . ├── out (build output) │ ├── <Project1> │ ├── ... │ ├── <ProjectN> │ │ │ ├── Scalar.Distribution.Mac (distribution: packages, scripts) │ │ └── dist │ │ └── <Configuration> │ │ ├── InstallScalar.sh │ │ │ │ │ ├── Scalar │ │ │ └── Scalar.<version>.pkg │ │ ├── GCM │ │ │ └── gcmcore-osx-<version>.pkg │ │ └── Git │ │ └── git-<version>.pkg │ │ │ └── Scalar.Distribution.Windows │ └── dist │ └── <Configuration> │ ├── InstallScalar.bat │ │ │ ├── Scalar │ │ └── Scalar.<version>.exe │ └── Git │ └── Scalar.<version>.exe │ └── src (source) ├── <Project1> ├── ... ├── <ProjectN> │ ├── Dependencies.props (Unified NuGet package versions) └── Directory.Build.props (Common build props, including minimum Git version) └── Directory.Build.targets (Common build target) ``` **Changes** - Functional tests drops in CI do not include copies of the product; the installer drop must be consumed and installed. - The metapackage on macOS has been dropped.. we only build the Scalar package and leave installation of the correct version of Git to the outside. - The Platform projects have been folded into the Common project, under the `Platforms/` directory. There is now one platform loader that instantiates the correct type based on the current OS at runtime. - The Scalar.Build project has been slimmed down massively; we only need: - Generate Scalar constants (version) - Compile templated file (x-plat replacement for `sed` to replace placeholder tokens) - Generate Windows application manifest (set supported Windows versions) - The Scalar.Mac and Scalar.Windows projects have been folded into one, with a runtime fork to create the correct platform-specific types. The same applies for the other .Mac/.Windows projects. - Scalar.Tests has been renamed to Scalar.TestInfratructure to better reflect its purpose. - The Scalar.Notifications/Scalar.Mac directory has been flattened, and an MSBuild project been added that wraps the xcodeproj project. This allows us to chain in an xcodebuild into the MSBuild build with the `dotnet` CLI (see `dotnet build`/`publish`). - Introduce shims for some missing APIs in .NET Core from .NET Framework, mainly things around ACLs which have been implemented in the new type `DirectoryEx` in the Common project. - Include a copy of internal `NamedPipeServerStream` methods from the CoreFX to create pipes with the appropriate ACLs on Windows.
- Loading branch information
Showing
231 changed files
with
2,122 additions
and
4,041 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,86 +1,90 @@ | ||
trigger: | ||
- master | ||
- releases/* | ||
|
||
pr: | ||
- master | ||
- milestones/* | ||
- releases/* | ||
- servicing/* | ||
|
||
variables: | ||
branchCounter: $[counter(variables['Build.SourceBranch'], 0)] | ||
|
||
jobs: | ||
- job: Windows_Build_and_UnitTests | ||
variables: | ||
platformFriendlyName: Windows | ||
strategy: | ||
maxParallel: 2 | ||
matrix: | ||
debug: | ||
configuration: Debug | ||
release: | ||
configuration: Release | ||
pool: | ||
vmImage: vs2017-win2016 | ||
steps: | ||
- powershell: $(Build.Repository.LocalPath)/Scripts/CI/Set-Version.ps1 -SourceBranchCounter $(branchCounter) | ||
displayName: "Compute product version" | ||
- template: templates/windows-build-and-unit-test.yml | ||
|
||
- job: macOS_Build_and_UnitTests | ||
variables: | ||
platformFriendlyName: macOS | ||
strategy: | ||
maxParallel: 2 | ||
matrix: | ||
debug: | ||
configuration: Debug | ||
release: | ||
configuration: Release | ||
pool: | ||
name: 'Hosted macOS' | ||
steps: | ||
- powershell: $(Build.Repository.LocalPath)/Scripts/CI/Set-Version.ps1 -SourceBranchCounter $(branchCounter) | ||
displayName: "Compute product version" | ||
- template: templates/macos-build-and-unit-test.yml | ||
|
||
- job: macOS_FunctionalTests | ||
variables: | ||
platformFriendlyName: macOS | ||
configuration: Release | ||
timeoutInMinutes: 30 | ||
pool: | ||
name: 'Hosted macOS' | ||
dependsOn: macOS_Build_and_UnitTests | ||
condition: succeeded() | ||
steps: | ||
- checkout: none # Use the drop from macOS_Build_and_UnitTests job | ||
- template: templates/macos-functional-test.yml | ||
|
||
- job: macOS_FunctionalTests_watchman | ||
variables: | ||
platformFriendlyName: macOS | ||
configuration: Release | ||
timeoutInMinutes: 30 | ||
pool: | ||
name: 'Hosted macOS' | ||
dependsOn: macOS_Build_and_UnitTests | ||
condition: succeeded() | ||
steps: | ||
- checkout: none # Use the drop from macOS_Build_and_UnitTests job | ||
- template: templates/macos-functional-test-watchman.yml | ||
|
||
- job: Windows_FunctionalTests | ||
timeoutInMinutes: 30 | ||
variables: | ||
platformFriendlyName: Windows | ||
configuration: Release | ||
pool: | ||
vmImage: vs2017-win2016 | ||
dependsOn: Windows_Build_and_UnitTests | ||
condition: succeeded() | ||
steps: | ||
- checkout: none # We'll get the build drop from Windows_Build_and_UnitTests job | ||
- template: templates/windows-functional-test.yml | ||
trigger: | ||
- master | ||
- releases/* | ||
|
||
pr: | ||
- master | ||
- milestones/* | ||
- releases/* | ||
- servicing/* | ||
|
||
variables: | ||
branchCounter: $[counter(variables['Build.SourceBranch'], 0)] | ||
|
||
jobs: | ||
- job: Windows_Build_and_UnitTests | ||
variables: | ||
platformFriendlyName: Windows | ||
strategy: | ||
maxParallel: 2 | ||
matrix: | ||
debug: | ||
configuration: Debug | ||
release: | ||
configuration: Release | ||
pool: | ||
vmImage: windows-2019 | ||
steps: | ||
- powershell: $(Build.Repository.LocalPath)/Scripts/CI/Set-Version.ps1 -SourceBranchCounter $(branchCounter) | ||
displayName: "Compute product version" | ||
- template: templates/windows-build-and-unit-test.yml | ||
|
||
- job: macOS_Build_and_UnitTests | ||
variables: | ||
platformFriendlyName: macOS | ||
strategy: | ||
maxParallel: 2 | ||
matrix: | ||
debug: | ||
configuration: Debug | ||
release: | ||
configuration: Release | ||
pool: | ||
name: 'Hosted macOS' | ||
steps: | ||
- powershell: $(Build.Repository.LocalPath)/Scripts/CI/Set-Version.ps1 -SourceBranchCounter $(branchCounter) | ||
displayName: "Compute product version" | ||
- template: templates/macos-build-and-unit-test.yml | ||
|
||
- job: macOS_FunctionalTests | ||
variables: | ||
platformFriendlyName: macOS | ||
configuration: Release | ||
timeoutInMinutes: 30 | ||
pool: | ||
name: 'Hosted macOS' | ||
dependsOn: macOS_Build_and_UnitTests | ||
condition: succeeded() | ||
steps: | ||
- checkout: none # Use the drop from macOS_Build_and_UnitTests job | ||
- template: templates/macos-functional-test.yml | ||
parameters: | ||
useWatchman: false | ||
|
||
- job: macOS_FunctionalTests_watchman | ||
variables: | ||
platformFriendlyName: macOS | ||
configuration: Release | ||
timeoutInMinutes: 30 | ||
pool: | ||
name: 'Hosted macOS' | ||
dependsOn: macOS_Build_and_UnitTests | ||
condition: succeeded() | ||
steps: | ||
- checkout: none # Use the drop from macOS_Build_and_UnitTests job | ||
- template: templates/macos-functional-test.yml | ||
parameters: | ||
useWatchman: true | ||
|
||
- job: Windows_FunctionalTests | ||
timeoutInMinutes: 30 | ||
variables: | ||
platformFriendlyName: Windows | ||
configuration: Release | ||
pool: | ||
vmImage: windows-2019 | ||
dependsOn: Windows_Build_and_UnitTests | ||
condition: succeeded() | ||
steps: | ||
- checkout: none # We'll get the build drop from Windows_Build_and_UnitTests job | ||
- template: templates/windows-functional-test.yml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 0 additions & 60 deletions
60
.azure-pipelines/templates/macos-functional-test-watchman.yml
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.