mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-19 16:57:40 +03:00
01f11109fa
I can't reproduce the `chmod` failure and have no clue how to fix it, so for now let's just hope it's not too frequent. CHANGELOG_BEGIN CHANGELOG_END
170 lines
7.0 KiB
YAML
170 lines
7.0 KiB
YAML
# Copyright (c) 2021 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
parameters:
|
|
is_release: ''
|
|
name: ''
|
|
release_tag: ''
|
|
|
|
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: |
|
|
set -euo pipefail
|
|
eval "$(./dev-env/bin/dade-assist)"
|
|
# Location of the disk cache for CI servers set in their init files:
|
|
# infra/macos/2-common-box/init.sh:echo "build:darwin --disk_cache=~/.bazel-cache" > ~/.bazelrc
|
|
# infra/vsts_agent_linux_startup.sh:echo "build:linux --disk_cache=~/.bazel-cache" > ~/.bazelrc
|
|
if [ $(df -m . | sed 1d | awk '{print $4}') -lt 30000 ]; then
|
|
echo "Disk full, cleaning up..."
|
|
disk_cache="$HOME/.bazel-cache"
|
|
rm -rf "$disk_cache"
|
|
echo "removed '$disk_cache'"
|
|
local_cache="$HOME/.cache/bazel"
|
|
if [ -d "$local_cache" ]; then
|
|
chmod -R +w "$local_cache"
|
|
rm -rf "$local_cache"
|
|
echo "removed '$local_cache'"
|
|
fi
|
|
fi
|
|
df -h .
|
|
displayName: clean-up disk cache
|
|
|
|
- bash: ./fmt.sh --test
|
|
displayName: 'Platform-agnostic lints and checks'
|
|
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
|
|
|
|
- bash: ./build.sh "_$(uname)"
|
|
displayName: 'Build'
|
|
env:
|
|
DAML_SDK_RELEASE_VERSION: ${{parameters.release_tag}}
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
condition: failed()
|
|
displayName: 'Publish the bazel test logs'
|
|
inputs:
|
|
pathtoPublish: 'bazel-testlogs/'
|
|
artifactName: 'Test logs'
|
|
|
|
- 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}}
|
|
GPG_KEY: $(gpg-code-signing)
|
|
MAVEN_USERNAME: $(MAVEN_USERNAME)
|
|
MAVEN_PASSWORD: $(MAVEN_PASSWORD)
|
|
MAVEN_URL: "https://oss.sonatype.org"
|
|
NPM_TOKEN: $(NPM_TOKEN)
|
|
name: publish_npm_mvn
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'),
|
|
eq('${{parameters.name}}', 'linux'))
|
|
- bash: |
|
|
set -euo pipefail
|
|
eval "$(./dev-env/bin/dade-assist)"
|
|
|
|
TARBALL=daml-sdk-${{parameters.release_tag}}-${{parameters.name}}.tar.gz
|
|
cp bazel-bin/release/sdk-release-tarball.tar.gz $(Build.StagingDirectory)/$TARBALL
|
|
echo "##vso[task.setvariable variable=tarball;isOutput=true]$TARBALL"
|
|
|
|
PROTOS_ZIP=protobufs-${{parameters.release_tag}}.zip
|
|
cp bazel-bin/release/protobufs.zip $(Build.StagingDirectory)/$PROTOS_ZIP
|
|
echo "##vso[task.setvariable variable=protos-zip;isOutput=true]$PROTOS_ZIP"
|
|
|
|
DAML_ON_SQL=daml-on-sql-${{parameters.release_tag}}.jar
|
|
## Not built by default
|
|
bazel build //ledger/daml-on-sql:daml-on-sql-binary_deploy.jar
|
|
cp bazel-bin/ledger/daml-on-sql/daml-on-sql-binary_deploy.jar $(Build.StagingDirectory)/$DAML_ON_SQL
|
|
echo "##vso[task.setvariable variable=daml-on-sql;isOutput=true]$DAML_ON_SQL"
|
|
|
|
JSON_API=http-json-${{parameters.release_tag}}.jar
|
|
## Not built by default
|
|
bazel build //ledger-service/http-json:http-json-binary_deploy.jar
|
|
cp bazel-bin/ledger-service/http-json/http-json-binary_deploy.jar $(Build.StagingDirectory)/$JSON_API
|
|
echo "##vso[task.setvariable variable=json-api;isOutput=true]$JSON_API"
|
|
|
|
TRIGGER=daml-trigger-runner-${{parameters.release_tag}}.jar
|
|
bazel build //triggers/runner:trigger-runner_deploy.jar
|
|
cp bazel-bin/triggers/runner/trigger-runner_deploy.jar $(Build.StagingDirectory)/$TRIGGER
|
|
echo "##vso[task.setvariable variable=trigger-runner;isOutput=true]$TRIGGER"
|
|
|
|
SCRIPT=daml-script-${{parameters.release_tag}}.jar
|
|
bazel build //daml-script/runner:script-runner_deploy.jar
|
|
cp bazel-bin/daml-script/runner/script-runner_deploy.jar $(Build.StagingDirectory)/$SCRIPT
|
|
echo "##vso[task.setvariable variable=script-runner;isOutput=true]$SCRIPT"
|
|
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)/$(publish.tarball)
|
|
artifactName: $(publish.tarball)
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'))
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
targetPath: $(Build.StagingDirectory)/$(publish.protos-zip)
|
|
artifactName: $(publish.protos-zip)
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'),
|
|
eq('${{parameters.name}}', 'linux'))
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
targetPath: $(Build.StagingDirectory)/$(publish.daml-on-sql)
|
|
artifactName: $(publish.daml-on-sql)
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'),
|
|
eq('${{parameters.name}}', 'linux'))
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
targetPath: $(Build.StagingDirectory)/$(publish.json-api)
|
|
artifactName: $(publish.json-api)
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'),
|
|
eq('${{parameters.name}}', 'linux'))
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
targetPath: $(Build.StagingDirectory)/$(publish.trigger-runner)
|
|
artifactName: $(publish.trigger-runner)
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'),
|
|
eq('${{parameters.name}}', 'linux'))
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
targetPath: $(Build.StagingDirectory)/$(publish.script-runner)
|
|
artifactName: $(publish.script-runner)
|
|
condition: and(succeeded(),
|
|
eq(${{parameters.is_release}}, 'true'),
|
|
eq(variables['Build.SourceBranchName'], 'main'),
|
|
eq('${{parameters.name}}', 'linux'))
|