58 lines
2.0 KiB
Bash
Executable File
58 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
# Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
#
|
|
|
|
# Script for building reproducible-maven.zip from sources. This is a full set of artifacts published to maven central during
|
|
# the Kotlin release process.
|
|
|
|
# Run the script in the root Kotlin directory.
|
|
|
|
set -e
|
|
|
|
if [ $# -lt 3 ]; then
|
|
echo "Not enough arguments provided. Usage: $0 DEPLOY_VERSION BUILD_NUMBER KOTLIN_NATIVE_VERSION"
|
|
exit 1
|
|
fi
|
|
|
|
DEPLOY_VERSION=$1
|
|
BUILD_NUMBER=$2
|
|
KOTLIN_NATIVE_VERSION=$3
|
|
|
|
echo "DEPLOY_VERSION=$DEPLOY_VERSION"
|
|
echo "BUILD_NUMBER=$BUILD_NUMBER"
|
|
echo "KOTLIN_NATIVE_VERSION=$KOTLIN_NATIVE_VERSION"
|
|
|
|
# Update versions in pom.xml
|
|
./libraries/mvnw -DnewVersion=$DEPLOY_VERSION -DgenerateBackupPoms=false -DprocessAllModules=true -f libraries/pom.xml versions:set
|
|
|
|
# Build part of kotlin and publish it to the local maven repository and to build/repo directory
|
|
./gradlew \
|
|
-PdeployVersion=$DEPLOY_VERSION \
|
|
-Pbuild.number=$BUILD_NUMBER \
|
|
-Pversions.kotlin-native=$KOTLIN_NATIVE_VERSION \
|
|
-Pteamcity=true \
|
|
--no-daemon \
|
|
--info \
|
|
publish publishToMavenLocal
|
|
|
|
# Build maven part and publish it to the same build/repo
|
|
./libraries/mvnw \
|
|
-f libraries/pom.xml \
|
|
clean deploy \
|
|
-Ddeploy-url=file://$(pwd)/build/repo \
|
|
-DskipTests
|
|
|
|
# Prepare for reproducibility check
|
|
mkdir -p build/repo-reproducible
|
|
cp -R build/repo/. build/repo-reproducible
|
|
# maven-metadata contains lastUpdated section with the build time
|
|
find build/repo-reproducible -name "maven-metadata.xml*" -exec rm -rf {} \;
|
|
# spdx SBOM contains creationInfo with datetime
|
|
find build/repo-reproducible -name "*.spdx.json*" -exec rm -rf {} \;
|
|
# Each file has own timestamp that would affect zip file hash if not aligned
|
|
find build/repo-reproducible -exec touch -t "198001010000" {} \;
|
|
cd build/repo-reproducible && find . -type f | sort | zip -X reproducible-maven-$DEPLOY_VERSION.zip -@ && cd -
|