Merge pull request #1114 from ucb-bar/check-for-tagged
Check that Chipyard is running a tagged release
This commit is contained in:
2
.github/scripts/remote-do-rtl-build.sh
vendored
2
.github/scripts/remote-do-rtl-build.sh
vendored
@@ -15,7 +15,7 @@ SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
|
|||||||
source $SCRIPT_DIR/defaults.sh
|
source $SCRIPT_DIR/defaults.sh
|
||||||
|
|
||||||
cd $REMOTE_CHIPYARD_DIR
|
cd $REMOTE_CHIPYARD_DIR
|
||||||
./scripts/init-submodules-no-riscv-tools.sh
|
./scripts/init-submodules-no-riscv-tools.sh --skip-validate
|
||||||
./scripts/init-fpga.sh
|
./scripts/init-fpga.sh
|
||||||
|
|
||||||
TOOLS_DIR=$REMOTE_RISCV_DIR
|
TOOLS_DIR=$REMOTE_RISCV_DIR
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export PATH="$RISCV/bin:$PATH"
|
|||||||
# This would generally be handled by build-setup.sh/firesim-setup.sh
|
# This would generally be handled by build-setup.sh/firesim-setup.sh
|
||||||
REMOTE_FIRESIM_SYSROOT=$REMOTE_FIRESIM_DIR/lib-install
|
REMOTE_FIRESIM_SYSROOT=$REMOTE_FIRESIM_DIR/lib-install
|
||||||
|
|
||||||
./scripts/init-submodules-no-riscv-tools.sh
|
./scripts/init-submodules-no-riscv-tools.sh --skip-validate
|
||||||
cd $REMOTE_CHIPYARD_DIR/sims/firesim/sim/firesim-lib/src/main/cc/lib
|
cd $REMOTE_CHIPYARD_DIR/sims/firesim/sim/firesim-lib/src/main/cc/lib
|
||||||
git submodule update --init elfutils libdwarf
|
git submodule update --init elfutils libdwarf
|
||||||
cd $REMOTE_CHIPYARD_DIR/sims/firesim
|
cd $REMOTE_CHIPYARD_DIR/sims/firesim
|
||||||
|
|||||||
@@ -1,7 +1,16 @@
|
|||||||
version: 2
|
version: 2
|
||||||
|
|
||||||
|
build:
|
||||||
|
os: ubuntu-20.04
|
||||||
|
tools:
|
||||||
|
python: "3.6"
|
||||||
|
|
||||||
formats: all
|
formats: all
|
||||||
|
|
||||||
sphinx:
|
sphinx:
|
||||||
configuration: docs/conf.py
|
configuration: docs/conf.py
|
||||||
|
fail_on_warning: true
|
||||||
|
|
||||||
python:
|
python:
|
||||||
install:
|
install:
|
||||||
- requirements: docs/requirements.txt
|
- requirements: docs/requirements.txt
|
||||||
|
|||||||
@@ -29,13 +29,17 @@ Setting up the Chipyard Repo
|
|||||||
|
|
||||||
Start by fetching Chipyard's sources. Run:
|
Start by fetching Chipyard's sources. Run:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. parsed-literal::
|
||||||
|
|
||||||
git clone https://github.com/ucb-bar/chipyard.git
|
git clone https://github.com/ucb-bar/chipyard.git
|
||||||
cd chipyard
|
cd chipyard
|
||||||
|
# checkout latest official chipyard release
|
||||||
|
# note: this may not be the latest release if the documentation version != "stable"
|
||||||
|
git checkout |version|
|
||||||
./scripts/init-submodules-no-riscv-tools.sh
|
./scripts/init-submodules-no-riscv-tools.sh
|
||||||
|
|
||||||
This will initialize and checkout all of the necessary git submodules.
|
This will initialize and checkout all of the necessary git submodules.
|
||||||
|
This will also validate that you are on a tagged branch, otherwise it will prompt for confirmation.
|
||||||
|
|
||||||
When updating Chipyard to a new version, you will also want to rerun this script to update the submodules.
|
When updating Chipyard to a new version, you will also want to rerun this script to update the submodules.
|
||||||
Using git directly will try to initialize all submodules; this is not recommended unless you expressly desire this behavior.
|
Using git directly will try to initialize all submodules; this is not recommended unless you expressly desire this behavior.
|
||||||
|
|||||||
44
docs/conf.py
44
docs/conf.py
@@ -20,6 +20,8 @@
|
|||||||
# import sys
|
# import sys
|
||||||
# sys.path.insert(0, os.path.abspath('.'))
|
# sys.path.insert(0, os.path.abspath('.'))
|
||||||
|
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
# -- General configuration ------------------------------------------------
|
# -- General configuration ------------------------------------------------
|
||||||
|
|
||||||
@@ -59,11 +61,32 @@ author = u'Berkeley Architecture Research'
|
|||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
|
||||||
# The short X.Y version.
|
on_rtd = os.environ.get("READTHEDOCS") == "True"
|
||||||
version = u''
|
if on_rtd:
|
||||||
# The full version, including alpha/beta/rc tags.
|
for item, value in os.environ.items():
|
||||||
release = u''
|
print("[READTHEDOCS] {} = {}".format(item, value))
|
||||||
|
|
||||||
|
if on_rtd:
|
||||||
|
rtd_version = os.environ.get("READTHEDOCS_VERSION")
|
||||||
|
if rtd_version == "latest":
|
||||||
|
version = "main" # TODO: default to what "latest" points to
|
||||||
|
elif rtd_version == "stable":
|
||||||
|
# get the latest git tag (which is what rtd normally builds under "stable")
|
||||||
|
# this works since rtd builds things within the repo
|
||||||
|
process = subprocess.Popen(["git", "describe", "--exact-match", "--tags"], stdout=subprocess.PIPE)
|
||||||
|
output = process.communicate()[0].decode("utf-8").strip()
|
||||||
|
if process.returncode == 0:
|
||||||
|
version = output
|
||||||
|
else:
|
||||||
|
version = "v?.?.?" # this should not occur as "stable" is always pointing to tagged version
|
||||||
|
else:
|
||||||
|
version = rtd_version # name of a branch
|
||||||
|
else:
|
||||||
|
version = "v?.?.?"
|
||||||
|
|
||||||
|
# for now make these match
|
||||||
|
release = version
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
@@ -132,6 +155,17 @@ html_logo = '_static/images/chipyard-logo.png'
|
|||||||
# Output file base name for HTML help builder.
|
# Output file base name for HTML help builder.
|
||||||
htmlhelp_basename = 'Chipyarddoc'
|
htmlhelp_basename = 'Chipyarddoc'
|
||||||
|
|
||||||
|
# -- Misc Options ---------------------------------------------------------
|
||||||
|
|
||||||
|
html_context = {
|
||||||
|
"version": version
|
||||||
|
}
|
||||||
|
|
||||||
|
# add rst to end of each rst source file
|
||||||
|
# can put custom strings here that are generated from this file
|
||||||
|
rst_epilog = f"""
|
||||||
|
.. |overall_version| replace:: {version}
|
||||||
|
"""
|
||||||
|
|
||||||
# -- Options for LaTeX output ---------------------------------------------
|
# -- Options for LaTeX output ---------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
.. Chipyard documentation master file, created by
|
Welcome to Chipyard's documentation (version "|version|")!
|
||||||
sphinx-quickstart on Fri Mar 8 11:46:38 2019.
|
==========================================================
|
||||||
You can adapt this file completely to your liking, but it should at least
|
|
||||||
contain the root `toctree` directive.
|
|
||||||
|
|
||||||
Welcome to Chipyard's documentation!
|
|
||||||
====================================
|
|
||||||
|
|
||||||
.. image:: ./_static/images/chipyard-logo.svg
|
.. image:: ./_static/images/chipyard-logo.svg
|
||||||
|
|
||||||
|
|||||||
@@ -13,5 +13,5 @@ cd "${scripts_dir}/.."
|
|||||||
# Reenable the FireSim submodule
|
# Reenable the FireSim submodule
|
||||||
git config --unset submodule.sims/firesim.update || true
|
git config --unset submodule.sims/firesim.update || true
|
||||||
cd sims/firesim
|
cd sims/firesim
|
||||||
./build-setup.sh "$@" --library
|
./build-setup.sh "$@" --library --skip-validate
|
||||||
cd "$RDIR"
|
cd "$RDIR"
|
||||||
|
|||||||
@@ -4,6 +4,34 @@
|
|||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
SKIP_VALIDATE=false
|
||||||
|
|
||||||
|
function usage
|
||||||
|
{
|
||||||
|
echo "Usage: $0 [--skip-validate]"
|
||||||
|
echo "Initialize Chipyard submodules and setup initial env.sh script."
|
||||||
|
echo ""
|
||||||
|
echo " --skip-validate Skip prompt checking for tagged release"
|
||||||
|
}
|
||||||
|
|
||||||
|
while test $# -gt 0
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
--skip-validate)
|
||||||
|
SKIP_VALIDATE=true;
|
||||||
|
;;
|
||||||
|
-h | -H | --help)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*) echo "ERROR: bad argument $1"
|
||||||
|
usage
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
# Check that git version is at least 1.7.8
|
# Check that git version is at least 1.7.8
|
||||||
MYGIT=$(git --version)
|
MYGIT=$(git --version)
|
||||||
MYGIT=${MYGIT#'git version '} # Strip prefix
|
MYGIT=${MYGIT#'git version '} # Strip prefix
|
||||||
@@ -17,6 +45,21 @@ if [ "$MINGIT" != "$(echo -e "$MINGIT\n$MYGIT" | sort -V | head -n1)" ]; then
|
|||||||
false
|
false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# before doing anything verify that you are on a release branch/tag
|
||||||
|
set +e
|
||||||
|
tag=$(git describe --exact-match --tags)
|
||||||
|
tag_ret_code=$?
|
||||||
|
set -e
|
||||||
|
if [ $tag_ret_code -ne 0 ]; then
|
||||||
|
if [ "$SKIP_VALIDATE" = false ]; then
|
||||||
|
read -p "WARNING: You are not on an official release of Chipyard.\nType \"y\" to continue if this is intended, otherwise see https://chipyard.readthedocs.io/en/stable/Chipyard-Basics/Initial-Repo-Setup.html#setting-up-the-chipyard-repo: " validate
|
||||||
|
[[ $validate == [yY] ]] || exit 3
|
||||||
|
echo "Setting up non-official Chipyard release"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Setting up official Chipyard release: $tag"
|
||||||
|
fi
|
||||||
|
|
||||||
# On macOS, use GNU readlink from 'coreutils' package in Homebrew/MacPorts
|
# On macOS, use GNU readlink from 'coreutils' package in Homebrew/MacPorts
|
||||||
if [ "$(uname -s)" = "Darwin" ] ; then
|
if [ "$(uname -s)" = "Darwin" ] ; then
|
||||||
READLINK=greadlink
|
READLINK=greadlink
|
||||||
|
|||||||
Reference in New Issue
Block a user