Allow complete ignoring of submodule

Used by the parent build infrastructure
This commit is contained in:
Joshua Boniface 2019-03-05 23:27:17 -05:00
parent 9f6bca3658
commit a994edda04

30
build
View File

@ -26,7 +26,7 @@ usage() {
echo -e " $ build [-k/--keep-artifacts] [-b/--web-branch <web_branch>] <platform> <action>" echo -e " $ build [-k/--keep-artifacts] [-b/--web-branch <web_branch>] <platform> <action>"
echo -e "" echo -e ""
echo -e "The 'keep-artifacts' option preserves build artifacts, e.g. Docker images for system package builds." echo -e "The 'keep-artifacts' option preserves build artifacts, e.g. Docker images for system package builds."
echo -e "The web_branch defaults to the same branch name as the current main branch." echo -e "The web_branch defaults to the same branch name as the current main branch or can be 'local' to not touch the submodule branching."
echo -e "To build all platforms, use 'all'." echo -e "To build all platforms, use 'all'."
echo -e "To perform all build actions, use 'all'." echo -e "To perform all build actions, use 'all'."
echo -e "Build output files are collected at '../jellyfin-build/<platform>'." echo -e "Build output files are collected at '../jellyfin-build/<platform>'."
@ -164,37 +164,39 @@ for target_platform in ${platform[@]}; do
fi fi
done done
# Initialize submodules if [[ ${web_branch} != 'local' ]]; then
git submodule update --init --recursive # Initialize submodules
git submodule update --init --recursive
# configure branch # configure branch
pushd MediaBrowser.WebDashboard/jellyfin-web pushd MediaBrowser.WebDashboard/jellyfin-web
if ! git diff-index --quiet HEAD --; then if ! git diff-index --quiet HEAD --; then
popd popd
echo echo
echo "ERROR: Your 'jellyfin-web' submodule working directory is not clean!" echo "ERROR: Your 'jellyfin-web' submodule working directory is not clean!"
echo "This script will overwrite your unstaged and unpushed changes." echo "This script will overwrite your unstaged and unpushed changes."
echo "Please do development on 'jellyfin-web' outside of the submodule." echo "Please do development on 'jellyfin-web' outside of the submodule."
exit 1 exit 1
fi fi
git fetch --all git fetch --all
# If this is an official branch name, fetch it from origin # If this is an official branch name, fetch it from origin
official_branches_regex="^master$|^dev$|^release-.*$|^hotfix-.*$" official_branches_regex="^master$|^dev$|^release-.*$|^hotfix-.*$"
if [[ ${web_branch} =~ ${official_branches_regex} ]]; then if [[ ${web_branch} =~ ${official_branches_regex} ]]; then
git checkout origin/${web_branch} || { git checkout origin/${web_branch} || {
echo "ERROR: 'jellyfin-web' branch 'origin/${web_branch}' is invalid." echo "ERROR: 'jellyfin-web' branch 'origin/${web_branch}' is invalid."
exit 1 exit 1
} }
# Otherwise, just check out the local branch (for testing, etc.) # Otherwise, just check out the local branch (for testing, etc.)
else else
git checkout ${web_branch} || { git checkout ${web_branch} || {
echo "ERROR: 'jellyfin-web' branch '${web_branch}' is invalid." echo "ERROR: 'jellyfin-web' branch '${web_branch}' is invalid."
exit 1 exit 1
} }
fi
popd
fi fi
popd
# Execute each platform and action in order, if said action is enabled # Execute each platform and action in order, if said action is enabled
pushd deployment/ pushd deployment/