-
Type: New Feature
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Testing Infrastructure
-
None
-
Fully Compatible
-
TIG 2017-07-10, TIG 2017-07-31, TIG 2017-08-21
A new Evergreen build variant and task should be added to the etc/evergreen.yml project configuration that runs the update_test_lifecycle.py script once a day (batchtime=86400, stepback=false). The update_test_lifecycle.py script should have a mode where it does the following.
1. Clones a fresh copy of the mongodb/mongo test-metadata repository using the project name as the branch name
git clone --branch=${project} https://github.com/mongodb/mongo-test-metadata
2. Sets up the author name and email.
git config --local user.name "Test Lifecycle" git config --local user.email <email>
3. Update the etc/test_lifecycle.yml in the mongo-test-metadata repository
4. Checks the references.yml file in the mongo-test-metadata repository to ensure that the metadata is not more recent that the current task's commit.
- This is done by checking that the revision referenced in references.yml is an ancestor of the current task revision.
(a) if so, then sys.exit(0).
(b) if not, then continue to step #5.
5. Update the references.yml file to specify the current revision
6. Create a TIGBOT ticket with description including the changed tags and corresponding failure rates
7. Commit the changes in mongo-test-metada with a reference to the newly created TIGBOT ticket
8. Attempt to push the changes to GitHub
(a) If the push succeeds, then continue to step #9.
(b) If the push fails, then for up to 10 times, try the following:
- Fetch the branch from GitHub
git fetch origin ${project}
- Check that the local etc/test_lifecycle.yml is different from the one in the fetched branch. If not, then sys.exit(0).
- Perform step #4 on the fetched branch
- Rebase
git rebase origin/${project} --ignore-date
- Run step #8 again
(c) If push still fails, then close the TIGBOT ticket as "Won't fix" and sys.exit(1)
9. Resolves the TIGBOT ticket as "Fixed".