GithubHelp home page GithubHelp logo

ckeditor4-benderjs-runner's People

Contributors

comandeer avatar f1ames avatar jacekbogdanski avatar karoldawidziuk avatar sculpt0r avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ckeditor4-benderjs-runner's Issues

Integrate with BrowserStack (or similar)

As mentioned in README:

I have tested it one day and it seems to be doable AFAIR. The only issue could be with IE8 which displays alert about long executing script for bender and I'm not sure if it can be somehow disabled.

It should be doable but it's not really a small task. OTOH launchpad used here for launching browsers already have some API for using BrowserStack so it should work in a similar manner as launching local browsers. Additionally, tunneling will be needed here so BS can access locally launched bender instance.

Improve closing browser instances mechanism

I noticed when running locally, that browser instances are not correctly closed sometimes. Since we would like to run this on CI, it shouldn't matter much, but could be improved.

IE support

Frontend runner uses fetch API to send tests results to backend server. This means it will not work on any IE browser. We could go with feature detection here and use other method if fetch is not available.

Polish tests results logging

At the moment, logging is here and gives enough information. However, it could look slightly better and could use some colors and better formatting.

Edge support

It would be nice to have Edge support. It can be done via Windows image (see #13) or trying to run Edge on Linux image (should be doable too).

If not going with BS straightaway (#4) should also solve this issue.

Integrate with CI

As mentioned in README:

There are Linux, macOS and Windows images available so I assume at least Chrome, Firefox, Edge, Safari and IE11 can be covered here. For IE8-IE10 and mobiles (so Chrome@Android and Safari@iOS) we will need integration with BrowserStack (or similar service).

Since GH Actions allows matrix runs it will be easier to define - I'm not only sure if such steps run simultaneously (that would be faster) or one after another.

We can try with forked ckeditor/ckeditor4 repo. I guess the workflow could be triggered on commit and pullrequest events in ckeditor4 repo, checkout ckeditor4-benderjs-runner and try to run tests.

IE11 support

We can use either Windows machine or BrowserStack here. Tickets which may need to be fixed along the way:

Polish frontend runner code

The code works but could be slightly improved to be more readable and us Bender API whenever possible. Also it should work on older IEs so no ES6 here unfortunately.

Related issues: #6.

Changes in dependencies should trigger full run

Right now - changes in package.json produce an empty test query.

Due to the nature of such changes - it should be rather a full run. I know that our deps are only the 'dev' one - but still - passed full run indicates that nothing breaks. Also, invalid changes should be visible at least at installing deps level.

Runner sometimes gets stuck after launching browser instance

There are some runs where browser is launched and then nothing happens, for example:

I'm not sure why it happens. I was not able to reproduce it locally so far too. I suspect some issue with frontened runner and browser focus maybe? But the cause may be totally different ofc ๐Ÿค”

Allow controlling CI test runs with commit messages

Travis (or rather GitHub itself ๐Ÿค”) supports [skip ci] flag which skips CI runs when added to specific commit for this commit. We could have something similar (for commit title/message) which allows:

  • Skipping all tests, e.g. [tests:skip]
  • Running full test run e.g. [tests:all]
  • Running specific tests, e.g. [tests:testsPath] ([tests:is:unit,path:/tests/plugins/image2])

This can help us run more/less tests if we see there is some mismatch in tests diff thing (see #1). Or do a full run if we see that changes introduced are really broad.

Related to #1.

Introduce script detecting affected tests

As mentioned in README:

It can greatly decrease CI run times (as we don't want to run all tests each time). For PRs it should be easy since GH provides a way to get PR target branch (so diffing all changes is easy), for branches (not yet PRs) we could compare against main branches (so master and major - should be defined in config) and assume that target branch is the one which has less changes against. For commits pushed directly to main branches (so master and major - again should be configurable) we could only get changes from latest commit (which will basically cover all PR changes for merge commits) and also do full runs only once in a while (e.g. on a daily basis).

So the general idea is to diff with target branch, see all JS file which were changed and then decide which tests should to be run, ย few examples:

Changes in tests/plugins/autogrow/autogrow.js

If something is changed in test file we may simply run only this file or all test for a given plugin (because it might be some helper which have changed).

Changes in plugins/widget/plugin.js

If plugin code is changed we should run all tests for this plugin and all plugins which depends on it (in this case embed, image2,...)

Changes in some core files

Not 100% sure here, but it will be good to run most/all core tests and tests for most crucial plugins (and it's dependants) like widget, dialog, clipboard, etc

Changes in CHANGES.md file

No tests should be run.

Polish backend runner code

The code works but could be slightly improved to be more readable and split better into more reasonable parts. There are also some "not really nice" quick hacks here and there which could be ironed too.

Safari support

It would be nice to have Safari support. When we worked in December on the runner it worked with Travis CI osx image just fine (apart from #10) - see for example ckeditor/ckeditor4-benderjs-runner-tests@fb69346 and https://travis-ci.org/github/ckeditor/ckeditor4-benderjs-runner-tests/builds/750370942.

After getting back to this in May, Travis was not able to trigger any job containing osx image config. The job simply didn't run and when triggering manual Travis CI was giving were vague error (see related commits in ckeditor/ckeditor4-benderjs-runner-tests#3).

We can try with osx image once again and dig deeper or go with BS straightaway (#4) which should also solve this issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.