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

[Build] Simplify bootstrapping of I-build tests and fetch configuration files directly from git #2609

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

HannesWell
Copy link
Member

@HannesWell HannesWell commented Nov 30, 2024

Instead of fetching the test-configuration files from eclipse.downloads and push it there in each I-build, simply get the test-configuration files directly from the eclipse.platform.releng.aggregator git repository, using partial-clones for improved performance:

This avoids the need to pack and upload the test-configuration zip-file and also simplifies fetching the test-configuration for other branches, like maintenance branches or to test changes.

This also removes from the getEBuilder.xml ant script the possibility to download the test-configuration zip file and to use a local zip.
Furthermore this removes from the I-/Y-builds the creation and publication of the test-configuration zip-file.

As a consequence remove the definitions of the properties EBUILDER_HASH and downloadURL that are not necessary anymore to be passed to the getEBuilder ant-script. And remove the eclipseStream property that now can be computed by the 'getEBuilder' ant-script.
Also rename the folder containing the getEBuilder.xml from to just bootstrap since Hudson is not used anymore.

@HannesWell
Copy link
Member Author

Does anyone know where exactly the push of the folder
https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/tree/master/production
to https://download.eclipse.org/eclipse/relengScripts/production/ happens?
When searching this repository for relengScripts, I didn't found a corresponding location.

@HannesWell HannesWell force-pushed the simplify-test-bootstrap branch 4 times, most recently from 08aeae3 to f6f63e4 Compare November 30, 2024 23:22
@HannesWell HannesWell marked this pull request as draft November 30, 2024 23:47
@HannesWell
Copy link
Member Author

I requested from the infra-team to install git on all test machines, which is a prerequisite for this change:

@HannesWell
Copy link
Member Author

With the latest unification of Y-build-tests and smoke tests this now required many files less to adjust.
I'll have to run a few final verification tests, but this is getting close to completion.

@HannesWell HannesWell force-pushed the simplify-test-bootstrap branch from 780400b to 6b59311 Compare December 6, 2024 00:28
@HannesWell
Copy link
Member Author

And can anybody tell which job or part (maybe of the I-build?) transfers the content of
https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/tree/e9fa506d45f771d882d38eb6b79caa804491d733/production
into https://download.eclipse.org/eclipse/relengScripts/production/ ?
Looking at the modification times displayed at the file-server, it looks like it happens less frequently than an I-build.

Once that job/step is identified and this is submitted, I think it should be stopped and the current content should be deleted.
Or are there consumers, like maintenance-builds that cannot be migrated to the new source? I.e. using just
curl -o getEBuilder.xml https://raw.githubusercontent.com/eclipse-platform/eclipse.platform.releng.aggregator/refs/heads/master/production/testScripts/bootstrap/getEBuilder.xml

@MohananRahul
Copy link
Contributor

And can anybody tell which job or part (maybe of the I-build?) transfers the content of https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/tree/e9fa506d45f771d882d38eb6b79caa804491d733/production into https://download.eclipse.org/eclipse/relengScripts/production/ ? Looking at the modification times displayed at the file-server, it looks like it happens less frequently than an I-build.

Once that job/step is identified and this is submitted, I think it should be stopped and the current content should be deleted. Or are there consumers, like maintenance-builds that cannot be migrated to the new source? I.e. using just curl -o getEBuilder.xml https://raw.githubusercontent.com/eclipse-platform/eclipse.platform.releng.aggregator/refs/heads/master/production/testScripts/bootstrap/getEBuilder.xml

I found a scheduled Job https://ci.eclipse.org/releng/job/Publish_shell_scripts_for_releng_jobs/ which publish scripts.

@akurtakov
Copy link
Member

Please keep in mind https://bugs.eclipse.org/bugs/show_bug.cgi?id=578862#c1 . This rate limit is what forced us to copy scripts to download - to not hit the download limit.

@HannesWell
Copy link
Member Author

I found a scheduled Job https://ci.eclipse.org/releng/job/Publish_shell_scripts_for_releng_jobs/ which publish scripts.

Thanks! That looks promising.

