Comments (7)
Assigning @DavidLambauer
from mageos-magento2.
To be clear, the expected outcome of this issue is to have a GitHub workflow running all the static tests (passing) and publish the build reports. correct?
from mageos-magento2.
@DavidLambauer I'm not particularly interested in the build report being publicly accessible in a "pretty format". Whatever the job outputs in CI is enough for me.
from mageos-magento2.
I started working on this one. Doing some notes-taking here. Don't mind it, yet.
- I use the
graycoreio/github-actions-magento2/supported-version@main
to generate the matrix for the currently supported Magento 2 Versions. This action spits out a JSON with all the different PHP/Magento(And most likely more than that) combinations. Then, I can use that output ingraycoreio/github-actions-magento2/setup-magento@main
to setup a Magento with the parameters that I got from the step before. - I wonder if the Matrix is cached somewhere globally, so I can memorize it instead of wasting resources on it?
- The above setup results in a couple of different jobs. All of them are named similar and a suffix is added. Something like this:
setup-magento-extension (magento/project-community-edition:>=2.4.4 <2.4.5)
. The UI for this is horrible. I wonder if we can simplify the name generation somehow. Something likeMagento 2.4.4 / PHP 8.1
would make more sense.
from mageos-magento2.
The env variables for graycoreio/github-actions-magento2/setup-magento@main
are a little bit confusing. In particular:
- There is a mode
extension,
and there isextensions
.extensions
refers to the PHP Extensions, so the naming could bephp_extensions
to make it more clear. Theextensions
variable does not affect anything right now; it is not used further. - The
coverage
variable expects something likexDebug
and not a simpletrue/false
. I had to read the description twice to get it. Either, the description or the naming should be improved here. - Some vars are named in snake_case, and some in kebab-case.
from mageos-magento2.
I have something running as a first draft. As I mentioned, I use the setup-magento
actions to get all the different Magento/PHP Combos. Then, I run composer install
and run the tests with cd dev/tests/static && php ./../../../vendor/bin/phpunit . testsuite/Magento/Test/Legacy testsuite/Magento/Test/Integrity
.
I am not entirely sure what Tests run in Magento. When I look at this I see several static test suites. Digging deeper into the test results from Static tests for CE
I can see the Allure Report, but it only mentions Integrity tests.
My latest version: https://github.com/DavidLambauer/mageos-magento2/actions/runs/3414702008/jobs/5682998132
from mageos-magento2.
Summary of what was done so far:
- I set up a Workflow that spins up Magento Instances in several different Version Combinations. I use
graycoreio/github-actions-magento2/supported-version@main
. - The Workflow is available here:
https://github.com/DavidLambauer/mageos-magento2/actions
- The Matrix from @damienwebdev spins up 8 different Jobs
- Each Job spins up a clean Mage-OS
- Each Job runs the following tests:
- PHPUnit in
dev/tests/unit
- Integration Integrity Tests from
dev/tests/integration/testsuite/Magento/Test/Integrity
- Legacy Tests in
dev/tests/static/testsuite/Magento/Test/Legacy
- Static Tests in
dev/tests/static
- PHPUnit in
I have a couple of open todos and questions:
- The Matrix compilation should be cached somehow
- I need some help with the Workflow structure. Right now, everything is just clustered into this single Workflow file. I am sure we need smaller components not to run EVERYTHING ALWAYS.
- All the tests fail right now. Yet, I don't rely on the
phpunit.xml
rulesets. I tried reverse engineering thebin/magento dev:tests:run ...
command and ended up with an execution that ignores the rulesets. - The test output from the Allure Report for Static CE Tests mentions 4018 Tests, whereas my current test suite only contains 3824 tests. Am I missing some?
- I don't like the current execution. Static tests should be categorized into execution tools. So instead of having one big Static Tests Block, I would go with one for
phpmd
,phpstan
,Copy/Paste Detector
, etc... - The Allure Reports from Magento right now seem to be broken. They don't list all the test sites but only the integrity tests. This would be nice to have running over all the different test results.
- The Tests run forever... I can't believe that a single static test run takes more than 3h... Big Yikes...
from mageos-magento2.
Related Issues (10)
- Create a cloud dev env (gitpod, devcontainer, firecracker vm etc) for MageOS that allows one to get started with Magento in minutes (not days). HOT 1
- Introduce deptrac HOT 1
- Introduce PHPStan
- Add some linters
- Introduce Dependency Checker
- Write a Github Action that runs the integration tests of Magento 2 as described here https://developer.adobe.com/commerce/testing/guide/integration/
- Write a Github Action that runs the the semantic version checker as defined by https://developer.adobe.com/commerce/testing/guide/svc/ HOT 8
- Write a Github Actions that runs the Jasmine tests for the frontend https://developer.adobe.com/commerce/testing/guide/js/ HOT 2
- Write a Github Action that runs the MFTF tests of Magento 2 as described here https://developer.adobe.com/commerce/testing/functional-testing-framework/cicd/
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mageos-magento2.