mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 01:07:18 +03:00
0002b7ebae
In some cases we may end up with the tip of the main branch built as a split release manually. When Azure then tries to run it, the release fails (typically on the upload to NPM step). Normally, Azure is set to run this only once per commit, but that only applies when the run is successful. So if it breaks in a reproducible way (e.g. because the version already exists on NPM), Azure will keep trying every day. This PR adds a simple guard that makes the nightly build _not_ a release commit if the reelease already exists, which should short-circuit most of the jobs in the build and finish successfully. CHANGELOG_BEGIN CHANGELOG_END
74 lines
2.1 KiB
YAML
74 lines
2.1 KiB
YAML
# Copyright (c) 2022 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
pr: none
|
|
trigger: none
|
|
schedules:
|
|
- cron: "0 1 * * *"
|
|
displayName: Daily split snapshot
|
|
branches:
|
|
include:
|
|
- main
|
|
|
|
jobs:
|
|
- job: check_for_release
|
|
dependsOn:
|
|
- git_sha
|
|
variables:
|
|
branch_sha: $[ dependencies.git_sha.outputs['out.branch'] ]
|
|
fork_sha: $[ dependencies.git_sha.outputs['out.fork_point'] ]
|
|
pool:
|
|
name: "ubuntu_20_04"
|
|
demands: assignment -equals default
|
|
steps:
|
|
- template: bash-lib.yml
|
|
parameters:
|
|
var_name: bash-lib
|
|
- bash: |
|
|
set -euo pipefail
|
|
eval "$(./dev-env/bin/dade-assist)"
|
|
source $(bash-lib)
|
|
|
|
prefix=$(head -1 LATEST | awk '{print $2}' | sed -e 's/\([^-]*\).*/\1/')
|
|
release=$(./release.sh snapshot HEAD $prefix | awk '{print $2}')
|
|
|
|
ERR=$(mktemp)
|
|
OUT=$(curl https://digitalasset.jfrog.io/artifactory/api/storage/assembly/daml/$release \
|
|
-u $AUTH \
|
|
-I \
|
|
2>$ERR)
|
|
STATUS=$(echo "$OUT" | head -1 | sed 's:HTTP/1.1 \([^ ]\+\).*:\1:')
|
|
case "$STATUS" in
|
|
200)
|
|
echo "Version $release already exists on Artifactory, aborting."
|
|
setvar is_release false
|
|
;;
|
|
404)
|
|
setvar is_release true
|
|
setvar trigger_sha "$(branch_sha)"
|
|
setvar release_sha "$(branch_sha)"
|
|
setvar release_tag "$release"
|
|
setvar split_release_process true
|
|
;;
|
|
*)
|
|
echo "Unexpected status code: $STATUS"
|
|
echo "curl stdout:"
|
|
echo "--"
|
|
echo "$OUT"
|
|
echo "--"
|
|
echo "curl stderr:"
|
|
echo "--"
|
|
echo "$ERR"
|
|
echo "--"
|
|
exit 1
|
|
;;
|
|
esac
|
|
setvar scala_2_13 true
|
|
name: out
|
|
env:
|
|
AUTH: $(ARTIFACTORY_USERNAME):$(ARTIFACTORY_PASSWORD)
|
|
- template: build.yml
|
|
- template: split-release-job.yml
|
|
- job: release
|
|
condition: false
|