You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by Pieter Van Poyer <Pi...@portofantwerp.com> on 2020/12/05 14:39:31 UTC

RE: GitHub Actions for paramedic and plugins

Hey Tim

I am maybe a little late to the party. But this is a great effort.

It would be absolutely great to have a stable and working CI (testing) system.
Now when you submit a PR, the tests on CI are mostly red. That's annoying.

Losing ios 11.4 wouldn't be a disaster.

Kind regards

Pieter Van Poyer
1700
DI/DB

Havenbedrijf Antwerpen/Antwerp Port Authority
Zaha Hadidplein 1
2030 Antwerpen, België
T +32 3 229 76 85
Pieter.VanPoyer@portofantwerp.com





-----Oorspronkelijk bericht-----
Van: Brust, Tim <ti...@sinnerschrader.com>
Verzonden: donderdag 26 november 2020 15:26
Aan: dev@cordova.apache.org
Onderwerp: GitHub Actions for paramedic and plugins

Hi there,

As you might have noticed, our CI is currently red. While it's great that we do not block our releases because of it, it's not an ideal situation.

A short background why is broken:
We use Travis CI's virtual machines to execute our tests in combination with Sauce Labs, i.e., cordova-paramedic that runs on the Travis CI VM  opens a secure tunnel to the Sauce Labs selenium grid.
This allows for instance to test an iOS simulator on a Windows machine, as the simulator/emulator runs on another machine and communicates via the WebDriver protocol.
Sauce Labs offers real mobile devices and virtualized ones. We only use the latter. [1] Unfortunately, there is a network issue between the Sauce Labs and the Travis CI VM's, the tunnel seems established but no network requests come through - but not for all combos, just for some.
I've reached out to Travis CI's support and they pointed the finger to Sauce Labs.
Multiple attempts to have a real network engineer assigned to this task instead of the service level 1 assignee failed and they've just closed the ticket.

On top of this issue lies the problem with external contributions (i.e., outside from the Apache organization). Obviously, Sauce Labs needs some sort of credentials to work. We use the deprecated JWT addon at Travis [2], which might be disabled at any time, too.
Sadly, there is no known solution on how to securely pass the credentials to external forks/pull requests. There is no solution on how to make secrets available to forks on GitHub Actions neither.

