Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Conditional build: do we need to rebuild the full ATH for all Renovabot / Dependabot PRs? #1167

Open
dduportal opened this issue May 11, 2023 · 5 comments

Comments

@dduportal
Copy link
Collaborator

As per jenkins-infra/helpdesk#3551 (comment), the Infra team would like to control the costs on ci.jenkins.io.

We saw a lot of builds (using a LOT of highmem VM agents) for PR changing Dockerfile dependencies such as #1164 or #1149.

At first sight, it seems a waste to execute the whole ATH for such small changes. Is there any means today to conditionnaly build?

Also, it does not look a good idea to run the ATH on ci.jenkins.io if a PR changes the file src/main/resources/ath-container/Dockerfile: it's built by infra.ci and pushed to the DockerHub.

@dduportal dduportal changed the title Conditionnal build: do we need to rebuild the full ATH for all Renovabot / Dependanbot PRs? Conditional build: do we need to rebuild the full ATH for all Renovabot / Dependanbot PRs? May 11, 2023
@jtnord
Copy link
Member

jtnord commented May 12, 2023

GitHub merge queue?

@dduportal
Copy link
Collaborator Author

GitHub merge queue?

I’m not sure it would solve the problem : « do we need to build all the time ? ».

IIUC merge queues are only optimizing the merge orders but still builds pr one time at least (but avoid building multiple times)

@uhafner
Copy link
Member

uhafner commented May 13, 2023

I don't think that this libraries needs so many automatic builds. There are several possibilities:

  • Since ATH simply is a test tool we can either skip builds for dependency updates or reduce the number of dependency updates (dependabot) to once a month. (Or even more aggressively: switch to a manual dependency management. ATH as library or tool does not need the latest updates for libraries, as long as everything works.)
  • Use only the defined set of smoke tests for dependency updates.
  • Remove the builds from ci.jenkins.io totally and switch to GitHub actions. E.g., I am running the ATH tests for my plugins using GitHub actions only.

@dduportal
Copy link
Collaborator Author

I like your 2nd point @uhafner : running only a minimal set of test (not heavy, quick) could be a great intermediate.

Also, the ATH image is prebuilt and pushed in the DockerHub since #905 and is "really" used since yesterday with #1168.

I believe that justifies NOT building ATH when the image is changed, and have a renovabot/dependanbot PR for updating the image tag in the Jenkinsfile:

  • All builds related to the ath-container/Dockerfile would only be in infra.ci.jenkins.io with eventually their own test harness for the image (with goss or something)
  • Updating the image tag, or "normal ATH" contribution would build the full ATH as expected.

@timja
Copy link
Member

timja commented May 13, 2023

Some smart test selection based on paths changed would be good.

ideally if ath-container is changed it should use that and run tests.

If artifactory docker image is changed we only need to run artifactory tests etc

@basil basil changed the title Conditional build: do we need to rebuild the full ATH for all Renovabot / Dependanbot PRs? Conditional build: do we need to rebuild the full ATH for all Renovabot / Dependabot PRs? May 19, 2023
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants