Skip to content

Commit eafbe71

Browse files
committed
Added check for mismatching core release (AVR bundle)
Now adding a "-Drevision.check=enforce" to the "dist" task of ant will cause the build script to fail if the bundled AVR core doesn't match the latest available from library manager. Fix #4633
1 parent 576ac3c commit eafbe71

File tree

1 file changed

+42
-4
lines changed

1 file changed

+42
-4
lines changed

build/build.xml

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,46 @@
234234
<!-- - - - - - - - - -->
235235
<!-- Revision check -->
236236
<!-- - - - - - - - - -->
237-
<target name="revision-check">
238-
<!-- figure out the revision number -->
237+
<target name="revision-check" depends="package-library-index-json-bundle">
238+
239+
<!-- figure out the AVR core version number in platform.txt -->
240+
<loadfile srcfile="../hardware/arduino/avr/platform.txt" property="revision.avr.platform">
241+
<filterchain>
242+
<tokenfilter>
243+
<linetokenizer />
244+
<containsregex pattern="version="/>
245+
<replaceregex pattern="version=(.*)" flags="g" replace="\1"/>
246+
</tokenfilter>
247+
</filterchain>
248+
</loadfile>
249+
250+
<!-- figure out the latest AVR core version number in package_index.json -->
251+
<loadfile srcfile="${staging_folder}/work/${staging_hardware_folder}/../dist/package_index.json" property="revision.avr.index">
252+
<filterchain>
253+
<tokenfilter>
254+
<linetokenizer />
255+
<containsregex pattern="archiveFileName.*avr-......tar.bz2"/>
256+
<replaceregex pattern=".*avr-(.*).tar.bz2.*" flags="g" replace="\1"/>
257+
</tokenfilter>
258+
<tailfilter lines="1"/>
259+
</filterchain>
260+
</loadfile>
261+
262+
<echo message="AVR Arduino core version in platform.txt is: ${revision.avr.platform}" />
263+
<echo message=" latest in index.json is: ${revision.avr.index}" />
264+
<condition property="revision.avr.ok">
265+
<or>
266+
<!-- fail build if -Drevision.check=enforce is set -->
267+
<not><equals arg1="${revision.check}" arg2="enforce"/></not>
268+
<equals arg1="${revision.avr.index}" arg2="${revision.avr.platform}"/>
269+
</or>
270+
</condition>
271+
<fail unless="revision.avr.ok">
272+
Mismatching versions for bundled AVR core and package_index.json.
273+
Please check your platform.txt and package_index.json.
274+
</fail>
275+
276+
<!-- figure out the IDE version number -->
239277
<loadfile srcfile="shared/revisions.txt" property="revision">
240278
<filterchain>
241279
<ignoreblank />
@@ -251,9 +289,8 @@
251289
</tokenfilter>
252290
</filterchain>
253291
</loadfile>
254-
<echo message="Latest revision detected in shared/revision.txt is: ${revision}" />
255292

256-
<!-- figure out the revision number in base.java -->
293+
<!-- figure out the IDE version number in base.java -->
257294
<loadfile srcfile="../arduino-core/src/processing/app/BaseNoGui.java"
258295
property="revision.base">
259296
<filterchain>
@@ -264,6 +301,7 @@
264301
</tokenfilter>
265302
</filterchain>
266303
</loadfile>
304+
<echo message="Latest revision detected in shared/revision.txt is: ${revision}" />
267305
<echo message=" Revision in BaseNoGui.java is: ${revision.base}" />
268306
</target>
269307

0 commit comments

Comments
 (0)