mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-07 04:56:58 +02:00
Catalyst runs builds with copies of the portage/coreos overlays in a chroot, which prevents us from accessing the git metadata necessary to create provenance information. Copy some files over into the root_overlay used by the toolchains catalyst build so that provenance can be correctly captured.
69 lines
2.1 KiB
Bash
Executable File
69 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright (c) 2013 The CoreOS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
SCRIPT_ROOT=$(dirname $(readlink -f "$0"))
|
|
. "${SCRIPT_ROOT}/common.sh" || exit 1
|
|
|
|
TYPE="coreos-toolchains"
|
|
FORCE_STAGES="stage4"
|
|
|
|
. "${BUILD_LIBRARY_DIR}/catalyst.sh" || exit 1
|
|
|
|
# include upload options
|
|
. "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1
|
|
|
|
## Define the stage4 config template
|
|
catalyst_stage4() {
|
|
cat <<EOF
|
|
target: stage4
|
|
pkgcache_path: $BINPKGS
|
|
stage4/packages: @system
|
|
stage4/fsscript: ${BUILD_LIBRARY_DIR}/catalyst_toolchains.sh
|
|
stage4/root_overlay: ${ROOT_OVERLAY}
|
|
EOF
|
|
catalyst_stage_default
|
|
}
|
|
create_provenance_overlay() {
|
|
local root_overlay="$1"
|
|
while read f; do
|
|
d="${f%/*}"
|
|
mkdir -p "${root_overlay}${d}/"
|
|
cp "${f}" "${root_overlay}${d}/"
|
|
done < <(find /mnt/host/source/src/scripts -name HEAD)
|
|
local scripts_git=/mnt/host/source/src/scripts/.git
|
|
# `git rev-parse` fails due to the safe.directory setting in SDK container.
|
|
# Open-code the ref lookup
|
|
read scripts_hash <"${scripts_git}/HEAD"
|
|
if [[ "${scripts_hash}" == "ref:"* ]]; then
|
|
read scripts_hash<"${scripts_git}/${scripts_hash#ref: }"
|
|
echo "${scripts_hash}" >"${root_overlay}${scripts_git}/HEAD"
|
|
fi
|
|
mkdir -p "${root_overlay}/mnt/host/source/.repo/manifests"
|
|
cp "${REPO_MANIFESTS_DIR}/version.txt" "${root_overlay}/mnt/host/source/.repo/manifests"
|
|
}
|
|
|
|
catalyst_init "$@"
|
|
check_gsutil_opts
|
|
|
|
ROOT_OVERLAY="${TEMPDIR}/stage4-${ARCH}-$FLAGS_version-overlay"
|
|
|
|
# toolchain_util.sh is required by catalyst_toolchains.sh
|
|
mkdir -p "${ROOT_OVERLAY}/tmp"
|
|
cp "${BUILD_LIBRARY_DIR}/toolchain_util.sh" "${ROOT_OVERLAY}/tmp"
|
|
create_provenance_overlay "${ROOT_OVERLAY}"
|
|
|
|
catalyst_build
|
|
|
|
# TODO: Actually just TOOLCHAIN_PKGS and the exact dependencies should be uploaded
|
|
for board in $(get_board_list); do
|
|
board_packages="${BINPKGS}/target/${board}"
|
|
def_upload_path="${UPLOAD_ROOT}/boards/${board}/${FLAGS_version}"
|
|
sign_and_upload_files "board toolchain packages" "${def_upload_path}" \
|
|
"toolchain/" "${board_packages}"/*
|
|
done
|
|
|
|
command_completed
|