Yota
Very Senior Member
Simply put, Actions is a function provided by Github, which can compile the required code to binary files directly on the Github cloud, supporting all languages and platforms, without downloading the repository and configuring the local compilation environment by yourself. It's mature enough now, and the free version offers ample usage quota. I've seen some forks of OpenWRT compile using this form.
If we can, anyone can fork Merlin's repository to compile the latest changes at any time, and since each compilation is done in a completely clean environment, there will be no compilation problems caused by errors in the compilation environment configuration.
The free version has ample time of 6 hours per build (2 Cores, 7G RAM, 14GB SSD) and can build 20 different firmwares/models at same time.
I think compiling firmware is the biggest problem for non-professional developers who want to contribute to the project. If you want to test changes, you must configure the whole compilation environment by yourself, then download and try to compile. If you're not familiar with these, or just have bad luck, you may run into compile errors. You may need to spend a few hours troubleshooting the build environment. We do see a lot of questions about compilation on the forums, and if all these things are handed over to GitHub, we just need to modify the code, then a few mouse clicks in the browser, wait, and then download the compiled firmware, it all becomes very simple, many non-professional developers can benefit from it.
Learn more: https://docs.github.com/en/actions/learn-github-actions
About quotas: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration
About performance and environment: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
What we need to do is provide the configuration files needed for compilation based on how Actions work, without modifying the code.
How to create the workflows configuration file required for compilation see here: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
If we can, anyone can fork Merlin's repository to compile the latest changes at any time, and since each compilation is done in a completely clean environment, there will be no compilation problems caused by errors in the compilation environment configuration.
The free version has ample time of 6 hours per build (2 Cores, 7G RAM, 14GB SSD) and can build 20 different firmwares/models at same time.
I think compiling firmware is the biggest problem for non-professional developers who want to contribute to the project. If you want to test changes, you must configure the whole compilation environment by yourself, then download and try to compile. If you're not familiar with these, or just have bad luck, you may run into compile errors. You may need to spend a few hours troubleshooting the build environment. We do see a lot of questions about compilation on the forums, and if all these things are handed over to GitHub, we just need to modify the code, then a few mouse clicks in the browser, wait, and then download the compiled firmware, it all becomes very simple, many non-professional developers can benefit from it.
Learn more: https://docs.github.com/en/actions/learn-github-actions
About quotas: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration
About performance and environment: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
What we need to do is provide the configuration files needed for compilation based on how Actions work, without modifying the code.
How to create the workflows configuration file required for compilation see here: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
Last edited: