mirror of
https://github.com/digital-asset/daml.git
synced 2024-11-10 00:35:25 +03:00
ca976fe3d7
Because there's no reason not to. The only obstacle to automating the normal release process is that we need an explicit manual validation step for our audit log when creating a release, but split-releases are created in the Assemblty repo, so we can have the audit log over there. The diff is going to be very messy because there's a lot of stuff moving around. The only thing that is not just moving a job to a separate file is the `ci/daily-snapshot.yml` file, which is 100% new and is meant as a new Azure Pipelines entrypoint (which I will create after this gets approved). I have made a reasonable effort to create individual commits that simplify reviewing, but I expect it's still going to be kind of a mess. I'm open to opening separate PRs to ~bump my stats~ move one job at a time if that makes reviewing (and testing) easier. CHANGELOG_BEGIN CHANGELOG_END
72 lines
2.3 KiB
YAML
72 lines
2.3 KiB
YAML
# Copyright (c) 2022 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
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)
|
|
|
|
./release.sh check
|
|
|
|
changes_release_files() {
|
|
changed="$(git diff-tree --no-commit-id --name-only -r $(fork_sha) $(branch_sha) | sort)"
|
|
[ "LATEST" = "$changed" ]
|
|
}
|
|
|
|
changes_one_line_in_latest() {
|
|
changed="$(git diff-tree --no-commit-id --numstat -r $(fork_sha) $(branch_sha) -- LATEST | awk '{print $1 "_" $2}')"
|
|
add_one="1_0"
|
|
change_one="1_1"
|
|
[[ "$add_one" == "$changed" || "$change_one" == "$changed" ]]
|
|
}
|
|
|
|
added_line() {
|
|
echo "$(git diff $(fork_sha) $(branch_sha) -- LATEST | tail -n+6 | grep '^\+' | cut -c2-)"
|
|
}
|
|
|
|
if changes_release_files; then
|
|
if changes_one_line_in_latest; then
|
|
setvar is_release true
|
|
setvar trigger_sha $(branch_sha)
|
|
setvar release_sha "$(added_line | awk '{print $1}')"
|
|
RELEASE_TAG="$(added_line | awk '{print $2}')"
|
|
setvar release_tag "$RELEASE_TAG"
|
|
if [ "$(added_line | awk '{print $3}')" == "SPLIT_RELEASE" ]; then
|
|
setvar split_release_process true
|
|
else
|
|
setvar split_release_process false
|
|
fi
|
|
else
|
|
echo "Release commit should only add one version."
|
|
exit 1
|
|
fi
|
|
else
|
|
RELEASE_TAG="0.0.0"
|
|
setvar is_release false
|
|
fi
|
|
|
|
# This is the last snapshot that does not support Scala 2.13.
|
|
CMP="$(semver compare "$RELEASE_TAG" '1.11.0-snapshot.20210212.6300.0.ad161d7f')"
|
|
|
|
if [[ $CMP == '1' || "$RELEASE_TAG" == '0.0.0' ]]; then
|
|
setvar scala_2_13 true
|
|
else
|
|
setvar scala_2_13 false
|
|
fi
|
|
name: out
|
|
|