As we are moving to GitHub Actions (or at least that's our goal), I've taken a look how to tackle the above problem.
Given the fact that we test simulators and emulators on Sauce Labs anyways, we might be able to execute everything via GitHub Actions only, i.e., no credentials issue.

The GitHub Actions runner have a big variety of available Xcode and iOS versions in their virtual environments. [3] And to have some good news - iOS works! [4] - the only downside is that we can't test iOS 11.4, but IMHO this loss would be OK.

In theory, Android works, too. With the help of the reactivecircus/android-emulator-runner action we can setup the emulators with a specific target API level. It also handles accepting the permissions etc. [5] At least, the logs show that the emulator booted and some things happened (like installing the APK)

For the browser tests, some changes in cordova-serve would be needed. In order to launch Chrome, Firefox etc. in headless mode, we would need to pass those arguments. Currently there is an open issue to add this functionality. [6]

My plan for the next week(s) is to investigate the Android timeouts and to test if a patch in cordova-serve would be enough to make headless launching possible to make the CI green.
If this works, we would have a blueprint that could be copied to the plugins. With the matrix syntax of GitHub Actions we can generate an easy to maintain and extendable testing matrix.
One feature I really like is splitting the configs in different files, as opposed to the gigantic .travis.yml.

Let me know what you think, I'm eager to get some feedback.
My work can be seen in the feature branch feat/gh-actions [7], especially this commit: [8] Cheers, Tim

[1] - https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapp.saucelabs.com%2Fopen_sauce%2Fuser%2Fsnay%2Ftests&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492593209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=4n5QjT2zqfDVCOiu%2FMiz6cMsLn9LvhSBqXBBGpgMnJA%3D&amp;reserved=0
[2] - https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fblog.travis-ci.com%2F2018-01-23-jwt-addon-is-deprecated&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492593209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=5RZBQeg%2FNYeEUK4VJrLrnDyXKID1dbqMmpFYftkOOeI%3D&amp;reserved=0
[3] - https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Factions%2Fvirtual-environments%2Fblob%2Fmain%2Fimages%2Fmacos%2Fmacos-10.15-Readme.md%23xcode&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492598202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=NXAv%2BG8H4cznc4M8X98x2uW5Ji45IqzmRV1ZbtxsJvc%3D&amp;reserved=0
[4] - https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fcordova-paramedic%2Factions%2Fruns%2F385358819&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492598202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=cUQ1HkSTTWUlKyO9VU9WinpaeoOprscTavfrxvy1lpI%3D&amp;reserved=0
[5] - https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FReactiveCircus%2Fandroid-emulator-runner&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492598202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=y9v20M5xvevGKjv3nY%2FCysiONY7X89DIT%2B2WpU1bTpY%3D&amp;reserved=0
[6] - https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fcordova-serve%2Fissues%2F18&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492598202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=gzfDJ9SBoiPF5luL8CZHCCOWshNRR11mhpCAnZYNq%2BU%3D&amp;reserved=0
[7] - https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fcordova-paramedic%2Ftree%2Ffeat%2Fgh-actions&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492598202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=8jYgQzOqBXT1PrBek%2B%2FHoISU5SKgApPtJyrvz4Pk5h8%3D&amp;reserved=0
[8] - https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fcordova-paramedic%2Fcommit%2F6657551feae3840b9f4fa3a8fc23010515b5b87f&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492598202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=8QVAcwjYRYy2Gfd8aFMKlyu%2FTAGaeyR0vWmdzgNo9hA%3D&amp;reserved=0
--
Tim Brust, Product Engineer

tim.brust@sinnerschrader.com<ma...@sinnerschrader.com>

SinnerSchrader Deutschland GmbH | SinnerSchrader Group Part of Accenture Interactive Völckersstraße 38, 22765 Hamburg, Germany

Amtsgericht Hamburg HRB-Nr. 63663

Geschäftsführung: Dr. Axel Averdung (Sprecher), Holger Blank, Kristina Bonitz, Peggy Hutchinson, Philipp Kafkoulas, Florian Langmack, Sven Schmiede, Pia Schott

Büros: Berlin, Hamburg, Frankfurt a. M., München, Prag

https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.sinnerschrader.com%2F&amp;data=04%7C01%7CPieter.VanPoyer%40portofantwerp.com%7Ca73853478c014d3b99c508d892172a68%7C2337dcc63a214d95bf72da5551a9b048%7C0%7C0%7C637419975492603194%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=lPVqgK1%2FqmxIUrol9ddFCzwn2%2BTBEtcdB%2FBj8iFA2xY%3D&amp;reserved=0 | NEXT AGENCY

________________________________

This message is for the designated recipient only and may contain privileged, proprietary, or otherwise private information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited.

________________________________

Deze e-mail en alle gekoppelde bestanden zijn officiele documenten van Havenbedrijf Antwerpen NV van publiek recht en kunnen vertrouwelijke of persoonlijke informatie bevatten. Gelieve de afzender onmiddellijk via e-mail of telefonisch te verwittigen als u deze e-mail per vergissing heeft ontvangen en verwijder vervolgens de e-mail zonder deze te lezen, te reproduceren, te verspreiden of te ontsluiten naar derden. Havenbedrijf Antwerpen NV van publiek recht is op geen enkele manier verantwoordelijk voor fouten of onnauwkeurigheden in de inhoud van deze e-mail. Havenbedrijf Antwerpen NV van publiek recht kan niet aansprakelijk gesteld worden voor directe of indirecte schade, verlies of ongemak veroorzaakt als gevolg van een onnauwkeurigheid of fout in deze e-mail.

English Translation: This e-mail and all attached files are official documents of Antwerp Port Authority and may contain confidential or personal information. If you have received this e-mail in error, you are asked to inform the sender by e-mail or telephone immediately, and to remove it from your system without reading or reproducing it or passing it on to other parties. Antwerp Port Authority is in no way responsible for any errors or inaccuracies in the contents of this e-mail, nor can it be held liable for any direct or indirect loss, damage or inconvenience arising from any such errors or inaccuracies.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org