Граф коммитов

137 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge e337ad22d6
[jenkins] Fix provisioning old macOS bots. (#8056)
On old macOS bots we only want to provision Mono, so change the logic so that
we first ignore everything, then re-enable Mono.

This way we don't have to add new ignore flags here every time we add
something new to the provisioning script.

This fixes an issue where the script detects that dotnet isn't installed, and
shows an error, when trying to run tests on older macOS bots in CI.
2020-03-06 15:53:48 +01:00
Rolf Bjarne Kvinge 3136610ca4
Add dotnet as a configure option and provision it. (#8052)
* [configure] Add --[enable|disable]-dotnet.

And make it enabled by default on CI and disabled by default elsewhere for now
(because it makes the build significantly slower).

* [system-dependencies] Add support for provisioning .NET.

Also write a global.json in the root directory which is how we select which
.NET version to use.
2020-03-05 22:03:38 +01:00
Manuel de la Pena dc63adf39f
[VSTS] Remove the some hardcoded vars. (#7883)
Move to use a template for the DDFun pipeline. Copy the current pipeline
to a template, set some parameters and recreate the pipeline importing
the template.
2020-02-13 13:02:44 -05:00
Manuel de la Pena b83c81ee2b
[DDFun|VSTS] Add a URL to a more interesting view. (#7845)
Since we now have test being imported in DDFun, lets use the test
results view so that the monitoring person just need to click once.
2020-02-11 14:41:38 -05:00
Manuel de la Pena aed935a918
[Jenkins] Do not notarize on PRs. (#7836)
It was added as a backup and has not been needed. With the updates to
catalina it makes builds fail on CI.
2020-02-10 19:25:44 -05:00
Sebastien Pouliot afe664fd95
[jenkins] Switch to use the catalina bot group (#7819) 2020-02-07 13:02:15 -05:00
Manuel de la Pena 18d05d1e30
[Jenkins] Fix JenkinsFile groovy. (#7732) 2020-01-21 13:34:47 -05:00
Rolf Bjarne Kvinge f8951f092e
[jenkins] Fix a couple of issues. (#7726)
* Fix fetching author's name + email for failure reporting by running git in
  the directory where the repo actually is.
* Don't fail the build if we fail to generate/upload artifacts.json, instead
  show the failure everywhere and continue as if nothing happened. There seems
  to be a random issue with GitHub where a network request fails, and there's
  no need for that to fail the entire build.
2020-01-21 06:59:57 +01:00
Manuel de la Pena baf3d117f5
[VSTS] Bump maccore and ensure that the status can be posted. (#7718)
Bump maccore so that a status is posted when the device tests cannot be
scheduled. Update the JenkinsFile to make sure that the required token
is passed to the launch.sh script.
2020-01-15 17:06:19 -05:00
Vincent Dondain b062da170e
[DevOps] Fix Set GitHub Status (#7699)
In the DDFun pipeline case `cat: tmp.p: No such file or directory` so the `P` variable cannot be set and that's failing vsts-device-tests-set-status.sh
2020-01-13 10:20:09 -05:00
Manuel de la Pena 4e9d20f416
[Jenkins] Fix the HTML report url. (#7682)
In commit f1b92747c7 a line was removed
(f1b92747c7 (diff-d3d730446199284b8a960b44a62d4d13L47))
that broke the HTML report url. Re-add the wrongly removed line.

Fixes: https://github.com/xamarin/maccore/issues/2113
2020-01-07 00:22:25 -05:00
Vincent Dondain 5f89458a49 [DevOps] Fix DDFun pipeline GitHub comment report
- We had `./jenkins/vsts-device-tests-set-status.sh: line 88: HTML_REPORT: unbound variable` in the `Report results to GitHub as comment / status` step. Now that the HTML_REPORT is set this shouldn't happen anymore.
- The `Add summaries` task is reporting errors but it's working regardless. I believe this might be due to -x being set instead of the original +x (I changed that by mistake).
2019-12-26 09:13:41 -05:00
Vincent Dondain f1b92747c7
[DevOps] Convert our device tests into a pool agnostic yaml pipeline (#7604)
- Needed for the DDFun migration of our tests
- Don't use SSH because it's restricted on the new bots
- Use brand new DevOps feature to clone multiple repos via HTTPS
- Update names of all tasks (clearer)
- Simplify and re-use code
- Update all paths because our cloning strategy is different compared to old pipeline
- Update xharness to print "experimental" titles in GitHub comments
- Update xharness to not add the Html link for tests from the DDFun pipeline
- Fix all timeouts to be relevant to the tests length
- Split in multiple jobs (for GitHub status)
- Move longer scripts to independant files
- Make inline bash prettier
- Use a variable for the pool name
- Fix single space alignment
- Remove unused variable in `vsts-device-tests-set-status.sh` that broke it
- Bump maccore to use the right certificates and profiles
- Bump maccore to target the right pipeline
- Bump maccore to not use ssh in scripts
- Bump maccore and use persistCredentials

Notes:
- Right now the xharness test output can only be seen when downloading the zip file locally (better output soon)
2019-12-23 14:34:41 -05:00
Rolf Bjarne Kvinge d94d2f1ae6
[Jenkins] Make it possible to trigger device tests from PRs built on internal Jenkins. (#7424) 2019-11-13 22:07:20 +01:00
Rolf Bjarne Kvinge e23362854e
[tests] Add make target to manually launch a device test run for the current commit. (#7282)
* [tests] Add make target to manually launch a device test run for the current commit.

* Upload a manifest that can be found using only the hash, and use it to find the packages.
2019-11-07 22:41:24 +01:00
Connor Adsit 0f7213d481 Notarization tweaks (take 2) (#7287)
* Only notarize CI builds; timeout after 90 min

* Update jenkins/Jenkinsfile

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>

* Don't upload notarized pkgs if it fails

* Update jenkins/Jenkinsfile

Co-Authored-By: Manuel de la Pena <mandel@microsoft.com>
2019-10-24 07:48:50 +02:00
Rolf Bjarne Kvinge e919ae7f7a Revert "Only notarize CI builds; timeout after 90 min (#7280)"
This reverts commit cd396d63cc.
2019-10-23 08:10:47 +02:00
Connor Adsit cd396d63cc Only notarize CI builds; timeout after 90 min (#7280)
* Only notarize CI builds; timeout after 90 min

* Update jenkins/Jenkinsfile

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>
2019-10-23 07:46:55 +02:00
Rolf Bjarne Kvinge 4e5a2a3fc2
Automatically build mono from source if any of the archives aren't available. (#7160)
* Automatically build mono from source if any of the archives aren't available.

* [jenkins] Show in the PR report if mono was built from source.

* [jenkins] Make sure we got everything after running configure.
2019-10-04 09:55:29 +02:00
Rolf Bjarne Kvinge 865571a58a We don't need python3 to run tests on older macOS versions. 2019-09-16 15:26:12 +02:00
Rolf Bjarne Kvinge 303aa0a649 Merge remote-tracking branch 'origin/xcode11' into master-xcode11 2019-09-13 18:35:18 +02:00
Rolf Bjarne Kvinge 0008c20abf
Implement notarization. (#6928)
* Add a dummy x86_64 slice to all our native libraries that don't have one. (#6848)

Apple's notarization tool has a bug where they incorrectly flag Mach-O
binaries without an x86_64 slice, so make sure all our libraries have one.

* Jenkinsfile notarization (#6869)

* Add in notarization script for xamarin.mac/xamarin.iOS

* Flatten the list to get rid of the braces

* Add in keychain password

* Add login.keychain back in to access codesigning certificates

* Always sign pkgs, upload notarized copies

* Enable ios notarization and make notarized pkgs public

* Make notarization non-fatal

* Publish GH statuses for notarized PKGs

* Don't forget to declare URI variables for notarized pkgs

* report proper package links

* [jenkins] Improve package reporting.

* Use dummy function name which our tests won't complain about.
2019-09-09 00:34:11 -07:00
Connor Adsit c384add291 Jenkinsfile notarization (#6869)
* Add in notarization script for xamarin.mac/xamarin.iOS

* Flatten the list to get rid of the braces

* Add in keychain password

* Add login.keychain back in to access codesigning certificates

* Always sign pkgs, upload notarized copies

* Enable ios notarization and make notarized pkgs public

* Make notarization non-fatal

* Publish GH statuses for notarized PKGs

* Don't forget to declare URI variables for notarized pkgs

* report proper package links

* [jenkins] Improve package reporting.
2019-09-02 03:35:14 -07:00
Rolf Bjarne Kvinge 7d891641c8
[jenkins] Don't trust brew to not fail when things are working fine. (#6757)
brew may fail to install 7z if 7z is already installed, so ignore any brew
failures when trying to install 7z.

If 7z really is non-functional on the machine, then it'll fail later anyway.
2019-08-13 15:44:16 +02:00
Rolf Bjarne Kvinge 22b8c8c169
[tests] Package Xamarin.Mac tests using 7z instead of zip. (#6583)
This makes the package 33% smaller (from 176mb to 117mb).
2019-07-22 00:30:14 -07:00
Rolf Bjarne Kvinge 121f04ce3d
[tests] Improve handling of permission dialogs. Fixes xamarin/maccore#1856. (#6544)
* 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.
2019-07-12 07:05:57 -07:00
Rolf Bjarne Kvinge c3757f5551
Build mono from source by default in all scenarios, not just CI. (#6363)
Many people are running into problems building xcode11 because they have to
"./configure --disable-packaged-mono" first.

So disable the packaged mono by default (and add a way to enable it again
manually with "./configure--disable-packaged-mono=no").
2019-06-20 07:44:34 +02:00
Rolf Bjarne Kvinge e01096c6f7 Fix logic confusion. 2019-06-04 07:28:21 -07:00
Rolf Bjarne Kvinge 02d01451a0 Build mono from source for now. 2019-06-04 07:24:11 -07:00
Rolf Bjarne Kvinge 72d7a8ad9b Merge remote-tracking branch 'origin/master' into binary-artifacts 2019-05-30 07:25:03 +02:00
Rolf Bjarne Kvinge 215bda500e
Show better error when the mono archive isn't available. Fixes xamarin-macios/maccore#1655. (#6155)
* Show better error when the mono archive isn't available. Fixes xamarin-macios/maccore#1655.

Fixes https://github.com/xamarin/maccore/issues/1655.

* [jenkins] Show better build failure in the build report PR comment.
2019-05-29 05:57:49 -07:00
Rolf Bjarne Kvinge 2ac3008237 [jenkins] Ignore the 7z dependency when running tests on older macOS versions.
We don't need 7z installed to just run the tests.
2019-05-29 12:56:44 +02:00
Alexander Köplinger 48b3b82410 Merge remote-tracking branch 'upstream/master' into binary-artifacts
# Conflicts:
#	builds/Makefile
#	external/mono
2019-05-22 20:07:18 +02:00
Rolf Bjarne Kvinge 885ed0d4b9
[jenkins] Adjust global timeout. (#6092)
We have a 13-hour timeout for running the tests [1], but that won't work if
the timeout for the entire Jenkins pipeline is lower, so adjust the timeout
for the entire Jenkins pipeline to be more than the sum of all the nested
timeouts.

[1] 94fe39b118 (diff-68c8473bbe1d4346ecff3d74522a31f8R675)
2019-05-21 21:58:42 -07:00
Alexander Köplinger 247a6bf551 Switch to mono archive and remove submodule 2019-05-21 22:16:02 +02:00
Manuel de la Pena 94fe39b118
[XHarness] Do use the test dlls from the mono downloads. (#6055)
This updates the project generation. We cannot yet fully remove the submodule because:

* We are missing the xunit dlls which should be added in the SDK.
* We have not yet remove all the old style tests. Would make the PR huge, better to deal with it in a diff PR.
* The xunit CoreLib tests have issues loading all the tests, needs some extra work and again, the PR is already large.

Fixes: xamarin/maccore#1199
Fixes: xamarin/maccore#1204
Fixes: xamarin/maccore#1209
Fixes: xamarin/maccore#1510
2019-05-19 14:55:14 -07:00
Manuel de la Pena 81d6225eb7
[XHarness] Fix some issues in the BCL test generator. (#5938)
We had issues in the code that adds a type found in an assembly to
ensure that it was not removed by the linker. This resulted in some
assemblies having 0 tests.

Added the needed ignore for the corlib tests and system ones.
2019-05-11 12:03:38 +02:00
Rolf Bjarne Kvinge 1fce966233
[builds] Fix race condition when building device runtimes. (#5960)
* [builds] Fix race condition when building device runtimes.

We need to complete the corresponding cross builds first, because the cross
builds will also try to configure device builds, so we might end up with two
make processes trying to configure the same target simulatenously.

* [jenkins] Add support for building mono from source in pull requests by using labels.
2019-04-30 07:23:49 +02:00
Rolf Bjarne Kvinge 17fe95a820
[jenkins] Add support to build.sh for timing out the build. (#5952)
* [jenkins] Add support to build.sh for timing out the build.

* Test timeout support

* [jenkins] Tell the world what happened.

* [jenkins] Minor announcement fix + disable test mode.
2019-04-26 23:06:12 +02:00
Rolf Bjarne Kvinge bd457212d5
[tests] Add sample tester. (#5870)
* [tests] Add sample tester.

Add a unit project that looks for iOS/macOS/tvOS sample projects in several
repositories, and builds them all.

* [tests][sampletester] Remove known issue which has now been fixed.

* [tests] Only run sample tests on CI in Azure Devops.

* Remove the possibility of automatically running the sample tests with
  xharness (so the sample tests won't run on PR bots or internal bots when the
  'run-all-tests' label is added). It's still possible to run the sample tests
  manually from the xharness web UI.

* Automatically trigger the sample test run in Azure Devops if the
  'run-sample-tests' label is applied to a PR (and that PR is executed on
  internal Jenkins).

* Fix typo.

* Fix path.

* Verbose output to track down scheduling failure.

* Bump maccore to get improved debug spew.

Diff: f527c9c526..f89d74b165

* [tests][sampletester] Fix build for TodoWCF.
2019-04-25 17:18:43 +02:00
Rolf Bjarne Kvinge d4e41445a2
[jenkins] Set a 1h build timeout. (#5893)
Builds take approximately 30 minutes on a bot now, so 1 hour should be plenty.

This makes sure a 32-bit dialog doesn't waste 9h of bot time just sitting
there.
2019-04-12 19:06:04 +02:00
Vincent Dondain 86d1b42ad2 Merge branch 'xcode10.2' into master-merge-xcode10.2 2019-04-03 13:57:31 -04:00
Manuel de la Pena f5bd6bc38c
[Jenkins] When running tests on VSTS do specify a device type. (#5817) 2019-03-29 13:28:08 +01:00
Manuel de la Pena 1cb12aec0a
[Jenkins] Increase the Jenkins timeout since tests are taking longer now. (#5797) 2019-03-23 15:04:56 +01:00
Rolf Bjarne Kvinge 721127c7f2 Bump maccore for a provisioning fix. (#5783)
* Bump maccore for a provisioning fix.

Diff: 71a563c892...cd07e49961

* Get verbose output.
2019-03-20 17:22:00 +01:00
Rolf Bjarne Kvinge 3b89c618cd
Bump maccore to get update to bot provisioning. (#5727)
* Bump maccore to get update to bot provisioning.

Diff: 3105682752...f3034c261f

* [jenkins] Prepackaged macOS tests only need a custom keychain.
2019-03-07 16:04:35 +01:00
Tim Miller 567b60b4f4 Add Additional Metadata Generation During Builds (#5718)
Updates the jenkinsFile to include generating ci-checkout.json and dependency-info.json.

ci-checkout.json is a list of all of the repositories included in the workspace of the project and their respective hashs.

dependency-info.json includes all of the info in ci-checkout.json, as well as a scan of the containing cs/fsproj files and their containing package and project references.
2019-03-07 08:42:13 +01:00
Rolf Bjarne Kvinge 9168a63698
[tests] Adjust system check when running tests on older macOS versions (we don't need simulators) (#5713)
Fixes this warning:

    make: *** tools/siminstaller: No such file or directory.  Stop.
    Can't check if simulators are available, because siminstaller failed to build.
2019-03-05 17:18:18 +01:00
Rolf Bjarne Kvinge c02fdb8565 Xcode 10.2 requires macOS Mojave. 2019-01-28 06:19:26 +01:00
Rolf Bjarne Kvinge 4ea181e95b [jenkins] Don't execute the packaged XM tests on the main macOS version. (#5165)
* [jenkins] Don't execute the packaged XM tests on the main macOS version.

Don't execute the packaged XM tests on the main macOS version, since it's redundant.

It also prevents a potential test deadlock if all main bots are busy.

* Rework to make it show better in the Jenkins UI.
2019-01-28 06:17:56 +01:00