qentinelqi / qweb

Keyword driven automation for the web
https://github.com/qentinelqi/qweb
Apache License 2.0
40 stars 17 forks source link

Rework GitHub Actions #82

Closed turunenm closed 2 years ago

turunenm commented 2 years ago

Split test workflows into different files, _staticanalysis.yml, [os]_acceptance.yml and _testsreusable.yml

_staticanalysis.yml runs type checking and linting, these used to be part of [os]_acceptance.yml and were ran 18 times instead of once. [os]_acceptance.yml now only contain matrix variable definitions which are passed to _testsreusable.yml _testsreusable.yml contains generic unit and acceptance test workflow which works on all OS platforms (though limited to X-latest OS:s)

tkoukkari commented 2 years ago

Only question:

Those were intentionally in separate files, since there are A LOT more issues with Windows/Mac runners than Linux runners in Github.

tkoukkari commented 2 years ago

Actually second question as well. Can we still get status badges by platform as previously: image

turunenm commented 2 years ago

Only question:

* If something fails, does it cancel ALL other jobs or only jobs from that same platform as previously?

* Same with re-runs as well

Those were intentionally in separate files, since there are A LOT more issues with Windows/Mac runners than Linux runners in Github.

Failed execution is not reflected to other executors (even within the platform). This can also be changed with fail_fast: false

strategy:
      fail-fast: false
      matrix:
        ...

With re-runs you can choose to Re-run all jobs or Re-run failed jobs If you want to manually execute all tests of a specific platform you can use workflow_dispatch

Actually second question as well. Can we still get status badges by platform as previously: image

In this PR all of the os/python/browser combinations are handled as jobs instead of separate workflows. Currently badges can not be assigned for jobs so the os-specific badges are not possible with this style.

turunenm commented 2 years ago

Removed the chained execution of Static Analysis -> OS-tests Now the Static Analysis and the OS-tests all start at the same time and failed Static Analysis does not block OS-tests

Changed _osacceptance.yml files to use the _testsreusable.yml to lessen code duplication

Now the workflows behave like previously with one difference: Static Analysis is executed in it's own workflow and only once. Previously static analysis was part of _osacceptance.yml workflows and was executed total of 18 times

tkoukkari commented 2 years ago

Ok, I would rather keep OS specific badges.

turunenm commented 2 years ago

Ok, I would rather keep OS specific badges.

Badges work like they used to (since my previous comment)

Should be good for review 👍

tkoukkari commented 2 years ago

Ok, I would rather keep OS specific badges.

Badges work like they used to (since my previous comment)

Should be good for review 👍

Ok, great. Then no objections :)