仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
76
tools/dts2repl/ci/get_renode.sh
Executable file
76
tools/dts2repl/ci/get_renode.sh
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
try_download() {
|
||||
if [ $RENODE_VERSION = "latest" ]; then
|
||||
echo "===[Trying to obtain the latest Renode version from the Github repository]==="
|
||||
RENODE_VERSION=$(git ls-remote https://github.com/renode/renode refs/heads/master | cut -f1)
|
||||
if [ -z "$RENODE_VERSION" ]; then
|
||||
echo "Failed to obtain the latest Renode version from the Github repository!"
|
||||
return 1
|
||||
fi
|
||||
echo "Latest Renode version is: ${RENODE_VERSION}"
|
||||
fi
|
||||
|
||||
echo "===[Trying to obtain precompiled package for renode commit ${RENODE_VERSION}]==="
|
||||
VERSION=$(curl -kLsf https://raw.githubusercontent.com/renode/renode/${RENODE_VERSION}/tools/version)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "No package with version ${RENODE_VERSION} found! (failed to resolve Renode version)"
|
||||
return 1
|
||||
fi
|
||||
|
||||
curl -kLsf -o 'renode-portable.tar.gz' https://builds.renode.io/sha/renode-"$VERSION"+git"${RENODE_VERSION:0:9}".linux-portable-dotnet.tar.gz
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Precompiled package for renode commit ${RENODE_VERSION} downloaded."
|
||||
tar xf renode*portable.tar.gz -C ..
|
||||
cd ..
|
||||
mv renode_*_portable renode-portable
|
||||
RENODE_LOCATION=$(realpath renode-portable)
|
||||
echo "Renode portable is now in ${RENODE_LOCATION}"
|
||||
echo ${RENODE_LOCATION} > ${CI_PROJECT_DIR}/renode-location
|
||||
pip install -r renode-portable/tests/requirements.txt > /dev/null
|
||||
return 0
|
||||
else
|
||||
echo "No package with version ${RENODE_VERSION} found! (failed to download package)"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
try_build() {
|
||||
echo "===[Trying to build Renode from sources]==="
|
||||
if [ -n "$GET_CUSTOM_RENODE_REVISION" ]; then
|
||||
eval $GET_CUSTOM_RENODE_REVISION
|
||||
else
|
||||
git clone https://github.com/renode/renode.git
|
||||
fi
|
||||
|
||||
cd renode
|
||||
RENODE_LOCATION=$(realpath .)
|
||||
echo "Renode sources are now in ${RENODE_LOCATION}"
|
||||
echo ${RENODE_LOCATION} > ${CI_PROJECT_DIR}/renode-location
|
||||
git checkout "${RENODE_VERSION}" || exit 1
|
||||
git submodule update --init --recursive || exit 1
|
||||
|
||||
git fetch --all 1>/dev/null 2>/dev/null
|
||||
|
||||
./build.sh --net 1>../renode-build.log 2>&1 || return $?
|
||||
pip install -r tests/requirements.txt > /dev/null
|
||||
|
||||
cd ..
|
||||
return 0
|
||||
}
|
||||
|
||||
if try_download; then
|
||||
echo "==[Downloaded Renode from packages]==="
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if try_build; then
|
||||
echo "===[Built Renode from source]==="
|
||||
touch "renode_from_source"
|
||||
if [ "$PUBLIC_MASTER" = true ]; then touch "renode_packageable_revision"; fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Unable to find or build a package for Renode version ${RENODE_VERSION}"
|
||||
exit 1
|
||||
Reference in New Issue
Block a user