mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-19 16:57:40 +03:00
242fe0f447
For the used-to-be-rare-but-not-so-much-anymore case where the job fails after having pushed its logs (without this the push fails as we can't overwrite artifacts).
118 lines
4.0 KiB
YAML
118 lines
4.0 KiB
YAML
# Copyright (c) 2023 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
parameters:
|
|
is_release: ''
|
|
name: ''
|
|
release_tag: ''
|
|
scala_version: ''
|
|
|
|
steps:
|
|
- bash: ci/dev-env-install.sh
|
|
displayName: 'Build/Install the Developer Environment'
|
|
|
|
- bash: |
|
|
source dev-env/lib/ensure-nix
|
|
ci/dev-env-push.py
|
|
displayName: 'Push Developer Environment build results'
|
|
condition: eq(variables['System.PullRequest.IsFork'], 'False')
|
|
env:
|
|
# to upload to the Nix cache
|
|
GOOGLE_APPLICATION_CREDENTIALS_CONTENT: $(GOOGLE_APPLICATION_CREDENTIALS_CONTENT)
|
|
NIX_SECRET_KEY_CONTENT: $(NIX_SECRET_KEY_CONTENT)
|
|
|
|
- bash: ci/configure-bazel.sh
|
|
displayName: 'Configure Bazel'
|
|
env:
|
|
IS_FORK: $(System.PullRequest.IsFork)
|
|
# to upload to the bazel cache
|
|
GOOGLE_APPLICATION_CREDENTIALS_CONTENT: $(GOOGLE_APPLICATION_CREDENTIALS_CONTENT)
|
|
|
|
- bash: ./fmt.sh --test
|
|
displayName: 'Platform-agnostic lints and checks'
|
|
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
|
|
|
|
- bash: |
|
|
set -euo pipefail
|
|
p="_${{parameters.name}}"
|
|
a="_$(System.JobAttempt)"
|
|
if [ "$p" == "_m1" ]; then
|
|
./build.sh $p $a || ./build.sh $p $a || ./build.sh $p $a || ./build.sh $p $a
|
|
else
|
|
./build.sh $p $a
|
|
fi
|
|
displayName: 'Build'
|
|
env:
|
|
DAML_SDK_RELEASE_VERSION: ${{parameters.release_tag}}
|
|
DAML_SCALA_VERSION: ${{parameters.scala_version}}
|
|
ARTIFACTORY_USERNAME: $(ARTIFACTORY_USERNAME)
|
|
ARTIFACTORY_PASSWORD: $(ARTIFACTORY_PASSWORD)
|
|
|
|
# Do not publish dar from m1
|
|
- ${{ if ne(parameters.name, 'm1') }}:
|
|
- template: publish-platform-independence-dar.yml
|
|
parameters:
|
|
platform: '${{parameters.name}}'
|
|
is_release: '${{parameters.is_release}}'
|
|
|
|
- bash: |
|
|
set -euo pipefail
|
|
cd '$(Build.StagingDirectory)/logs'
|
|
gzip -9 *
|
|
|
|
displayName: compress logs
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
condition: succeededOrFailed()
|
|
continueOnError: true
|
|
inputs:
|
|
pathtoPublish: '$(Build.StagingDirectory)/logs'
|
|
artifactName: 'Bazel Logs'
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
condition: failed()
|
|
displayName: 'Publish the bazel test logs'
|
|
inputs:
|
|
pathtoPublish: 'bazel-testlogs/'
|
|
artifactName: 'Test logs ${{parameters.name}}'
|
|
|
|
- bash: |
|
|
set -euo pipefail
|
|
eval "$(./dev-env/bin/dade-assist)"
|
|
./bazel-bin/release/release --release-dir "$(mktemp -d)" --upload
|
|
env:
|
|
DAML_SDK_RELEASE_VERSION: ${{parameters.release_tag}}
|
|
DAML_SCALA_VERSION: ${{parameters.scala_version}}
|
|
GPG_KEY: $(gpg-code-signing)
|
|
MAVEN_USERNAME: $(MAVEN_USERNAME)
|
|
MAVEN_PASSWORD: $(MAVEN_PASSWORD)
|
|
MAVEN_URL: "https://s01.oss.sonatype.org"
|
|
NPM_TOKEN: $(NPM_TOKEN)
|
|
name: publish_npm_mvn
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq('${{parameters.scala_version}}', ''),
|
|
eq(variables['Build.SourceBranchName'], 'main'),
|
|
in('${{parameters.name}}', 'linux', 'linux-scala-2.12'))
|
|
- template: bash-lib.yml
|
|
parameters:
|
|
var_name: bash-lib
|
|
- bash: |
|
|
set -euo pipefail
|
|
eval "$(./dev-env/bin/dade-assist)"
|
|
mkdir -p $(Build.StagingDirectory)/release
|
|
./ci/copy-unix-release-artifacts.sh ${{parameters.release_tag}} ${{parameters.name}} $(Build.StagingDirectory)/release
|
|
env:
|
|
DAML_SDK_RELEASE_VERSION: ${{parameters.release_tag}}
|
|
name: publish
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'))
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
targetPath: $(Build.StagingDirectory)/release
|
|
artifactName: ${{parameters.name}}-release
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'))
|