Skip to content

feat(ci): split compilation and packaging up MONGOSH-469 #536

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

Merged
merged 4 commits into from
Jan 11, 2021
Merged

Conversation

addaleax
Copy link
Collaborator

@addaleax addaleax commented Jan 8, 2021

  • Split the compile_and_upload_artifact evergreen functions/tasks
    into two steps, named compile_artifact and
    package_and_upload_artifact. The former only compiles the binary,
    the latter creates the tarball/pkg/deb/zip from it and uploads
    it to S3.
    • On the build package level, the latter is also subdivided into
      creating the tarball and uploading it. This makes it easier to
      perform local testing, and replaces the “dry run” mode that we
      previously had.
  • Run the different tasks on appropriate machines:
    • On Windows and Linux, the build steps are moved to separate,
      more powerful machines that are intended for compilation steps.
      All other tasks remain on the same hosts. For Linux, this means
      compiling the executable once and packaging it three times,
      rather than compiling it three different times as well, and
      faster compilation times overall.
    • On macOS, the packaging step is kept on the codesign machine,
      while building takes place on regular macOS hosts. This helps
      us be nice to other evergreen consumers, because it reduces the
      amount of time that we’re hogging the single codesign host
      that evergreen provides.
  • In order to move executables from the compilation to the packaging
    steps, store them temporarily in S3 using evergreen’s built-in
    storage mechanism.

- Split the `compile_and_upload_artifact` evergreen functions/tasks
  into two steps, named `compile_artifact` and
  `package_and_upload_artifact`. The former only compiles the binary,
  the latter creates the tarball/pkg/deb/zip from it and uploads
  it to S3.
  - On the build package level, the latter is also subdivided into
    creating the tarball and uploading it. This makes it easier to
    perform local testing, and replaces the “dry run” mode that we
    previously had.
- Run the different tasks on appropriate machines:
  - On Windows and Linux, the build steps are moved to separate,
    more powerful machines that are intended for compilation steps.
    All other tasks remain on the same hosts. For Linux, this means
    compiling the executable once and packaging it three times,
    rather than compiling it three different times as well, and
    faster compilation times overall.
  - On macOS, the packaging step is kept on the codesign machine,
    while building takes place on regular macOS hosts. This helps
    us be nice to other evergreen consumers, because it reduces the
    amount of time that we’re hogging the single codesign host
    that evergreen provides.
- In order to move executables from the compilation to the packaging
  steps, store them temporarily in S3 using evergreen’s built-in
  storage mechanism.
@addaleax addaleax added the wip Work in Progress label Jan 8, 2021
Copy link
Collaborator

@mcasimir mcasimir left a comment

Choose a reason for hiding this comment

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

Looks great so far, there should be no problem with the npm stuff as well

Copy link
Contributor

@rose-m rose-m left a comment

Choose a reason for hiding this comment

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

Nice! Looks good to me, too - should not interfere with homebrew.

@addaleax addaleax changed the title [WIP] feat(ci): split compilation and packaging up MONGOSH-469 feat(ci): split compilation and packaging up MONGOSH-469 Jan 11, 2021
@addaleax addaleax removed the wip Work in Progress label Jan 11, 2021
@addaleax
Copy link
Collaborator Author

I think this should pass now, removing the WIP label :)

@addaleax addaleax merged commit d1688c3 into master Jan 11, 2021
@addaleax addaleax deleted the 469-dev branch January 11, 2021 12:34
fi
RELEASE_MONGOSH

if [ `uname` == Darwin ]; then
ssh -v -p 2222 localhost "bash ~/release_mongosh.sh"
Copy link
Contributor

Choose a reason for hiding this comment

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

Independent from the PR: but why is there this ssh command on Mac? 🤔

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.

3 participants