mirror of
https://github.com/digital-asset/daml.git
synced 2024-10-05 16:57:28 +03:00
7c83265ef9
When we build a release, it is always a "past" commit - typically, one that has already been tested twice: once when the corresponding PR was run, and then again as a "main"-branch commit. Release branches don't run, but their protection rules enforce linear merges. Either way, we know we're building a _good_ commit, and, assuming our builds and tests are hermetic, testing that commit again when we make a release is a pure waste of time and CPU resources. The other case, where we make an ad-hoc release from a branch that has not been merged, has a similar issue: we do not necessarily want to run the full test suite, because part of the reason we need that commit may be that it doesn't succeed as is. Based on that observation, I wondered what might be the minimal set of things we actually need to build when making a release. This PR is an experiment in trying to find that out.
52 lines
2.3 KiB
Bash
Executable File
52 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
set -euo pipefail
|
|
|
|
DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
cd $DIR/../sdk
|
|
|
|
RELEASE_TAG=$1
|
|
NAME=$2
|
|
OUTPUT_DIR=$3
|
|
|
|
mkdir -p $OUTPUT_DIR/github
|
|
mkdir -p $OUTPUT_DIR/artifactory
|
|
# Artifacts that we only use in the split-release process
|
|
mkdir -p $OUTPUT_DIR/split-release
|
|
|
|
|
|
TARBALL=daml-sdk-$RELEASE_TAG-$NAME.tar.gz
|
|
EE_TARBALL=daml-sdk-$RELEASE_TAG-$NAME-ee.tar.gz
|
|
cp bazel-bin/release/sdk-release-tarball-ce.tar.gz $OUTPUT_DIR/github/$TARBALL
|
|
# Used for the non-split release process.
|
|
cp bazel-bin/release/sdk-release-tarball-ee.tar.gz $OUTPUT_DIR/artifactory/$EE_TARBALL
|
|
# Used for the split release process.
|
|
cp bazel-bin/release/sdk-release-tarball-ee.tar.gz $OUTPUT_DIR/split-release/$EE_TARBALL
|
|
|
|
|
|
cp bazel-bin/compiler/damlc/damlc-dist.tar.gz $OUTPUT_DIR/split-release/damlc-$RELEASE_TAG-$NAME.tar.gz
|
|
|
|
# Platform independent artifacts are only built on Linux.
|
|
if [[ "$NAME" == "linux-intel" ]]; then
|
|
PROTOS_ZIP=protobufs-$RELEASE_TAG.zip
|
|
cp bazel-bin/release/protobufs.zip $OUTPUT_DIR/github/$PROTOS_ZIP
|
|
|
|
SCRIPT=daml-script-$RELEASE_TAG.jar
|
|
cp bazel-bin/daml-script/runner/daml-script-binary_distribute.jar $OUTPUT_DIR/artifactory/$SCRIPT
|
|
|
|
mkdir -p $OUTPUT_DIR/split-release/daml-libs/daml-script
|
|
cp bazel-bin/daml-script/daml/*.dar $OUTPUT_DIR/split-release/daml-libs/daml-script/
|
|
cp bazel-bin/daml-script/daml3/*.dar $OUTPUT_DIR/split-release/daml-libs/daml-script/
|
|
|
|
mkdir -p $OUTPUT_DIR/split-release/docs
|
|
|
|
cp bazel-bin/docs/sphinx-source-tree.tar.gz $OUTPUT_DIR/split-release/docs/sphinx-source-tree-$RELEASE_TAG.tar.gz
|
|
cp bazel-bin/docs/sphinx-source-tree-deps.tar.gz $OUTPUT_DIR/split-release/docs/sphinx-source-tree-deps-$RELEASE_TAG.tar.gz
|
|
cp bazel-bin/docs/pdf-fonts-tar.tar.gz $OUTPUT_DIR/split-release/docs/pdf-fonts-$RELEASE_TAG.tar.gz
|
|
cp bazel-bin/docs/non-sphinx-html-docs.tar.gz $OUTPUT_DIR/split-release/docs/non-sphinx-html-docs-$RELEASE_TAG.tar.gz
|
|
|
|
cp bazel-bin/test-evidence/daml-security-test-evidence.csv $OUTPUT_DIR/github/daml-security-test-evidence-$RELEASE_TAG.csv
|
|
cp bazel-bin/test-evidence/daml-security-test-evidence.json $OUTPUT_DIR/github/daml-security-test-evidence-$RELEASE_TAG.json
|
|
fi
|