diff --git a/README.md b/README.md index 8a422df618..a332ec1c2a 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,10 @@ variable. For detailed instructions for each of our supported platforms, please For more information on mongosh usage: https://docs.mongodb.com/manual/mongo/. ``` +## Releasing + +Refer to the [`build` package](./packages/build/README.md) documentation. + ## Local Development ### Requirements diff --git a/packages/build/README.md b/packages/build/README.md index 4afb0efab6..d7ecee4f55 100644 --- a/packages/build/README.md +++ b/packages/build/README.md @@ -1,171 +1,120 @@ -# The Mongo Shell Build System - -[Evergreen Build][evergreen-url] - -This package contains all the tools needed to build and release mongosh. - -Build process is done on [Evergreen][evergreen-url] and is triggered with every commit. -Releases are triggered by a git tag when ran with `npm run publish-npm` from the -root of the project. - -For full details on how to run a release, check in with [`compass-internal --docs`](https://github.com/10gen/compass-internal-docs/blob/master/technical/mongosh/mongosh-release.md) repo. - -Current build and release flow is as follows: - -### `npm run evergreen-release package` -- A commit triggers an evergreen build based on currently available build - variants: MacOS, Windows, Linux, Debian, and RedHat. -- MacOS, Linux and Windows run three tasks: check, test, and release. Debian and - Redhat run two tasks: check and release. Debian and Redhat also depend on - tests to pass on Linux. -- Identical bundle and binary are built on all five variants. -- MacOS binary is signed and notarized. -- Each variant creates its own archive (`.zip`, `.tgz`, `.deb`, `.rpm`). Type of - archive is determined by the current build variant. -- Each variant uploads its own tarball to Evergreen’s AWS. -- Linux build variants upload their artifacts to `barque` using - [`curator`](https://github.com/mongodb/curator) to be used with MongoDB's PPA. The uploaded packages can be found under the following URLs: - 1. Ubuntu: https://repo.mongodb.org/apt/ubuntu/dists/bionic/mongodb-org/4.4/multiverse/binary-amd64/ - 2. Redhat: https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.4/x86_64/RPMS/ - 3. Debian: https://repo.mongodb.org/apt/debian/dists/buster/mongodb-org/4.4/main/binary-amd64/ -- The five build variants run in parallel. -### `npm run evergreen-release publish` -- All the previous build steps succeeded. -- A separate MacOS build variant (darwin_publish_release) uploads config file - with information about the new version for each platform to Downloads Centre. -This only happens on a tagged commit. -- A separate MacOS build variant (darwin_publish_release) promotes the draft - github release to public. This only happens on a tagged commit. - -![build flow][build-img] - -## Usage - -```js -const release = require('@mongosh/build'); - -const config = { - version: '0.0.1', - appleNotarizationBundleId: 'appleNotarizationBundleId', - input: 'input', - execInput: 'execInput', - outputDir: 'outputDir', - analyticsConfigFilePath: 'analyticsConfigFilePath', - project: 'project', - revision: 'revision', - branch: 'branch', - evgAwsKey: 'evgAwsKey', - evgAwsSecret: 'evgAwsSecret', - downloadCenterAwsKey: 'downloadCenterAwsKey', - downloadCenterAwsSecret: 'downloadCenterAwsSecret', - githubToken: 'githubToken', - segmentKey: 'segmentKey', - appleNotarizationUsername: 'appleNotarizationUsername', - appleNotarizationApplicationPassword: 'appleNotarizationApplicationPassword', - appleCodesignIdentity: 'appleCodesignIdentity', - isCi: true, - platform: 'platform', - distributionBuildVariant: 'linux', - repo: { - owner: 'owner', - repo: 'repo', - }, - dryRun: false -} - -const command = 'package'; // or 'publish' - -const runRelease = async() => { - await release(command, config); -}; - -runRelease().then(() => { - process.exit(0); -}); +# The Mongo Shell Build System + +- [Releases](#releases) + - [Publishing a new Release](#publishing-a-new-release) + - [Branches and Tags](#branches-and-tags) +- [Evergreen CI](#evergreen-ci) + - [Evergreen Triggers](#evergreen-triggers) + - [Evergreen Stages](#evergreen-stages) + - [Tests](#tests) + - [E2E Tests](#e2e-tests) + - [Smoke Tests](#smoke-tests) + - [Draft](#draft) + - [Publish](#publish) +- [Package Structure](#package-structure) + +## Releases +New releases of the Mongo Shell project are created primarily on demand or when a bunch of worthy features or fixes is available. There is no fixed cycle for publishing new releases right now. + +### Publishing a new Release +Execute the following steps to publish a new release: + +1. Ensure there is a Jira _Release_ ticket in the [`MONGOSH` project](https://jira.mongodb.org/projects/MONGOSH) for the new release and move it to _In Progress_. +2. Verify that the Jira tickets you expect to be released are correctly mapped to the _Release_ ticket. Add any additional required documentation to the release ticket. +3. Trigger the draft release by running: + ``` + npm run release draft + ``` + Follow the instructions and ensure that the new draft tag to be created matches the expected release version. +4. Wait for Evergreen to finish the build and complete the draft stage.\ + _Repeat step 3 if there are any additional changes that need to be part of the release._ +5. Trigger the publication of the release by running: + ``` + npm run release publish + ``` + Follow the instructions and verify the inferred release version is correct. +6. Wait for Evergreen to finish the publication stage. +7. Close the Jira ticket for the release, post an update in the `#mongosh` Slack channel and ping the docs team. + + +### Branches and Tags +Typically, a release is always created from the main branch (currently `master`). The only exception are _patch releases_, i.e. when we need to fix an issue for an already published, already superseeded release. Patch releases are created from _release branches_ that match the following pattern: ``` +release/v[0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+ +``` +Possible values for a release branch are: +* `release/v0.8.1` +* `release/v0.8.x` +* `release/v0.x.y` -### API -#### await release(command, config) -Run a complete release of mongosh. This will bundle, create the binary and -package a tarball for the current build variant. Running a release requires a -config object which is usually obtained from evergreen. For current config, see -[build.conf.js][build-url] +See the following image for a general overview on how we handle these branches and the corresponding tags. -__config:__ config object necessary for release. +![Branches and Tags](./branches-and-tags.svg) -```js -const release = require('@mongosh/build'); -const configObject = {}; -await release(command, config); -``` +We use two different types of tags for the automated release process: draft and release tags. A release tag has the form `v..`, e.g. `v0.8.0`. A draft tag is `v..-draft.`, e.g. `v0.8.0-draft.0`. -If `config.dryRun` is set, this will only package a tarball and skip all later -steps. - -#### await runCompile() -Create a compiled down binary. Binary is created for the provided platform (e.g. -windows will build `mongosh.exe`). Before we compile the binary, we bundle -`execInput` into a single `.js` file. - -__input:__ path to build input. -__execInput:__ path to compiled executive input. -__outputDir:__ path to where the compiled binary will live. -__platform:__ platform to run `runCompile` on. `linux`, `darwin`, and `win32` -are accepted options. -__analyticsConfig:__ path to analytics config for telemetry. -__segmentKey:__ segment api key for telemetry. - -```js -const compileexec = require('@mongosh/build').compileexec; - -const config = { - input: 'path/to/input', - execInput: 'path/to/exec/input', - outputDir: 'path/to/output/directory', - analyticsConfigFilePath: 'path/to/analytics/config', - segmentKey: 'SEGMENT_API_KEY_23481k', -} -await runCompile( - config.input, - config.execInput, - config.outputDir, - os.platform(), - config.analyticsConfigFilePath, - config.segmentKey -); -``` +Draft tags are used to trigger the automated release process. Every draft tag in the end leads to the generation of _potentially_ distributable packages with compiled binaries. + +Release tags are used to trigger the publication of a release and its corresponding distributable packages. A release tag must referenced the commit with the most recent draft tag for that release version (example: `v0.8.0` must reference the commit with the highest `v0.8.0-draft.x` tag). +The automated release process for publication of a release will re-use the compiled binaries and packages that were created in the most recent draft tag. Thus, every release tag requires a prior draft tag to be present. The release automation process is handled by [Evergreen](#evergreen-ci). -#### await createTarball(input, outputDir, buildVariant, version, rootDir) -Creates a tarball for a given binary and build variant. Different build variants -will create different tarballs - `.tgz`, `.zip`, or `.deb`. - -__input:__ path to binary file. -__outputDir:__ path to where the compiled tarball will live. -__buildVariant:__ build variant to create a tarball for. `macos`, `ubuntu`, `windows_ps , or `debian` are currently available. -__version:__ version for the tarball. -__rootDir:__ path to root project directory. -```js -const tarball = require('@mongosh/build').tarball; - -const executable = 'path/to/executable' -const config = { - outputDir: 'path/to/output/directory', - distributionBuildVariant: 'windows_ps', - version: '0.2.0', - rootDir: 'path/to/root/directory', -} - -const artifact = await createTarball( - executable, - config.outputDir, - config.distributionBuildVariant, - config.version, - config.rootDir -); -``` +## Evergreen CI +The Mongo Shell project uses Evergreen for Continuous Integration and the release automation process described above. Follow [Evergreen Build][evergreen-url] to see the waterfall for the Mongo Shell project. + +For full details on the project's configuration see the Evergreen configuration file [`.evergreen.yml`](../../.evergreen.yml). + +### Evergreen Triggers +Evergreen builds and _patches_ are triggered in multiple ways. The Mongo Shell project is setup to be triggered by: + +* New commits on the main branch (currently `master`, i.e. _waterfall builds_ +* New Pull Requests against the main branch on GitHub (i.e. _patches_) +* A new tag matching `v0.0.0-draft.0` is pushed on the main or a release branch (i.e. a draft build is triggered) +* A new tag matching `v0.0.0` is pushed on the main or a release branch (i.e. a release is to be published) + +### Evergreen Stages +The following image shows an overview on the different stages of the build in Evergreen. + +![Evergreen Stages](./evergreen-flow.svg) + +#### Tests +The _Tests_ stage contains multiple tasks: +* Checks that the code conforms to linting guidelines +* Runs all unit tests in a matrix configuration (Node v12 and v14, server versions 4.0 / 4.2 / 4.4 / latest) +* Runs additional verification tests (VS code integration and connectivity tests) + +#### Compile +The _Compile_ stage produces an executable binary (leveraging [boxednode](https://github.com/mongodb-js/boxednode)) for every target platform and uploads it to the Evergreen S3 bucket for later user. + +#### Package +The _Package_ stage depends on both stages _Tests_ and _Compile_ to complete successfully. It will then download the binary executable, package it into a distributable archive (e.g. a `.deb` package or a `.zip` file) and re-upload that to Evergreen S3 for every target platform. + +#### E2E Tests +The _E2E Tests_ stage depends on the _Package_ stage to complete successfully. It will download the binary executable of the _Compile_ stage from Evergreen S3 and run JavaScript-defined E2E tests with it. + +#### Smoke Tests +The _Smoke Tests_ stage depends on the _Package_ stage to complete successfully. It will download the _packaged_ distributable and run it via Docker or SSH on different target operating systems to verify that the distributable works as expected. + +#### Draft +The _Draft_ stage depends on both stages _E2E Tests_ and _Smoke Tests_ to complete successfully. _Draft_ will download all distributable packages created in the _Package_ stage and re-upload them to: + +1. MongoDB Download Center: uploads to the corresponding S3 bucket without publishing the Download Center configuration. +2. GitHub Release: creates a new draft release if there is none for the release version yet and either uploads or removes and re-uploads the distributable packages. It will also generate a changelog and add it to the draft release. + +#### Publish +The _Publish_ stage is independent from all other stages. As mentioned at the beginning when a release tag is pushed to the repository it will directly trigger the _Publish_ stage. It will do the following things: + +1. Use [`curator`](https://github.com/mongodb/curator) to transfer the distributable packages from Download Center to the MongoDB PPAs. +2. Upload the full configuration to Download Center so the release is available there. +3. Promote the GitHub release created in _Draft_ to a published release. +4. Publishes the npm packages. +5. Creates a new PR for the [MongoDB Homebrew Tap](https://github.com/mongodb/homebrew-brew) and automatically merges it. + + +## Package Structure + +The package has two major purposes: +* Custom build commands to handle the stages outlined above +* Provide easy helpers to trigger the release process -[evergreen-url]: https://evergreen.mongodb.com/waterfall/mongosh -[config-url]: https://github.com/mongodb-js/mongosh/blob/393b505c179b64fbb72e0481c63f1723a3c56f06/config/build.conf.js -[build-img]: ./build.png +See [index.ts](./src/index.ts) for the main entry point on the different commands. diff --git a/packages/build/branches-and-tags.svg b/packages/build/branches-and-tags.svg new file mode 100644 index 0000000000..feb6ebf658 --- /dev/null +++ b/packages/build/branches-and-tags.svg @@ -0,0 +1,3 @@ + + +
Overview: Branches and Tags
Overview: Branches and Tags
v0.8.0-draft.0
v0.8.0-draft.0
v0.8.0-draft.1
v0.8.0-draft.1
v0.8.0
v0.8.0
v0.9.0-draft.0
v0.9.0-draft.0
v0.9.0-draft.1
v0.9.0-draft.1
master
master
release/0.8.1
release/0.8.1
v0.8.1-draft.0
v0.8.1-draft.0
v0.8.1-draft.1
v0.8.1-draft.1
v0.8.1
v0.8.1
Commit
Commit
v0.8.0
v0.8.0
Release Tag
Release Tag
v0.8.0-draft.0
v0.8.0-draft.0
Draft Tag
Draft Tag
release/0.8.1
release/0.8.1
Branch
Branch
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/packages/build/build-diagrams.drawio b/packages/build/build-diagrams.drawio new file mode 100644 index 0000000000..4040e5f755 --- /dev/null +++ b/packages/build/build-diagrams.drawio @@ -0,0 +1 @@ +7V1rd5s4Gv41/tgcxJ2PubbdnZ5mN52d9tMe2ciYGWw8gJukv34kQFwkYeMYATFOzkmMABn0vDe9F2mm3a5fPkZwu/oSuiiYqYr7MtPuZqoKHEfH/0jLa96Cf7MWL/LdvK1sePJ/obxRyVt3vovi2oVJGAaJv603LsLNBi2SWhuMovC5ftkyDOrfuoVe/o1K2fC0gAHiLvvDd5NV1mqrVtn+Cfnein4zMJ3szBrSi/OO4xV0w+dKk3Y/026jMEyyT+uXWxSQ0aPjkt330HC2eLAIbZI2N+ix+r/VNYwD88d99J/lr5vPP//1ASg5HD9hsMtfOX/c5JWOQRTuNi4i3Sgz7eZ55SfoaQsX5Owzhh23rZJ1gI8A/li8Jrk2TqLwr2LgyOlluElylIGJj2Hgext8EGVjeOMFMI5rd9+GQRilD6KZ6U/eS6U9+yHtfhBU2h+uyS/pNYKuj2r3LNMffC5/fxQl6KVxaEEBGCZ1FK5REr3iS+gNhpHdQqkcGDnozyXNOGp+0apCL5qZXwhzOvWKzkso8YcczSOQtS/ASgDWUOx2wKq6KglY+hYVHJGLZVZ+GEbJKvTCDQzuy9abOtLlNb+F4TYH8E+UJK85gnCXhHX0WXjrBKAWw00eZf9g4ycPd9EC7ZNK+SAnMPJQsudCR4xehAKY+D/rDyICIr31Oorga+WCbehvkrjS8yNpKIlCpzz7Wufhh4brDXvv9fhD9gQlSRSv8nYq0UZBJQzbugayXV0kAGx1rpnS6aotWQHlRLo6TXILBLcZEBkab+Gmhqn5946YD+m4f4jTgb/GFwBz+1KexJ888v8biglZZ13hJ8t6y87tUQ3gsGqA8zgMdgm6jhYUfdJaHulCZFNqyb9SEVBPBwJcZXhPV3jFDKiFVpXfhiy9LFDDAzBmh0zltGUqYwhhbWkMAeTKWqrw1c8NYzobOwiyZg4BsgnqIFt6HyBbQ4B8jOZs0r5jIBTQILf7Nd2cA6abpu+9XhJh2RfCOoGw1PdAWOycoBfComN4qmWZmpSMcfkIF38RV9q0zMvCnKSKRx3avDQGMT3GLjyo5/iQ8FBPnfg1qBGGTEDh3qZ9ZE+W31aSwLFiiNVX+Iu0HuQK6EaucELlXr3H5y7zVhIO0QeXLNpFsjRYG71JlmPlAWtm9CQPRKGHLuTB0xojPlGJYKijkwjmIBMVF8arAk60cR/8oFFYFHGlg8JiaZBfBjo1/QY8VN/J414Z9PBH/vTpwd1L7ei1evSIIh+PNYryxi4lj9ZS8piaFJuGo0edKogDNk1XUoYG2vulvk7JoWdSHoL6jFNDdCdJKPqYMma8dxFcJhNTQux8F2h0hAdTQtTCGUoM1IRAKROOEQMy7VO9Lz7txG0GdK0H+9QeJDZekAw4E5LpxrB4HyTjDDL5PTsp4wzjnHcYkjH78LY7g8QHR4HyqUHg02w+XZ7N97ibB368mrrVZxhDW33AEoDMjL6Hh3/b+Pp5wjic08uVY4fFNOrDYoiCP7ZgVCxpo2KISB+uCaVt5vE2JQelXdONv4Hp296/oMUuGyd2hOMV3JKPeMxgEKAg9CK4FvlvqwS7reil2o0VhSXklTo3VRiD9JoxL9aNKkkXJnj7Cxhc50nICZGeRUryAgOcfksr3thDf42kUYRaD5GCtPRvYB5mkMMJ3ym66xePFHdczWHsL678OFzs5kRX4U/XGy/tDLDuBlM03E1+iuPTwaUBx6b28jDqAhR1aSgO4uMaZ663PYjpeGSuNxuA7SXXG4gyhllRzWG4h9OXQfi8WMEouYoxLMn/1QaJfJDjuzA+mBEtIqND8SQtCTkbu56aLYdTq06d8J+WOC3KXuqGyl208GM/3IyIzAFweBu7VzpXR6F7RlZB0jrZXU4ikcpksxf5ZrSL7AW4mJtAT9lXeFpX/IBatyZrlkoO5Wn6EKTGRt+uSbkwYWtSqegvZu8sJKe2DclJok2D8RLYSjsiOtYkc5R6TaZpH0i1ZZ6LuV6OSaaaQwtPVUiXLci8xhbHT9k6pGjqzjicXDWoYaKJvC49+6IMRjHYouSgXn1RmsgB8UZf1J2P6c2fUy+UUiSbX/xRNRocsT9Ka+GwnaI/6gBwI/NH6YNXlZ+BWqOS8XAx5aC5U/oI1JrFzIptRyDHLAEHONLkWAtf2+mjsgcQfqyqS5H0OhTO4aHg14lp55CBeHxgjN7qkBmFZG9wWNOpfH0WM7hk571r9/itvQghEjJ/4vNf8IAkdTw5GFizZ+27bqYSELaPcg4gSiGf8+F+jZuZcUf6wlogLsPgrAqoRr3B2zFqYqm8G27xCA4jEcOxPpnuMGoR05MtkW3GIjGsoSWy2oue2gPIeCSyKkp3vkjkOqW8F4ms8nlMU5DIDSw1Uok8SIzk/ZaNUJNxpKs4WDaz3J+i7Pctm1xRXv0GSZmlAinfUYLjbbje+sHUlnFga9mGXyXM4IX/55gwTuR7HorwkKvKnLyBm1UhYY7yZtrDeFSCOXuLStgPk8am/gOB8akqfSoAY5A4zxQUwCDFJZwCoBZG2+Aie4McBWCOwDXHpiIAkcEsCjEUiS3d16OPYH4M2FoTXVQhKZogS5tImLwuuQufN0EIiRa5zfRAe8VBF3Qe/VTCbJhKFLYajwvoU3eYl9n6W+Cj3Qw9PzdHUIJicMWQImljCtYnlzcsvCP5o5982s1x239RgAhVthc2AVq+D1mzv6yAXUZeIHr6NVsvoZu3oDmUqLFaaArZokZT9DoNaxovamhou7bFhbRRaZEQ3nFKyf5tL1SBldQdORf7b4CTaNtqmFhRjxaHqcjvIU0wWaKlBC+YnoYprQVs1j79YqxeMO4O47GAKqq679saZgqyR6CiWjhqLqQupqXRqqj+K6vPH9Oxqaj+s5XPGOOxgDqKgkap5YlW6x2uGqDqJ7XYOueCdctirBDD4PcM7NV9YPPugz9WaRIRG07Oov7ziAb8C4ed8g16HERnFVy2VeuK3exRABwwe0WOt6pbInf7GZ/Agl5V8nVKzx9BjUkOKzTJcPCNIE7LBSRN0eJdvQYkbd6C/hJuvPCO1Po9Pl4fQabvJhhp7889ZTYwGzxAYLcwgCccIDiE5tCxSXsKK/PPurObzbZrJ9gNkSG5aUnctj5Gfc1bfp0QzgY99gbzwA3cI5m9LMPbIuQjfdlHVlabgix0FfQZc3f4qEmpUD/hL5lH6Dk1AbdH6Nb3EnvPiOKU2LvIKJSmWh31olrfgOZQqtThjdUbGP29a159Ikn/HcqG5/VesWQEcKo+OcJaHilqn/H57/vU5fGgdT0hUzUmZcAwAMd8opkHZdnu19NUeFfIV/yOP30sH9PKiGqJ1c3OD8j8+imBHoqPkJxyJ8+qIgErXbdZ9wdd16YaPBOxnrToGVB490fu9xgPGoUmq65Fp5DfbtyJOpNnXRRBVGDpVX8BhfdqPGdOqXxfNqVYwif7i1uKuiIFvzgBbrdYoDhe7oLJAKkxhoghAFLtNQEZKLxu89AGRTAZkbiTjYvF1P3qAlxESkoiLHx4xM0T9mPe09tmofaBjXxJyBnMTMy0eY0lTOmXqLH4xNrpcZSpsKEUS1Co1y9PCfY+94mq2m0JW6VhlCScCN9YTh0dWyDxei2jB4IdpPdIvLbLAZ4neiZbeKcoArGn9Sr2BPss5iZhgQ0LYsp9bzID+4n5yLICmYod2+DBE/GeROx4c36yktFhLApj6AVGgGAfl4pkVCDp4iIf91mFQBWot77lIx9O3WZbiaFjURToQ8KeRZrHSGvsZIHtcFk7miGAW+S3krc5mWBDlhPgngSQGpe7L1pYrl/3I+AncxUYOQAnyYA6zaott2O1BjZoVH4ykdkyAtAKsLj8uXCz9L0dnriTfWGmgaXGJgG0xVKeJCUdMFh+KyIACg3EseClOWTYgHVhMhU+1FirR2S6CnPIJDIiPyv8PcWEYFemJbDopVkKykMYrXcBnAh8usMUwJh0+cdDS5B1Ad/jL/v2o2usvj8sv/77t++R9ufX3z8MstR7ueP1lVrscv1jVt3k+qV2RLe8fr+5Z+337WkgIbm5Z8dut8MKoq632xHSKq8lpAVM3rX3iUsGV0QrHcoKmQihG8HSFnxGn2DvPWkZfcJR4RMfNtt1OrnwyDzxdWxq8bhUlGZCOCGLT5ZfTviwLQo7ppHDdwyUPaTwCR9nkDU6S0umZsZcFVZNgyGTHlW2nhKueYte/OR72R0++kG/Fn8ueyYHtOMOTRag8yZLM5ucarEINmVmjWW6qMOx22AaNtsTuzhlR5sWsvtIAwt0my4vHH7e6/xYcUOmGoWbOk/L7ciTkmB76Y7cV/gwCslq2yXERPZ/CV1ErvgH7V1bc5s4FP41fmyG++WxSZvt7GxnO8nu7L7tqEbBtBi5GMdOf/1KRsJGAoNjAXIqeyYBIYSs75zvHB1dmNl3y91vOVgtPqMIpjPLiHYz+8PMsswwdPA/kvJCU/C3TInzJKJph4TH5CekiQZN3SQRXNcyFgilRbKqJ85RlsF5UUsDeY629WxPKK0/dQVi+kTjkPA4BykUsv2TRMWiTA0s/5D+CSbxgj3Z9MLyyhKwzLTg9QJEaHuUZH+c2Xc5QkV5tNzdwZS0HmuX1cPW+Z7/Hvwo3B/3L8bykxX9fFcWdn/OLdVPyGFWvLrobREHu3j18Hf478PzJtndf/v0SG8xnkG6oe315zPMnxOIf+d7fOE2B9l8gfHDYGQR/vsXiNe0OYoX1sYF3OF63S6KZYoTTHwI0iTO8PEc1xjmOAGXWiQYlff0wjKJInL7bQ7XyU/wdV+Ugc9XKMmKPebu7cz9QMraFGhdyhUp+gllBRUzy2DntC60pcjD4I7Dv6PxzApRrAsQLWGRv+D7aCkeEwKqBrZDz7cHmbINmrY4kiebpgEqxnFV9AEqfEDROkMomGIeQSfgkqNNFsGItux2kRTwcQXm5OoWq3sdskq8Sd44Bes1PV4XOfpeKQ8HAWaDA9p5+btvn5I0vUMpyvfVsJ9c8q1KOrri7T+0xKP08oPTh8LT5PD0DBFPqwnPitekA2raAqDPxk1wg5/npaRVv+KDmBy8i3LwVBwu4MdV107IgClNBqwTMlBpPMjn9LpjX4VMWGFdJhxflAlzVB233DNFwtQiIVUkHFc1kbAdAU4YYYeHnmYo2xvVGvGjvFigGGUg/QOhFcX1GyyKF4oGsbB11GEWvSfOF0GPYJ7My8T7JK0Eg0fJ2H+aDUYL0rzElL+N/KBXoIgdS5DH8FQ+2zptFUwObusEjLSUL8RfaS/Cdbgi1miTzyG9ixOGqkYXyIfV7RaImlvX9xXJt9zFpEdw85Si7XwB8uJmDX9sMAwJSP+LQAFaqKOVL3BxUQJr+vu0/zTIAafngUG+DY7GYO6Bz6FoN7kHDd7BYGovOgca1vMtvKsarKZabD4BZ5d82IPRusndHprcLb+l18CKKOs4HLl7mgUuZwHbVowFTNGnu1jlu71zDobKe4vAelF1Ds530Y+4htLXgWiMEeiCdaO76cIbmi6qIBETNL6IgenCEdlB9xX6250pBOkybyLQ5kFCn5/vwU1tHmxXLTVWUlm9vsoaDM36jj2tk8iMjmaBi1ggVIwFLG8UFqh5f12+XLsX2OB+KsIULKbeyRSOcVJAJDCFa0zrH9q+WoblyvzDYAJBuohCHDY8ri3DBZbBVS42HKqlxioqK3OKupW1Y2BAAuuHE/uHPSaOaBbonBCk2lCCG6jFAtdlzJlp7OYHRxVjrscCJKixr9pYgGOrpcZKKqvTV1kHD/H77sTGXId8JbBAoFrI11Es5HtlxrxvMNiRGAy+zHnTMVsZaqxazNZRLMCmpLL2DaO5g8djQ3NaY+5amgUuZ4FQtfico1h87rqMOTON3fxgqWLMdYBNghqbhnIRNj1Zt1tbrb7aKjGO1mzNTWPi2bqujtDJ4AFTtRCdq1iI7srsed/gnavKtErX13osQY8t1YJsrmJBNiW1tW8orVSSQe25NfHESs8YRV7e/Aw8N+wpU+VUPRUsQChYALYOnxOI1y2tN2fSl9aPsSmKsDreEhl93NXxnmiZtYq+QkW93tMhVBlBYTWuq2iod0+h6YNvleFzve3pt8rwxtkq4+2TQd+FcMr02LzGrZROkIHeN0d28Fa5vZQ8cS+lJViT9hX68rS7jtsApClMEe5mL2cdq6tXME9wRQlc9Ru/HC40ikxdqA5I7yWBbntn3Biu7fqmYwXs7ykJ65SnwWDnt9By2WqbY9idUWEfZwh+ciPQtpp/aOPAgmOdxsFTpTPn6SlzElQ95IMxpkjwo0bz/NPRGZh+RduPhwQpcT0pIbx9zfAJ2yF1BKXtvRrGG3y1dMDLEW8JWoJ6mGDBy1E2um1s+3P4ibq0qvct+d2As2TB6fw+v6FovXx8UNZYakTS1wv6pDir/LyvyblstBHGqxiE8PpOEfQlLt67DEBLK+YAvcjpFXO03VevQjH9vmHiUh9UUEwxCpDDFII1xMWRIR1xjpcOB7xaf02P019j6nCAr3dRkaP5Vl/NV6Xb74+zPvrtI9874KPK0KAvzt96plSvhwbHGA3g12V5nujGjTsYwDr3mgwuJIO+U3nUcQBbpvK0koEeGhx4XYcCbCB2zjUbvIINgt7dwVARNgh6vFZBi8KvIQqNE8iaAgK/1BxPga79hhjcyHSt12NIAJZfjuE1TN4dNbYaiOPyd2i5TAoB3PbXTbJGG+Rtk0fEOYCeOd1weGPCEfYYwogxFa5aW4S+0ZW29uzoBa1SX93YSEjhmITEHvbLLQ8IT/fqwqktRSja9AcW7Sdvsn0jzNIGA5u6IKAQjEokPXzsaYiEp9ymjqg/qmdz7vs+daTybF05/ZKwyacpB2J86gOB+m0RVgsIrYQ1lOfT+E70Ht2LafiK74k18VVTS8kQ1saWEl1EPZjeSyva5a4V/TGjpI3VE3czuc1BNl9cHyed0/qtlOTKoSR8miNUHM8LJTGJzyiCJMf/ \ No newline at end of file diff --git a/packages/build/evergreen-flow.svg b/packages/build/evergreen-flow.svg new file mode 100644 index 0000000000..e43ced9f96 --- /dev/null +++ b/packages/build/evergreen-flow.svg @@ -0,0 +1,3 @@ + + +
Tests
Tests
Package
Package
E2E Tests
E2E Tests
Smoke Tests
Smoke Tests
Draft
Draft
Publish
Publish
      Binary Executable
      Binary Executable
      Distributable Package
      Distributable Package
Evergreen S3
Evergreen S3
Evergreen S3
Evergreen S3
Compile
Compile
Is triggered by draft tag?
Is triggered by draft tag?
Download Center
Download Center
GitHub Release
GitHub Release
When triggered by
Release Tag
When triggered by...
When triggered by
CI or Draft Tag
When triggered by...
MongoDB PPA
MongoDB PPA
MongoDB Homebrew Tap
MongoDB Homebrew Tap
Barque
Barque
Overview: Evergreen Build Stages
Overview: Evergreen Build Stages
triggers
triggers
when Tests & Compile are successful
when Tests & Compile are successful
generates
generates
downloads
Binary Executable
downloads...
generates
generates
is uploaded to
is uploaded to
downloads
Distributable Package
downloads...
when Package
is successful
when Package...
is uploaded to
is uploaded to
downloads all
Distributable Package
downloads all...
publishes all
Distributable Packages
to Draft Release
publishes all...
publishes all
Distributable Packages
publishes all...
publishes
Draft Release
publishes...
uploads
Release
Configuration
uploads...
Triggers Barque
PPA update
Triggers Barque...
Updates Homebrew
Tap Formula
Updates Homebrew...
downloads
Binary Executable
downloads...
npm Registry
npm Registry
Publishes npm
Packages
Publishes npm...
Viewer does not support full SVG 1.1
\ No newline at end of file