From 137e282630fea5d646a0ec9542a7c90f4b1cf1ed Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tom=C3=A1=C5=A1=20Rylek?= Date: Fri, 20 Dec 2019 19:34:22 +0100 Subject: [PATCH] Initial global build PR pipeline (#986) Fixes: #951 * Fix OSX build dependencies and container use per Santiago's advice * Comment the purpose of the new pipeline per Jared's PR feedback * Prune unused parameters of global-build-job * Fix variable propagation --- eng/pipelines/common/global-build-job.yml | 39 ++++++++++++++++++++ eng/pipelines/global-build.yml | 60 +++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 eng/pipelines/common/global-build-job.yml create mode 100644 eng/pipelines/global-build.yml diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml new file mode 100644 index 0000000..4c47bc5 --- /dev/null +++ b/eng/pipelines/common/global-build-job.yml @@ -0,0 +1,39 @@ +parameters: + buildConfig: '' + archType: '' + osGroup: '' + osSubgroup: '' + container: '' + variables: {} + timeoutInMinutes: '' + pool: '' + +jobs: +- template: /eng/common/templates/job/job.yml + parameters: + name: ${{ format('runtime_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + displayName: ${{ format('Runtime Build {0}{1} {2} {3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + dependsOn: checkout + pool: ${{ parameters.pool }} + container: ${{ parameters.container }} + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + variables: ${{ parameters.variables }} + + steps: + - ${{ if eq(parameters.osGroup, 'OSX') }}: + - script: | + $(setScriptToEchoAndFailOnNonZero) + brew install pkgconfig icu4c openssl + brew link --force icu4c + ln -s /usr/local/opt/openssl/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig/ + ln -s /usr/local/opt/openssl/lib/pkgconfig/libssl.pc /usr/local/lib/pkgconfig/ + ln -s /usr/local/opt/openssl/lib/pkgconfig/openssl.pc /usr/local/lib/pkgconfig/ + displayName: Install Build Dependencies + + - template: /eng/pipelines/common/clone-checkout-bundle-step.yml + + # Build + - script: | + $(setScriptToEchoAndFailOnNonZero) + $(Build.SourcesDirectory)$(dir)build$(scriptExt) -c ${{ parameters.buildConfig }} + displayName: Build product diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml new file mode 100644 index 0000000..57d5e3c --- /dev/null +++ b/eng/pipelines/global-build.yml @@ -0,0 +1,60 @@ +# The purpose of this pipeline is to exercise local developer workflow in the consolidated +# runtime repo. In particular, it is supposed to run the root "build" script just like any +# normal developer normally would and monitor regressions w.r.t. this fundamental scenario. + +trigger: none + +pr: + branches: + include: + - master + - release/*.* + paths: + include: + - '*' + - docs/manpages/* + - eng/pipelines/global-build.yml + exclude: + - docs/* + - eng/pipelines/coreclr/*.* + - eng/pipelines/libraries/*.* + - eng/pipelines/installer/*.* + - eng/pipelines/*.* + - CODE-OF-CONDUCT.md + - CONTRIBUTING.md + - LICENSE.TXT + - PATENTS.TXT + - README.md + - SECURITY.md + - THIRD-PARTY-NOTICES.TXT + +jobs: +# +# Checkout repository +# +- template: /eng/pipelines/common/checkout-job.yml + +# +# Build the combined runtime repo +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - Windows_NT_x86 + - OSX_x64 + jobParameters: + testGroup: innerloop + +# +# Build the combined runtime repo +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - Linux_x64 + jobParameters: + testGroup: innerloop -- 2.7.4