lyng/bin/deploy_all
2026-06-28 00:41:00 +03:00

80 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright 2026 Sergey S. Chernov real.sergeych@gmail.com
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
set -euo pipefail
GRADLE_ARGS=(--no-configuration-cache --console=plain)
echo "actualizing Kotlin JS/Wasm lock files"
echo
./gradlew kotlinUpgradeYarnLock kotlinWasmUpgradeYarnLock "${GRADLE_ARGS[@]}"
echo "building all artifacts"
echo
./gradlew publishToMavenLocal site:jsBrowserDistribution buildInstallablePlugin :lyng:linkReleaseExecutableLinuxX64 :lyng:installJvmDist --parallel "${GRADLE_ARGS[@]}"
echo
echo "publishing remote Maven artifacts"
echo
tasks_log="$(mktemp)"
./gradlew tasks --all "${GRADLE_ARGS[@]}" >"$tasks_log"
mapfile -t publish_tasks < <(
sed -n 's/^\([^[:space:]]*publish.*PublicationToMavenRepository\) - .*$/:\1/p' "$tasks_log" |
sort -u
)
rm -f "$tasks_log"
if [ "${#publish_tasks[@]}" -eq 0 ]; then
echo "No remote Maven publication tasks found."
exit 1
fi
for task in "${publish_tasks[@]}"; do
echo
echo "Publishing $task"
publish_log="$(mktemp)"
if ./gradlew "$task" "${GRADLE_ARGS[@]}" >"$publish_log" 2>&1; then
cat "$publish_log"
rm -f "$publish_log"
continue
fi
if grep -Eiq '(^|[^0-9])409([^0-9]|$)|already exists|already been published|cannot be updated|Package file already exists|Repository does not allow updating assets' "$publish_log"; then
cat "$publish_log"
echo "Skipping $task: artifact already exists in the Maven repository."
rm -f "$publish_log"
continue
fi
cat "$publish_log"
rm -f "$publish_log"
exit 1
done
echo
echo "building CLI tools"
echo
bin/local_jrelease
bin/local_release
echo
echo "Deploying site"
echo
./bin/deploy_site