ember-cli / ember-cli-update

Update Ember CLI projects
MIT License
278 stars 41 forks source link

Try out Azure pipelines #424

Closed kellyselden closed 4 years ago

kellyselden commented 6 years ago

https://azure.microsoft.com/en-us/blog/announcing-azure-pipelines-with-unlimited-ci-cd-minutes-for-open-source/

It gives 10 parallel runners. See if it is better than appveyor. We are always bottlenecked on appveyor. Use https://github.com/rwjblue/ember-angle-bracket-invocation-polyfill/blob/master/.vsts-ci.yml as reference.

cc @twokul @rwjblue @Turbo87

vtbassmatt commented 6 years ago

Hey. I'm a PM on Azure Pipelines and would be happy to help with anything y'all need.

jdbohrman commented 6 years ago

Hey. I'm a PM on Azure Pipelines and would be happy to help with anything y'all need.

I just started playing with Azure Pipelines. I've been an AWS guy for awhile but I'm enjoying what you guys offer.

kellyselden commented 6 years ago

@vtbassmatt I tried getting Azure Pipelines working here as a test before trying here, but I couldn't get it working. The first issue was getting parallel working with strategy/matrix here, the second was getting the chrome install to respond here, and the third was getting the first call to npm to stop swallowing execution in multiline scripts (had to abuse &&) here. If you could help there it would be greatly appreciated.

vtbassmatt commented 6 years ago

Hey @kellyselden.

We have two strategies, parallel and matrix. They're mutually exclusive to help avoid a combinatorial explosion of jobs. Parallel is good for slicing a test suite across multiple agent; matrix is good for duplicating a job with multiple configurations. Unless you're trying to control the number of jobs which execute at once -- in which case ignore everything I said and use this:

strategy:
  maxParallel: 2  # <-- number of jobs we'll queue simultaneously
  matrix:
    TEST_SCENARIO_1:
      TEST_SCENARIO: 1
    TEST_SCENARIO_2:
      TEST_SCENARIO: 2

I'm not sure why Chrome won't install. If you switch to using the vs2017-win2016 image, you'll find a lot of tools already installed, including Chrome.

Not sure what's going on with npm, either. I've never had problems with a construction like this:

- script: |
    npm install -g npm
    npm install
    npm test
  displayName: 'npm install and build'

On that one, what were you seeing?

kellyselden commented 6 years ago

@vtbassmatt In that npm case, the npm install -g npm would succeed, and then the job would finish. It will not run the next npm commands. If I put an echo command first, it will run the echo and the first npm command, then exit. It's almost like the npm is returning a strange exit code? If I join all the npm commands with &&, it works and runs them all.

vtbassmatt commented 6 years ago

That's really odd. I wonder if there's something funny going on with line endings? Our .NET-based parsing code should be agnostic to \n vs \r\n. But that's all I can think of that would be different between your script and mine.

vtbassmatt commented 6 years ago

@kellyselden how's it going? Did you ever get to the bottom of the weird npm behavior?

kellyselden commented 6 years ago

No I haven't. It's still eluding me.

vtbassmatt commented 6 years ago

I just tried your script both ways (with && and on newlines) and got equivalent results. Maybe we had a transient bug on our side?

vtbassmatt commented 6 years ago

Whoops, no, I'm wrong - I see the different now. Investigating.

vtbassmatt commented 6 years ago

I think this has something to do with the npm.cmd wrapper the npm team ships for Windows. In the three-line case, using call npm foo instead of npm foo fixed the problem. I still don't fully understand the issue but hopefully this unblocks you.

kellyselden commented 6 years ago

@vtbassmatt Thanks I will use that trick. Do you have a link to a ticket so I can add a comment why I'm using calls?

vtbassmatt commented 6 years ago

I don't. I think it's just a consequence of calling a .CMD from another .CMD, so maybe put that in the comment?

kellyselden commented 6 years ago

@vtbassmatt An even better workaround was to use powershell https://github.com/kellyselden/ember-cli-funnel/pull/86.

vtbassmatt commented 6 years ago

Beautiful. I'm not a PowerShell expert so I often forget to try it.

On Sat, Oct 13, 2018 at 8:01 AM Kelly Selden notifications@github.com wrote:

@vtbassmatt https://github.com/vtbassmatt An even better workaround was to use powershell kellyselden/ember-cli-funnel#86 https://github.com/kellyselden/ember-cli-funnel/pull/86.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ember-cli/ember-cli-update/issues/424#issuecomment-429536310, or mute the thread https://github.com/notifications/unsubscribe-auth/AArmK0IhrqbqP0NTz9ezhX-1l4O786mOks5ukdYtgaJpZM4WjlVV .

mike-north commented 5 years ago

Here's an example of Linux/Windows azure pipelines setups for this repo:

PR: https://github.com/mike-north/ember-cli-update/pull/1 Linux Build: https://dev.azure.com/ember-cli-azure-setup/ecli-update/_build/results?buildId=11&view=logs Windows Build: https://dev.azure.com/ember-cli-azure-setup/ecli-update/_build/results?buildId=12

There's still some windows-specific stuff that needs to be figured out (line endings, test timeouts need to be increased) but I have no reason to believe there's a fundamental wall we've hit

We have a working setup w/ Linux, Windows, Chrome, Firefox, Node and Browser tests and an ember-try-like fan-out of compatibility tests, all in Azure. This may be a useful reference:

https://github.com/typed-ember/ember-cli-typescript/pull/647

Here's an example of a new ember addon Code: https://github.com/mike-north/ember-azure-addon-tests Build: https://dev.azure.com/mnorth0570/ember-azure-addon-tests/_build/results?buildId=10

kellyselden commented 4 years ago

Closing in favour of github actions.