Files
kotlin-fork/scripts/build-kotlin-maven.sh
T
Nikolay Krasko 74dd31d00a Call additional publishToMavenLocal in maven build scripts and enable info
'publish' do not publish all artifacts to maven local and maven
fails because of it as it can't find dependencies.

KTI-729
2022-12-19 14:40:52 +00:00

56 lines
1.8 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
mvn -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
mvn \
-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 {} \;
# 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 && zip -rX reproducible-maven-$DEPLOY_VERSION.zip . && cd -