121f04ce3d
* macOS 10.15 starts putting up permission dialogs we can't automatically dismiss anymore, so start honoring the 'IncludeSystemPermissionTests' option for macOS tests. * Improve the 'IncludeSystemPermissionTests' option to have three states: if set (either true or false), that takes precedence, but if not set, we now don't run any tests that require permission dialogs on macOS or on device if we're running in CI. Tests executed locally will still put up dialogs, both on macOS and on device. * This needed a few changes to the html report, since the 'IncludeSystemPermissionTests' is exposed in the UI and the code didn't handle the three different states. * Update a few tests to check for permission to the contacts. Fixes https://github.com/xamarin/maccore/issues/1856. |
||
---|---|---|
.. | ||
.gitignore | ||
Jenkinsfile | ||
Makefile | ||
README.md | ||
add-commit-comment.sh | ||
add-commit-status.sh | ||
build-api-diff.sh | ||
build-package.sh | ||
build.sh | ||
compare.sh | ||
fetch-pr-labels.sh | ||
prepare-packaged-macos-tests.sh | ||
productsign.sh | ||
provision-deps.sh | ||
publish-results.sh | ||
run-tests.sh | ||
utils.groovy | ||
vsts-device-tests-set-status.sh |
README.md
Jenkins
This directory contains all the scripts to be executed as steps in the jenkins build bots for each of the PR in the project. The expected order in which they have to be executed is as follows:
- provision-deps.sh : Downloads and installs the project dependencies.
- build.sh : Builds the project.
- run-tests.sh : Runs the tests.
- build-api-diff.sh : Builds the API diff.
Jenkinsfile
This file contains the logic to run on our internal Jenkins, available here: http://xamarin-jenkins/blue/organizations/jenkins/macios/activity
The Jenkins job is a multi-branch pipeline job, it will execute in the following conditions:
- For all branches in the xamarin org (not forks) that has a jenkins/Jenkinsfile file.
- For all pull requests from people with write access (also conditional on having a jenkins/Jenkinsfile file).
In very broad strokes, the Jenkins job will:
-
Checkout xamarin-macios
-
Build
-
Create packages, upload them to Azure and publish the links to the packages as GitHub statuses.
-
Run our test suite.
-
Run selected Xamarin.Mac tests on all macOS versions we support. This is done in parallel with the normal test run.
If a particular macOS version must be excluded temporarily from testing, search Jenkinsfile for
excludedOSes
and follow the instructions you'll find.