# Stage to combine artifacts into a single output parameters: publish: False publishUserName: '' publishPassword: '' artifacts: [] stages: - stage: Combine jobs: - job: CombineJob pool: vmImage: 'macOS-10.14' timeoutInMinutes: 0 steps: - checkout: none - script: | git clone https://github.com/wpilibsuite/build-tools displayName: 'Clone Combiner' - ${{ each artifact in parameters.artifacts }}: - task: DownloadPipelineArtifact@0 displayName: 'DownloadPipelineArtifact ${{ artifact }}' inputs: artifactName: ${{ artifact }} targetPath: 'build-tools/combiner/products/build/allOutputs' # PR Builds - ${{ if and(ne(variables['Build.SourceBranch'], 'refs/heads/master'), not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v'))) }}: - task: Gradle@2 inputs: workingDirectory: 'build-tools/combiner' gradleWrapperFile: 'build-tools/combiner/gradlew' gradleOptions: '-Xmx3072m' tasks: 'publish ' options: '-Pallwpilib' # Master Builds - ${{ if and(parameters.publish, eq(variables['Build.SourceBranch'], 'refs/heads/master')) }}: - task: Gradle@2 inputs: workingDirectory: 'build-tools/combiner' gradleWrapperFile: 'build-tools/combiner/gradlew' gradleOptions: '-Xmx3072m' tasks: 'publish ' options: '-Pallwpilib' env: RUN_AZURE_ARTIFACTORY_RELEASE: 'TRUE' ARTIFACTORY_PUBLISH_USERNAME: $(publishUserName) ARTIFACTORY_PUBLISH_PASSWORD: $(publishPassword) # Tagged Builds - ${{ if and(parameters.publish, startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) }}: - task: Gradle@2 inputs: workingDirectory: 'build-tools/combiner' gradleWrapperFile: 'build-tools/combiner/gradlew' gradleOptions: '-Xmx3072m' tasks: 'publish ' options: '-Pallwpilib -PreleaseRepoPublish' env: RUN_AZURE_ARTIFACTORY_RELEASE: 'TRUE' ARTIFACTORY_PUBLISH_USERNAME: $(publishUserName) ARTIFACTORY_PUBLISH_PASSWORD: $(publishPassword) - script: | echo "##vso[task.setvariable variable=UserHome]$HOME" displayName: 'Set Home Variable' - task: PublishPipelineArtifact@0 inputs: artifactName: 'Maven' targetPath: $(UserHome)/releases