Skip to content
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

[MNG-7864] Fix the S390x to use IT branches #1239

Closed
wants to merge 1 commit into from

Conversation

vivkong
Copy link
Contributor

@vivkong vivkong commented Sep 11, 2023

JIRA issue: https://issues.apache.org/jira/browse/MNG-7864

This should allow integration testing on s390x to use the appropriate IT branches.

@elharo @gnodet would you mind reviewing this? Thanks! I appreciate any help to get it set up in Jenkins so s390x builds can be run again.


Following this checklist to help us incorporate your
contribution quickly and easily:

  • Make sure there is a JIRA issue filed
    for the change (usually before you start working on it). Trivial changes like typos do not
    require a JIRA issue. Your pull request should address just this issue, without
    pulling in other changes.
  • Each commit in the pull request should have a meaningful subject line and body.
  • Format the pull request title like [MNG-XXX] SUMMARY,
    where you replace MNG-XXX and SUMMARY with the appropriate JIRA issue.
  • Also format the first line of the commit message like [MNG-XXX] SUMMARY.
    Best practice is to use the JIRA issue title in both the pull request title and in the first line of the commit message.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Run mvn clean verify to make sure basic checks pass. A more thorough check will
    be performed on your pull request automatically.
  • You have run the Core IT successfully.

If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

}
parameters {
string( defaultValue: 'master', description: 'Core Its branch (default master)',
name: 'ITS_BRANCH' )
Copy link
Contributor

@gnodet gnodet Sep 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the actual value for this parameter ? It should be computed, but I don't really see any computation in this file. See the computation for GitHub actions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your review. I used the existing Jenkinsfile.its file as a reference and assumed the parameter is set when the Jenkins build is kicked off (as I cannot access the Jenkins configuration). I don't expect s390x builds to be run with Github actions as there's no s390x support for Github actions at this moment. How does the Jenkins build get triggered with each PR? I cannot find information on this and would appreciate any pointers. Thanks.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not imply to go through GitHub actions, but maybe the shell script from the GitHub action could be reused somehow in the Jenkins pipeline in order to find the correct remote repository + branch to use.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see the existing Jenkinsfile.its was added by @olamy. @olamy can you please help answer this - how does the ITS_BRANCH variable get computed? And how is integration test triggered for Jenkins builds? Thanks.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I can see with this commit bcfea09 the file has been by @kun-lu20

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm referring to this commit (b3e3972, PR: #355 ) that added the original Jenkinsfile.its.

Copy link
Contributor

@elharo elharo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bleah, I set the workflow to run but it won't run this workflow until it's committed so we can't see if it works. Might have to commit and rollback if it doesn't. less than ideal I know

@vivkong
Copy link
Contributor Author

vivkong commented Sep 14, 2023

Thanks @ elharo.
It looks like for PR checks on Jenkins, the current Jenkins build setup would always run integration test with master branch of maven-integration-testing on amd64 (for example, see https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven/view/change-requests/job/PR-1241/1/). This same setup was done for s390x before the Jenkinsfile.s390x file got removed.

May I suggest that we only run nightly builds for s390x against maven and maven-integration-testing repos once all the changes have been committed/settled. Probably simplest will be to reinstate the Jenkinsfile.s390x file and disable PR checks in https://ci-maven.apache.org/job/Maven/job/Maven%20Core%20s390x/? Let me know your thoughts.

@gnodet
Copy link
Contributor

gnodet commented Sep 14, 2023

Thanks @ elharo. It looks like for PR checks on Jenkins, the current Jenkins build setup would always run integration test with master branch of maven-integration-testing on amd64 (for example, see https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven/view/change-requests/job/PR-1241/1/). This same setup was done for s390x before the Jenkinsfile.s390x file got removed.

May I suggest that we only run nightly builds for s390x against maven and maven-integration-testing repos once all the changes have been committed/settled. Probably simplest will be to reinstate the Jenkinsfile.s390x file and disable PR checks in https://ci-maven.apache.org/job/Maven/job/Maven%20Core%20s390x/? Let me know your thoughts.

The problem is really with PRs that use a custom IT branch, so nightly builds for the master branch would be fine with me.

stages {
stage("Build Maven Core") {
steps {
withEnv(["JAVA_HOME=${ tool "ibm-semeru-8u362-b09" }", "PATH+MAVEN=${tool 'Maven 3.6.3'}/bin:${env.JAVA_HOME}/bin"]) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is 3.6.3 what we're really using? Looks like other ITs are somewhere in 3.8 right now

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right. I see on the main Jenkinsfile it should be 3.8.x.

We won't need this new Jenkinsfile.s390x.its file if s390x builds are run nightly or for commits only (no PR checks) (Please see #1239 (comment)).

If that's ok with you then I can either a) create a new PR or b) reuse this PR to reinstate the Jenkinsfile.s390x that was previously removed. Will need help with disabling PR checks in https://ci-maven.apache.org/job/Maven/job/Maven%20Core%20s390x/ as I have no access to Jenkins configuration. Please let me know. Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@elharo, your thoughts on adding Jenkinsfile.s390x back and disable PR checks on s390x? (Please see #1239 (comment)).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have any particular opinion about that. As long as tests are passing, I'm OK with whatever setup works best. I just want to avoid the situation we got into earlier where the S390x build was broken and blocking work, and no one was addressing it. I don't think anyone here not from IBM has the resources to debug an S390 specific problem. We have enough trouble figuring out what's going on when a test fails only on Windows. I'm also leery of IT failures that happen because test setup or verification isn't configured properly for some particular platform, rather than an actual bug in the maven product. I think we've all burned a lot of hours debugging those kinds of "failures".

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the job here has been configured to run only on master https://ci-maven.apache.org/job/Maven/job/Maven%20Core%20s390x/
by the way gh checks were disable.
so this job was not doing any spam except the person registered to received emails. And he asked to do so.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @olamy. Does this mean I can close this PR for Jenkinsfile.s390x.its as PR checks won't run on s390x?

I will create another PR to bring back Jenkinsfile.s390x.

@slawekjaranowski
Copy link
Member

Please look #1263 I select branch name for ITs based on branch. used for build or PR.
There is possible that branch will be not exist in ITs so you need a fallback to checkout master branch.

@vivkong
Copy link
Contributor Author

vivkong commented Oct 5, 2023

Closing this as #1266 has been merged. Thanks.

@vivkong vivkong closed this Oct 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants