jenkins-pipelines/scripts/create-changelog.sh

95 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
source $(dirname "$0")/lib/job_utils.sh
source $(dirname "$0")/lib/changelog_utils.sh
require_job_env BUILD_HOME
require_job_env FORCE_BUILD
require_job_env BUILD_DOCKER_IMAGES_DEV
require_job_env BUILD_DOCKER_IMAGES_STABLE
load_build_env
find_changelog_files() {
find "$BUILD_HOME" -mindepth 1 -maxdepth 1 \
-name 'CHANGELOG*' -o \
-name 'LAST_COMMITS*' -o \
-name 'NEED_BUILD' -o \
-name 'NO_BUILD_REQUIRED'
}
find_changelog_files | xargs -r rm -f
check_pipe_status
(
set +x
set -e
MY_WORKSPACE="$BUILD_HOME"
MY_REPO_ROOT_DIR="$BUILD_HOME/$REPO_ROOT_SUBDIR"
DEPLOY_DIR="$BUILD_OUTPUT_ROOT"
cd "$MY_REPO_ROOT_DIR"
if need_build ; then
create_standard_changelogs
fi
)
if [[ -f "$BUILD_HOME/NEED_BUILD" ]] ; then
rm -f SUCCESS FAIL FAILURE
# BUILD_OUTPUT_HOME
mkdir -p "$BUILD_OUTPUT_HOME"
# repo
mkdir -p "$BUILD_OUTPUT_HOME/$(dirname "$REPO_ROOT_SUBDIR")"
ln -sfn "$BUILD_HOME/$REPO_ROOT_SUBDIR" "$BUILD_OUTPUT_HOME/$REPO_ROOT_SUBDIR"
ln -sfn "$REPO_ROOT_SUBDIR" "$BUILD_OUTPUT_HOME/repo"
# workspace
mkdir -p "$BUILD_OUTPUT_HOME/$WORKSPACE_ROOT_SUBDIR"
ln -sfn "$WORKSPACE_ROOT_SUBDIR" "$BUILD_OUTPUT_HOME/workspace"
# mirrors
ln -sfn "$BUILD_HOME/mirrors" "$BUILD_OUTPUT_HOME/mirrors"
# aptly
ln -sfn "$BUILD_HOME/aptly" "$BUILD_OUTPUT_HOME/aptly"
# docker
ln -sfn "$BUILD_HOME/docker" "$BUILD_OUTPUT_HOME/docker"
# copy changelog etc files
find_changelog_files | xargs -r cp -v -t "$BUILD_OUTPUT_HOME"
check_pipe_status
# CONTEXT
(
set -e
cd "$REPO_ROOT"
(
set -e
echo .repo/manifests
repo forall -c 'echo $REPO_PATH'
) | while read gitdir ; do
rev="$(cd "$gitdir" && git rev-parse HEAD)" || exit 1
echo "(cd "$gitdir" && git checkout -f ${rev})"
done
check_pipe_status
) >"$BUILD_OUTPUT_HOME/CONTEXT"
check_pipe_status
# PUBLISH_DIR
mkdir -p "$PUBLISH_DIR"
mkdir -p "$PUBLISH_DIR/outputs"
cp "$BUILD_OUTPUT_HOME/CHANGELOG" "$PUBLISH_DIR/outputs/CHANGELOG.txt"
cp "$BUILD_OUTPUT_HOME/CONTEXT" "$PUBLISH_DIR/outputs/CONTEXT.sh"
cp "$WORKSPACE_ROOT/BUILD" "$PUBLISH_DIR/outputs/BUILD_INFO.txt"
cp "$WORKSPACE_ROOT/BUILD" "$PUBLISH_DIR/outputs/BUILD_INFO"
# LAST_BUILD_*
( source $WORKSPACE_ROOT/BUILD ; echo "$BUILD_NUMBER" >"$BUILD_HOME/LAST_BUILD_NUMBER" ; )
( source $WORKSPACE_ROOT/BUILD ; echo "$BUILD_ID" >"$BUILD_HOME/LAST_BUILD_TIMESTAMP" ; )
fi