1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/usr/bin/env bash
-
- echo "This script will attempt to build Marlin for all known configurations."
- echo "In case of failure, the current configuration remains in your repository."
- echo "To revert to your current version, run 'git checkout -f'."
-
- self=`basename "$0"`
- HERE=`dirname "$0"`
-
- # Check dependencies
- which curl 1>/dev/null 2>&1 || { echo "curl not found, please install it"; exit ; }
- which git 1>/dev/null 2>&1 || { echo "git not found, please install it"; exit ; }
- if [ -z "$1" ]; then
- echo ""
- echo "ERROR: "
- echo " Expected parameter: $self base_branch [resume_point]"
- echo " with:"
- echo " base_branch The branch in the Configuration repository to use"
- echo " resume_point If not empty, resume building from this board"
-
- exit
- fi
-
- # Check if called in the right folder
- if [ ! -e "Marlin/src" ]; then
- echo "This script must be called from the root folder of a Marlin repository, please navigate to this folder and call:"
- echo "buildroot/ci-check/$self $1"
- exit
- fi
-
- # Check if the current repository has unmerged changes
- if [ -z "$2" ]; then
- git diff --quiet || { echo "Your current repository is not clean. Either commit your change or stash them, and re-run this script"; exit ; }
- else
- echo "Resuming from $2"
- fi
-
- TMPDIR=`mktemp -d`
-
- # Ok, let's do our stuff now
- # First extract the current temporary folder
- echo "Fetching configuration repository"
- if [ ! -e "$TMPDIR/README.md" ]; then
- git clone --single-branch --branch "$1" https://github.com/MarlinFirmware/Configurations.git "$TMPDIR" || { echo "Failed to clone the configuration repository"; exit ; }
- rm -r $TMPDIR/.git
- fi
-
- echo
- echo "Start building now..."
- echo "====================="
- shopt -s nullglob
- for config in $TMPDIR/config/examples/*/; do
- [ -d "${config}" ] || continue
- base=`basename "$config"`
- if [ ! -z "$2" ] && [ "$2" != "$base" ]; then
- echo "Skipping $base..."
- continue
- fi
- "$HERE/build_example" "internal" "$TMPDIR" "$base" || { echo "Failed to build $base"; exit ; }
- done
-
- rm -r "$TMPDIR"
|