<commit_before>#!/bin/bash
#set -eux
#===================================================================================================
#
# Production Build
#
#===================================================================================================
#---------------------------------------------------------------------------------------------------
# 設定
#---------------------------------------------------------------------------------------------------
dir_script="$(dirname $0)"
cd "$(cd ${dir_script}; cd ..; pwd)" || exit 6

readonly BUILD_PROFILE="product"

readonly SONAR_URL="https://sonarcloud.io"
readonly SONAR_ORGANIZATION="suwa-sh-github"
readonly SONAR_EXCLUDES="src/test/**,src/main/java/io/**,**/gen/**,**/*Exception.java,**/ws/infra/*Filter.java"

readonly DIR_BASE="$(pwd)"
readonly DIR_WORK="${DIR_BASE}/target"
readonly DIR_DIST="${DIR_BASE}/dist"

readonly URL_BASE="http://localhost:8081"

# プロダクト名
product_name="$(basename ${DIR_BASE})"
# バージョン
# TODO xmlパーサでxpath指定で取得する？
version=$(                                                                                         \
  cat pom.xml                                                                                      |
  grep "^    <version"                                                                             |
  sed -e "s|^  *||g"                                                                               |
  sed -e "s|<version>||"                                                                           |
  sed -e "s|</version>||"                                                                          \
)
if [[ "x${version}" = "x" ]]; then
  echo "pom.xmlからバージョンが取得できません。" >&2
  exit 6
fi


#---------------------------------------------------------------------------------------------------
# build
#---------------------------------------------------------------------------------------------------
echo "出力ディレクトリのクリア"
if [[ -d "${DIR_DIST}" ]]; then
  rm -fr "${DIR_DIST}"
fi
mkdir -p "${DIR_DIST}"

echo "ビルドスクリプトの実行"
if [[ "${SONAR_TOKEN}x" = "x" ]]; then
  echo "SONAR_TOKEN が定義されていません。sonar解析をスキップします。"
  mvn clean package                                                                                \
    -P ${BUILD_PROFILE}                                                                            \

else
  mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar                       \
    -P ${BUILD_PROFILE}                                                                            \
    -Dsonar.host.url=${SONAR_URL}                                                                  \
    -Dsonar.organization=${SONAR_ORGANIZATION}                                                     \
    -Dsonar.login=${SONAR_TOKEN}                                                                   \
    -Dsonar.exclusions="${SONAR_EXCLUDES}"
fi
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
  echo "ビルドスクリプトでエラーが発生しました。" >&2
  exit 6
fi


#---------------------------------------------------------------------------------------------------
# 配布アーカイブ作成
#---------------------------------------------------------------------------------------------------
echo "配布アーカイブの収集"
mv "${DIR_WORK}/${product_name}_${version}_${BUILD_PROFILE}.tar.gz" "${DIR_DIST}/"
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
  echo "配布アーカイブの収集でエラーが発生しました。" >&2
  exit 6
fi


#---------------------------------------------------------------------------------------------------
# swagger.yamlの生成
#---------------------------------------------------------------------------------------------------
echo ""
${DIR_BASE}/build/lib/generate_swagger_yaml.sh "${version}" "${URL_BASE}"
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
  echo "swagger.yamlの生成でエラーが発生しました。" >&2
  exit 6
fi

<commit_msg>in-house-swagger #20 install時のアーカイブダウンロードをリトライしたい<commit_after>#!/bin/bash
#set -eux
#===================================================================================================
#
# Production Build
#
#===================================================================================================
#---------------------------------------------------------------------------------------------------
# 設定
#---------------------------------------------------------------------------------------------------
dir_script="$(dirname $0)"
cd "$(cd ${dir_script}; cd ..; pwd)" || exit 6

readonly BUILD_PROFILE="product"

readonly SONAR_URL="https://sonarcloud.io"
readonly SONAR_ORGANIZATION="suwa-sh-github"
readonly SONAR_EXCLUDES="src/test/**,src/main/java/io/**,**/gen/**,**/*Exception.java,**/ws/infra/*Filter.java"

readonly DIR_BASE="$(pwd)"
readonly DIR_WORK="${DIR_BASE}/target"
readonly DIR_DIST="${DIR_BASE}/dist"

readonly URL_BASE="http://localhost:8081"

# プロダクト名
product_name="$(basename ${DIR_BASE})"
# バージョン
# TODO xmlパーサでxpath指定で取得する？
version=$(                                                                                         \
  cat pom.xml                                                                                      |
  grep "^    <version"                                                                             |
  sed -e "s|^  *||g"                                                                               |
  sed -e "s|<version>||"                                                                           |
  sed -e "s|</version>||"                                                                          \
)
if [[ "x${version}" = "x" ]]; then
  echo "pom.xmlからバージョンが取得できません。" >&2
  exit 6
fi


#---------------------------------------------------------------------------------------------------
# build
#---------------------------------------------------------------------------------------------------
echo "出力ディレクトリのクリア"
if [[ -d "${DIR_DIST}" ]]; then
  rm -fr "${DIR_DIST}"
fi
mkdir -p "${DIR_DIST}"

echo "ビルドスクリプトの実行"
if [[ "${SONAR_TOKEN}x" = "x" ]]; then
  echo "SONAR_TOKEN が定義されていません。sonar解析をスキップします。"
  mvn clean package                                                                                \
    -P ${BUILD_PROFILE}                                                                            \

else
  mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar                       \
    -P ${BUILD_PROFILE}                                                                            \
    -Dsonar.host.url=${SONAR_URL}                                                                  \
    -Dsonar.organization=${SONAR_ORGANIZATION}                                                     \
    -Dsonar.login=${SONAR_TOKEN}                                                                   \
    -Dsonar.exclusions="${SONAR_EXCLUDES}"
fi
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
  echo "ビルドスクリプトでエラーが発生しました。" >&2
  exit 6
fi


#---------------------------------------------------------------------------------------------------
# 配布アーカイブ作成
#---------------------------------------------------------------------------------------------------
echo "配布アーカイブの収集"
filename_dist="${product_name}_${version}_${BUILD_PROFILE}.tar.gz"
mv "${DIR_WORK}/${filename_dist}" "${DIR_DIST}/"
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
  echo "配布アーカイブの収集でエラーが発生しました。" >&2
  exit 6
fi

path_dist="${DIR_DIST}/${filename_dist}"
md5sum  "${path_dist}" | cut -d ' ' -f 1 > "${path_dist}.md5"
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
  echo "md5ファイルの作成でエラーが発生しました。" >&2
  exit 6
fi

sha1sum "${path_dist}" | cut -d ' ' -f 1 > "${path_dist}.sha1"
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
  echo "sha1ファイルの作成でエラーが発生しました。" >&2
  exit 6
fi


#---------------------------------------------------------------------------------------------------
# swagger.yamlの生成
#---------------------------------------------------------------------------------------------------
echo ""
${DIR_BASE}/build/lib/generate_swagger_yaml.sh "${version}" "${URL_BASE}"
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
  echo "swagger.yamlの生成でエラーが発生しました。" >&2
  exit 6
fi


{'fraction_non_alphanumeric': 0.3546976511744128, 'fraction_numerical': 0.00624687656171914, 'mean_word_length': 0.9146137287730208, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 19, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 68, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4904678', 'n_tokens_mistral': 2148, 'n_tokens_neox': 2002, 'n_words': 342}