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

170 Коммитов

Автор SHA1 Сообщение Дата
Manuel de la Pena 1e78a9de6a
[VSTS] Move away from Jenkins to VSTS pipelines for xamarin-macios. (#10302)
Initial implementation of the projects CI in yaml to be uses with VSTS. The port is not complete as there are some small issues to address, the following are the known issues:

* https://github.com/xamarin/maccore/issues/2349 
* https://github.com/xamarin/maccore/issues/2350
* https://github.com/xamarin/xamarin-macios/issues/10299
* https://github.com/xamarin/xamarin-macios/issues/10298
* https://github.com/xamarin/xamarin-macios/issues/10300
* https://github.com/xamarin/maccore/issues/2351

Nevertheless the CI already compiles the project, creates the pkgs and nugets and publishes them so that we can create insertions.


Co-authored-by: Mike Bond <mjbond-msft@outlook.com>
Co-authored-by: cadsit <connor.adsit@gmail.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-01-06 10:48:54 -05:00
Rolf Bjarne Kvinge f555c9656b
[jenkins] Clean more Xcodes. (#10102) 2020-11-18 12:18:53 +01:00
Rolf Bjarne Kvinge 0011fc1488
[jenkins] Add missing eol to pr comments. (#10029)
Example of broken pr comment: https://github.com/xamarin/xamarin-macios/pull/10020#issuecomment-720606818
2020-11-03 14:13:44 +01:00
Rolf Bjarne Kvinge ef91c798dc
[dotnet] Package the workloads in a Windows installer (.msi) as well. (#9979) 2020-10-28 11:09:55 +01:00
Manuel de la Pena 00e25199ae [Main] Bring Xcode12.1 support. 2020-10-20 17:55:31 -04:00
Rolf Bjarne Kvinge 3bfc112bb5 [jenkins] Publish our new packages. 2020-10-16 14:27:42 +02:00
Manuel de la Pena dcb0c93ab0 [Xcode12] Bring xcode 12 changes into main. 2020-09-23 16:05:22 -04:00
Rolf Bjarne Kvinge 5bcf5b877d
[jenkins] Don't try to run the packaged Xamarin.Mac tests if none were built. (#9658)
* [jenkins] State all the time where we're working on. (#8447)

It's annoying to have to track it down all the time when something goes wrong.

* [jenkins] Make it possible to skip running packaged Xamarin.Mac tests by setting the 'skip-packaged-xamarin-mac-tests' label. (#9170)

Diff is best viewed by ignoring whitespace.

* [jenkins] Don't try to run the packaged Xamarin.Mac tests if none were built.

* [jenkins] Add support for specifying custom labels using a file.

This is a partial backport of #8549.
2020-09-21 09:41:48 +02:00
Manuel de la Pena eb9b690fe0 Merge xcode12 into d16-8. 2020-09-18 17:51:52 -04:00
monojenkins c8e056166b
[jenkins] Don't try to upload any packaged Xamarin.Mac tests if there aren't any or the failed to compile. (#9645)
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2020-09-16 10:25:59 -04:00
Rolf Bjarne Kvinge a0797eb822
[jenkins] Fix version logic with macOS 11.0. (#9635)
Fix version logic with macOS 11.0 so that we don't compute all versions by
doing a range computation on the minor version only.

This makes it so that we run on older macOS bots again.

There are also a few other fixes for macOS 11.0.
2020-09-16 09:41:38 +02:00
Rolf Bjarne Kvinge 9ed9c7f5b9
[jenkins] Clean up old simulators and Xcodes before every build. (#9547) 2020-09-01 22:29:42 +02:00
Rolf Bjarne Kvinge dd1205a222
[jenkins] Make it possible to skip running packaged Xamarin.Mac tests by setting the 'skip-packaged-xamarin-mac-tests' label. (#9170)
Diff is best viewed by ignoring whitespace.
2020-07-24 09:21:31 +02:00
Rolf Bjarne Kvinge 7a7c6f6286
[jenkins] Don't try to publish NuGet packages if there are no NuGet packages. (#9171)
Also clean the package directory before creating any packages, otherwise we
might end up trying to upload packages from the previous build.

Diff best viewed by ignoring whitespace.
2020-07-24 09:21:14 +02:00
Rolf Bjarne Kvinge cd265f852c
[configure] Add an option to enable/disable install-source. (#8904)
Disable by default, but automatically enable for CI builds.

This makes running 'make install' with a fully built tree take ~8s instead of
20+s.
2020-06-22 10:26:21 +02:00
Rolf Bjarne Kvinge 95e42b9266
Rename master to main. (#8851)
* Fix links that point to master to point to main instead.
* Implement support in the sample tester for specifying the default branch for
  each sample repo.
* Fix various text / documentation to say 'main' instead of 'master.'
* Push to 'main' instead of 'master' in xamarin-macios-data.
* Fix xharness to make 'main' the special branch with regards to documentation tests as opposed to 'master'.
* Fix various CI to use 'main' instead of 'master'.
* Bump maccore

    New commits in xamarin/maccore:

    * xamarin/maccore@ed6d146822 Rename 'master' to 'main'. (#2233)

    Diff: 424fa26148..ed6d146822
2020-06-16 15:51:44 +02:00
monojenkins 9438658cc2
[jenkins] Timeout the tests on older macOS bots after 15 minutes. (#8839)
Prevents deadlocks from holding up everything for hours:
https://jenkins.internalx.com/blue/organizations/jenkins/macios/detail/master/1583/pipeline/271/

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2020-06-11 15:47:31 +02:00
Rolf Bjarne Kvinge c138becdf1
[jenkins] Fix assumption in build-nugets.sh. (#8693)
* The current directory doesn't have to be the script directory, so only
  execute 'make' after we've changed the current directory to a known
  directory.
* 'make ...' can output extra lines, depending on other circumstances, so
  change logic to filter to just the line we're interested in:

    DOTNET_NUPKG_DIR='Found ccache on the system, enabling it
    Detected the maccore repository, automatically enabled the Xamarin build
    Downloading mono archives
    /Users/rolf/work/maccore/msbuild/xamarin-macios/_build/nupkgs'
2020-05-27 17:16:54 +02:00
Rolf Bjarne Kvinge 732847bd85
[jenkins] Use the existing DOTNET_NUPKG_DIR variable when looking for built nugets. (#8691) 2020-05-27 15:10:29 +02:00
Rolf Bjarne Kvinge 7b834babca
[jenkins] Don't try to upload any packaged Xamarin.Mac tests if there aren't any or they failed to compile. (#8678) 2020-05-27 08:33:46 +02:00
Rolf Bjarne Kvinge ac6258678c
[jenkins] Timeout the tests on older macOS bots after 15 minutes. (#8637)
Prevents deadlocks from holding up everything for hours:
https://jenkins.internalx.com/blue/organizations/jenkins/macios/detail/master/1583/pipeline/271/
2020-05-21 17:27:53 +02:00
Rolf Bjarne Kvinge 7ea03b8dd8
[jenkins] Hide the list of packages by default. (#8595)
* [jenkins] Hide the list of packages by default.

The list of packages got big with the NuGet packages, and we usually don't
want to see the whole thing, so hide it by default.

* Add newline to fix markdown parsing.
2020-05-14 15:47:47 +02:00
Rolf Bjarne Kvinge 5834572741
Create and publish .NET NuGet packages. (#8576)
Create the various NuGet packages to support .NET 5+. The packages are
currently empty (and not very useful), but the actual content will come later.

The current set of NuGet packages are (this list is duplicated for each
platform: iOS, tvOS, watchOS and macOS):

* Microsoft.iOS.Sdk: currently contains the basic MSBuild targets files for an
  MSBuild Project SDK. Will eventually contain all the build logic. Might also
  eventually contain other tools (mlaunch, bgen, etc.), but these might also
  end up in a different package.
* Microsoft.iOS.Ref: will contain the Xamarin.iOS.dll reference assembly.
* Microsoft.iOS.Runtime.[RID]: will contain architecture-specific files
  (libxamarin*.dylib, the Xamarin.iOS.dll implementation assembly, etc.):

The NuGets built on CI are automatically published to a NuGet feed.

The versioning for the NuGet packages required a few changes: OS bumps are now
changed in Make.versions instead of Make.config (this is explained in the
files themselves as well).
2020-05-13 15:23:29 +02:00
Rolf Bjarne Kvinge 82c146bbd4
[system-dependencies] Add support for provisioning .NET 5 separately. (#8578)
* [system-dependencies] Add support for provisioning .NET 5 separately.

Add support for provisioning .NET 5 separately, and by default install it
locally (into builds/downloads) to avoid consuming a lot of disk space with
the various preview versions we'll need. A system install is still detected
and used if available.

* Use full path to the dotnet binary, since it might not be in PATH.

* [jenkins] Clean first, then provision.

Otherwise we'll clean whatever we provision locally.
2020-05-13 08:31:40 +02:00
Rolf Bjarne Kvinge 024538e1ba
[jenkins] Don't show multiple identical failed stages. (#8560) 2020-05-11 14:27:55 +02:00
Rolf Bjarne Kvinge 1457f8666d
[jenkins] Add support for specifying custom labels using a file. (#8549)
This makes it possible to select what should be done on CI when building a
commit on internal Jenkins (as opposed to when building a pull request, in
which case labels can be set on the pull request).
2020-05-08 15:44:41 +02:00
Rolf Bjarne Kvinge 81f019a59e
[jenkins] Provide a login keychain password when installing provisioning profiles. (#8456)
This seems to fix an issue where the login keychain would somehow end up
locked, which would break provisioning.
2020-04-27 08:32:36 +02:00
Rolf Bjarne Kvinge aa45a2d6e7
[jenkins] State all the time where we're working on. (#8447)
It's annoying to have to track it down all the time when something goes wrong.
2020-04-23 10:10:50 +02:00
Rolf Bjarne Kvinge 936ec3c3fc
[jenkins] Fix error reporting for the 'Generate Workspace Info' stage. (#8442)
* Set the 'currentStage' variable upon entry so that reporting reports any
  problems in the correct stage.
* Rewrite the 'getRedirect()' exception message to not use an undefined
  variable (content).
2020-04-22 08:49:04 +02:00
Rolf Bjarne Kvinge 151342ba23
[jenkins] Add a timeout to the final tasks as well. (#8390)
This makes it so that if something goes wrong when publishing results and it
ends up stuck, the job won't stay hung for days until we realize what's
happening.
2020-04-16 09:47:03 +02:00
Rolf Bjarne Kvinge a0aa48465b
Fix generator diff after .NET modifications. (#8180)
* Some files were renamed after the .NET support was implemented, so the list
  of files to ignore for the diff had to be updated.
* Update .gitignore.
2020-03-24 15:52:03 +01:00
Rolf Bjarne Kvinge 105dc14dd7
[jenkins] Add missing parenthesis in text. (#8135) 2020-03-18 16:22:57 +01:00
Rolf Bjarne Kvinge 9b63357612
Limit GitHub comments to 32768 characters. (#8084)
GitHub has a limit of twice that for comments, but 32k should be more than
enough to say what we want to say.
2020-03-11 19:56:50 +01:00
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