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 process parallel processing #982

Closed
wants to merge 2 commits into from

Conversation

ccjjmartin
Copy link
Contributor

Checklist

  • Affected Issues have been mentioned in the Closing issues section
  • Documentation has been written/updated.
  • Changelog entry has been written

Changelog Entry

Improvement - Build process parallel processing (#981)

Closing issues

closes #981

@ccjjmartin
Copy link
Contributor Author

ccjjmartin commented Mar 21, 2019

@rocketeerbkw After this is merged updating the Jenkins test scripts with this make build-list | xargs -n 1 -P 5 make would likely speed the CI environment up on the build portion of things. My initial testing of this showed processes taking around 20 minutes drop to 2-3 minutes. I am interested in what the results are like on a macbook pro.

@ccjjmartin ccjjmartin mentioned this pull request Mar 21, 2019
@ccjjmartin
Copy link
Contributor Author

I made the assumption that the make build-list command is outdated and should match what the build command is doing.

@ccjjmartin
Copy link
Contributor Author

Looks like Jenkins only takes 18 seconds if the images are already built so there may not be a huge gain on that side of things. This may only be on fresh builds: https://lagoon-ci.amazeeio.cloud/blue/organizations/jenkins/lagoon/detail/PR-982/1/pipeline/17

@rocketeerbkw
Copy link
Member

@ccjjmartin the parallelization technique does not work for me. Instead of running 5 "threads" with one make build each, it runs 5 "threads" of all builds, so it basically builds each image 5 times which is not only not faster than normal, but a lot slower ;)

➜ lagoon git:(upgrade-deps) ✗ make build-list | xargs -n 1 -P 5 make
docker build --quiet --build-arg LAGOON_VERSION=development --build-arg IMAGE_REPO=lagoon -t lagoon/commons -f images/commons/Dockerfile images/commons
docker build --quiet --build-arg LAGOON_VERSION=development --build-arg IMAGE_REPO=lagoon -t lagoon/commons -f images/commons/Dockerfile images/commons
docker build --quiet --build-arg LAGOON_VERSION=development --build-arg IMAGE_REPO=lagoon -t lagoon/commons -f images/commons/Dockerfile images/commons
docker build --quiet --build-arg LAGOON_VERSION=development --build-arg IMAGE_REPO=lagoon -t lagoon/commons -f images/commons/Dockerfile images/commons
docker build --quiet --build-arg LAGOON_VERSION=development --build-arg IMAGE_REPO=lagoon -t lagoon/commons -f images/commons/Dockerfile images/commons

Maybe this is a OS difference with make + xargs?

@smlx smlx mentioned this pull request Nov 22, 2019
3 tasks
@tobybellwood tobybellwood added the 6-images-testing Base Images & Testing subsystem label Dec 18, 2019
@smlx smlx added the 7-documentation-examples Documentation & Examples / DX subsystem label May 8, 2020
@tobybellwood
Copy link
Member

We've been working separately on image building and parallelisation - will release in the coming weeks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6-images-testing Base Images & Testing subsystem 7-documentation-examples Documentation & Examples / DX subsystem
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build process is slow
4 participants