Please keep in mind https://bugs.eclipse.org/bugs/show_bug.cgi?id=578862#c1 . This rate limit is what forced us to copy scripts to download - to not hit the download limit.

That's of course a problem. Especially since we cannot control what other projects do. But I see multiple solutions:

  • continue to put to put just the getEBuilder script at downloads.eclipse
  • check weather the rate-limit can be increased since the EF now has a GH Enterprise account? @fredg02 can you tell this?
  • stash/archive the getEBuilder.xml in the triggering Jenkins job and retrieve it from there.

@fredg02
Copy link
Contributor

fredg02 commented Dec 6, 2024

check weather the rate-limit can be increased since the EF now has a GH Enterprise account? @fredg02 can you tell this?

GitHub is generally quite shy about their rate-limiting. See github/docs#8031, for example.

In your case, I would suggest trying authenticated calls as described in https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/912#note_570713.

@HannesWell
Copy link
Member Author

I found a scheduled Job https://ci.eclipse.org/releng/job/Publish_shell_scripts_for_releng_jobs/ which publish scripts.

I have now created #2645 to perform the deployment as part of the master branch build, similar to the deployment of the parent-pom.

In your case, I would suggest trying authenticated calls as described in https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/912#note_570713.

Thanks for that hint. That would be an option, but since I would also like to keep it simple at the caller side I think we should just continue with the Eclipse download-server approach, probably reducing the number of stored files to the necessary minimum. And with #2645, maintaining that space should be simpler and better to understand.

HannesWell added a commit to HannesWell/eclipse.platform.releng.aggregator that referenced this pull request Dec 17, 2024
HannesWell added a commit to HannesWell/eclipse.platform.releng.aggregator that referenced this pull request Dec 17, 2024
@HannesWell HannesWell force-pushed the simplify-test-bootstrap branch from 6b59311 to 6c79cc1 Compare December 18, 2024 00:42
@HannesWell
Copy link
Member Author

I would also like to keep it simple at the caller side I think we should just continue with the Eclipse download-server approach, probably reducing the number of stored files to the necessary minimum. And with #2645, maintaining that space should be simpler and better to understand.

Now that #2645 is available I have implemented it and took the opportunity of the rename to shorten the path to the getEBuilder.xml script and made the deployment more fine-grained, i.e. skip not necessary files. I assume that on maintenance branches the tests are not executed.
But I have to test that it works as desired.

Additionally this also needs the following change, respectively the part of it to install git into the docker-images:

Once that's submitted, this should be ready after a final round of testing.

HannesWell added a commit to HannesWell/eclipse.platform.releng.aggregator that referenced this pull request Dec 18, 2024
HannesWell added a commit that referenced this pull request Dec 18, 2024
Instead of fetching the test-configuration files from eclipse.downloads
and push it there in each I-build, simply get the test-configuration
files directly from the eclipse.platform.releng.aggregator git
repository, using partial-clones for improved performance:
- https://git-scm.com/docs/partial-clone
- https://github.blog/open-source/git/get-up-to-speed-with-partial-clone-and-shallow-clone/

This avoids the need to pack and upload the test-configuration zip-file
and also simplifies fetching the test-configuration for other branches,
like maintenance branches or to test changes.

This also removes from the getEBuilder.xml ant script the possibility to
download the test-configuration zip file and to use a local zip.

Furthermore this removes from the I-/Y-builds the creation and
publication of the test-configuration zip-file.
@HannesWell HannesWell force-pushed the simplify-test-bootstrap branch from 6c79cc1 to e107b2e Compare December 18, 2024 23:44
Remove the definitions of the properties 'EBUILDER_HASH' and
'downloadURL', which are not necessary anymore to be passed to the
'getEBuilder' ant-script. And remove the 'eclipseStream' property that
now can be computed by the 'getEBuilder' ant-script.
Also rename the folder containing the getEBuilder.xml from to just
'bootstrap' since Hudson is not used anymore and simplify the path to
the getEBuilderxml at the download server.
@HannesWell HannesWell force-pushed the simplify-test-bootstrap branch from e107b2e to 581bf07 Compare December 18, 2024 23:46
@HannesWell HannesWell marked this pull request as ready for review December 18, 2024 23:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants