-
Notifications
You must be signed in to change notification settings - Fork 538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace uses of CONFIGURATIONS by CONFIGURATION #2325
Conversation
Looks like we missed a spot, and it's trying to use |
Makefile
Outdated
(cd $(call GetPath,JavaInterop) && make prepare CONFIGURATION=$(conf) JI_MAX_JDK=8) && \ | ||
(cd $(call GetPath,JavaInterop) && make bin/Build$(conf)/JdkInfo.props CONFIGURATION=$(conf) JI_MAX_JDK=8) && ) \ | ||
true | ||
(cd external/xamarin-android-tools && make prepare CONFIGURATION=$(CONFIGURATION)) && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's no longer a need for \
/line continuation. These can all be separate invocations, and let make
bail whenever any command fails.
@@ -80,8 +80,6 @@ _MSBUILD_ARGS = \ | |||
/p:AndroidSupportedHostJitAbis=$(call join-with,:,$(ALL_HOST_ABIS)) \ | |||
/p:AndroidSupportedTargetAotAbis=$(call join-with,:,$(ALL_AOT_ABIS)) | |||
|
|||
CONFIGURATIONS ?= Debug Release | |||
|
|||
.PHONY: leeroy jenkins leeroy-all opentk-jcw framework-assemblies |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The build failed because the leeroy
rule was building both configurations before and Jenkins uses jenkins
rule, which depends on leeroy
.
So we need to either let jenkins
rule to run leeroy
twice or change the Jenkins configuration to run make jenkins ...
twice.
Now the Jenkins build ran make in this order:
+ make prepare-deps V=1 'MSBUILD_ARGS=/p:AutoProvision=True /p:AutoProvisionUsesSudo=True /p:IgnoreMaxMonoVersion=False'
+ make prepare jenkins V=1 'MSBUILD_ARGS=/p:AutoProvision=True /p:AutoProvisionUsesSudo=True /p:IgnoreMaxMonoVersion=False'
+ make all-tests V=1
+ make all-tests CONFIGURATION=Release V=1
So the tests in the Release configuration were ran without making prepare
and all
in Release configuration first.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we'll need to update Jenkins to run make leeroy
twice, once per configuration value.
@radekdoulik: Thank you, I hadn't considered that problem. Doh!
I've updated the PR builder so that it explicitly builds for both configurations separately. Hopefully things will now work. |
_sl="$(ZIP_OUTPUT_BASENAME)/bin/$(CONFIGURATION)/lib/xamarin.android/xbuild/.__sys_links.txt"; \ | ||
if [ ! -f "$$_sl" ]; then continue; fi; \ | ||
for f in `cat $$_sl` ; do \ | ||
echo "$(ZIP_OUTPUT_BASENAME)/bin/$CONFIGURATION/lib/xamarin.android/xbuild/$$f" >> "$$_exclude_list"; \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like a typo here: $CONFIGURATION
vs $(CONFIGURATION)
.
(cd $(call GetPath,JavaInterop) && make prepare CONFIGURATION=$(conf) JI_MAX_JDK=8) && \ | ||
(cd $(call GetPath,JavaInterop) && make bin/Build$(conf)/JdkInfo.props CONFIGURATION=$(conf) JI_MAX_JDK=8) && ) \ | ||
true | ||
(cd external/xamarin-android-tools && make prepare CONFIGURATION=$(CONFIGURATION)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can remove these CONFIGURATION=$(CONFIGURATION)
.
$(call MSBUILD_BINLOG,leeroy-all,$(_SLN_BUILD),$(conf)) $(SOLUTION) /p:Configuration=$(conf) $(_MSBUILD_ARGS) && \ | ||
$(call CREATE_THIRD_PARTY_NOTICES,$(conf),bin/$(conf)/lib/xamarin.android/ThirdPartyNotices.txt,$(THIRD_PARTY_NOTICE_LICENSE_TYPE),True,False) && ) \ | ||
true | ||
$(call MSBUILD_BINLOG,leeroy-all,$(_SLN_BUILD),$(CONFIGURATION)) $(SOLUTION) /p:Configuration=$(CONFIGURATION) $(_MSBUILD_ARGS) && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could simplify MSBUILD_BINLOG
to not take $(CONFIGURATION)
as a parameter, and simply use it in the template directly.
$(call CREATE_THIRD_PARTY_NOTICES,$(conf),bin/$(conf)/lib/xamarin.android/ThirdPartyNotices.txt,$(THIRD_PARTY_NOTICE_LICENSE_TYPE),True,False) && ) \ | ||
true | ||
$(call MSBUILD_BINLOG,leeroy-all,$(_SLN_BUILD),$(CONFIGURATION)) $(SOLUTION) /p:Configuration=$(CONFIGURATION) $(_MSBUILD_ARGS) && \ | ||
$(call CREATE_THIRD_PARTY_NOTICES,$(CONFIGURATION),bin/$(CONFIGURATION)/lib/xamarin.android/ThirdPartyNotices.txt,$(THIRD_PARTY_NOTICE_LICENSE_TYPE),True,False) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-pr-builder/configure, you still have |
No description provided.