travis: Reject changes to tools

As part of freezing the current tools, reject any changes to tools that
would require a re-release of the tools for the online compiler. This is
to free up our effort on existing tool releases which are very error
prone, time consuming, and labor intensive, so we can focus on
developing a far more maintainable set of tools.

As the online compiler contains a copy of the whole mbed-os folder, it
is not clear which parts of mbed-os are actually used. This change
estimates the dependency between the online compiler, online IDE, and
Mbed OS by searching for "from tools" in Python code in the os.mbed.com
repo
(https://github.com/ARMmbed/os.mbed.com/search?q=%22from+tools%22&unscoped_q=%22from+tools%22)

For further context and explanation on why we've frozen the legacy
tools, please see the blog post at
https://os.mbed.com/blog/entry/Introducing-the-new-Mbed-Tools/
pull/13349/head
Jaeden Amero 2020-07-24 15:05:15 +01:00
parent 5ea51596ac
commit a18a7391a5
1 changed files with 28 additions and 0 deletions

View File

@ -176,6 +176,34 @@ matrix:
find -name "*.s" | tee BUILD/badasm |
sed -e "s/^/Bad Assembler file name found: /" && [ ! -s BUILD/badasm ]
- <<: *docs-vm
name: "Frozen tools check"
env: NAME=frozen_tools_check
script:
# Reject any changes to tools that would require a re-release of the
# tools for the online compiler.
- >-
frozen_files=`\
git diff --name-only --diff-filter=d FETCH_HEAD..HEAD \
| egrep \
-e "^tools/build_api*" \
-e "^tools/config*" \
-e "^tools/export*" \
-e "^tools/notifier*" \
-e "^tools/paths*" \
-e "^tools/resources*" \
-e "^tools/targets*" \
-e "^tools/toolchains*" \
-e "^tools/utils*" \
-e "^$"`
if [ -z "$frozen_files" ]; then
echo "Success!";
else
echo -e "Failure: Frozen files were modified\n$frozen_files";
echo -e "Please see https://os.mbed.com/blog/entry/Introducing-the-new-Mbed-Tools/" \
"\nfor why we've frozen the legacy tools.";
false;
fi
### Python Tests ###
- &pytools-vm