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

chore: move arm64 build tests into its own file & worker #6004

Merged
merged 29 commits into from
Oct 3, 2023

Conversation

mndeveci
Copy link
Contributor

@mndeveci mndeveci commented Sep 28, 2023

Which issue(s) does this change fix?

N/A

Why is this change necessary?

Current sam build tests takes too much time (~6hrs) due to emulation overhead when running arm64 builds on x86 environment.

How does it address the issue?

  • Moves all arm64 build tests into separate file and creates a new job group to run them separately.
  • Uses ruby 3.2 by default
  • Changes ruby dependency to aws-eventstream for a smaller download hence improve the performance for arm64 builds
  • Adds new files specific to ruby3.2 runtime
  • For running x86 tests in parallel;
    • Creates a random tag for image tests so that they won't clash each other
    • Only lists exited containers to confirm that once build is completed, temporary containers are cleaned up
    • Updates appveyor definitions to run x86 tests in 2 parallel threads.
  • Moves re-run configuration from individual tests to the test execution line by providing --reruns parameter
  • Updates GH action definition to skip some of the Rust setup which is not needed for Windows
  • Updates GH action to run build tests in parallel just like AppVeyor

Test run;

What side effects does this change have?

N/A

Mandatory Checklist

PRs will only be reviewed after checklist is complete

  • Add input/output type hints to new functions/methods
  • Write design document if needed (Do I need to write a design document?)
  • Write/update unit tests
  • Write/update integration tests
  • Write/update functional tests if needed
  • make pr passes
  • make update-reproducible-reqs if dependencies were changed
  • Write documentation

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@mndeveci mndeveci marked this pull request as ready for review September 29, 2023 21:33
@mndeveci mndeveci requested a review from a team as a code owner September 29, 2023 21:33
Copy link
Contributor

@mildaniel mildaniel left a comment

Choose a reason for hiding this comment

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

Thanks Mehmet, this is awesome. Left a few questions.

appveyor-linux-binary.yml Show resolved Hide resolved
tests/integration/buildcmd/test_build_cmd_arm64.py Outdated Show resolved Hide resolved
Copy link
Contributor

@hnnasit hnnasit left a comment

Choose a reason for hiding this comment

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

Thanks Mehmet for decoupling the tests based on architecture! 🎉

@mndeveci mndeveci enabled auto-merge October 3, 2023 22:32
@mndeveci mndeveci added this pull request to the merge queue Oct 3, 2023
Merged via the queue into develop with commit 3efd575 Oct 3, 2023
76 checks passed
@mndeveci mndeveci deleted the move_arm64_build_tests branch October 5, 2023 22:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants