|
| 1 | +# Evergreen configuration |
| 2 | + |
| 3 | +This directory contains configuration and scripts used to run Mongoid's test |
| 4 | +suite in Evergreen, MongoDB's continuous integration system. |
| 5 | + |
| 6 | +`config.yml` is generated. Do not edit it by hand. Edit the ERB templates under |
| 7 | +`config/` and regenerate with: |
| 8 | + |
| 9 | +``` |
| 10 | +ruby .evergreen/update-evergreen-configs |
| 11 | +``` |
| 12 | + |
| 13 | + |
| 14 | +## Scheduled upcoming-version builds (MONGOID-5908) |
| 15 | + |
| 16 | +Two build variants run the test suite against the upcoming, in-development |
| 17 | +versions of Ruby and Rails, so that incompatibilities are caught before those |
| 18 | +versions ship: |
| 19 | + |
| 20 | +- `ruby-dev` — the main test suite against `ruby-dev` (provided by |
| 21 | + `mongo-ruby-toolchain`). |
| 22 | +- `rails-master` — the main test suite against Rails `master`. |
| 23 | + |
| 24 | +Both are defined in `config/variants.yml.erb`. Two properties matter: |
| 25 | + |
| 26 | +- They are not tagged `pr`, so they never run on pull requests. They only run |
| 27 | + on the `master` waterfall. |
| 28 | +- Their `test` task carries `batchtime: 20160` (14 days), so Evergreen |
| 29 | + activates each at most once every two weeks instead of on every commit. |
| 30 | + |
| 31 | +### Failure notification |
| 32 | + |
| 33 | +Failures of these scheduled runs should open a Jira issue in the `MONGOID` |
| 34 | +project. This is not expressed in `config.yml`; it is an Evergreen project |
| 35 | +notification, configured once by a project admin in the Evergreen UI: |
| 36 | + |
| 37 | +1. Open the `mongoid` project in Evergreen, go to |
| 38 | + **Settings -> Notifications** (project subscriptions). |
| 39 | +2. Add a subscription: |
| 40 | + - **Event**: a task finishes -> the task fails. |
| 41 | + - **Scope**: limit to the build variants, using a regex that matches the |
| 42 | + `ruby-dev` and `rails-master` variant display names (they contain |
| 43 | + `ruby-dev` and `Rails master`). |
| 44 | + - **Action**: Create a Jira issue. |
| 45 | + - **Project**: `MONGOID`; pick an appropriate issue type (e.g. `Task`/`Bug`). |
| 46 | +3. Evergreen fills the issue with the failing task, the build variant (which |
| 47 | + names the Ruby or Rails version), the version/commit, and links to the |
| 48 | + failed tasks, so the report includes the version, commit hash, and the list |
| 49 | + of failures. |
| 50 | + |
| 51 | +Because this lives in project settings rather than the repository, it must be |
| 52 | +recreated if the project is reconfigured. |
0 commit comments