DEV Community

Cover image for Generate automatically Workflow files
Roberto B.
Roberto B.

Posted on

Generate automatically Workflow files

Ghygen is an open source application for generating GitHub Actions Workflow files.
It is optimized for generating Workflow for PHP or Laravel applications. It provides two kind of user interface:

  • a Web interface where you have a form to fill with the characteristic of your application;
  • a CLI, a command for your terminal.

My Workflow

The command line tool tries to detect some functionalities of your application like:

  • PHP versions (from composer.json);
  • Dependency stability ( from composer.json);
  • Code sniffer (from require-dev);
  • Static code analysis tool (from require-dev);
  • Static code analysis configuration (for example phpstan.neon)
  • Database requirements;
  • migrations to execute;
  • NodeJS dependencies/version.

Once all of these things are detected the command line, it creates a YAML workflow file - magically πŸ§™β€β™‚οΈ

Image description

Submission Category:

Maintainer Must-Haves

Yaml File or Link to Code

GitHub logo Hi-Folks / gh-actions-yaml-generator

Ghygen is a GitHub Actions configurator for your PHP / Laravel project.

GitHub Workflow Status (develop branch) GitHub release (latest by date) Website

Ghygen

Ghygen

Ghygen is a GitHub Actions configurator for your PHP / Laravel project.

Ghygen allows you creating your Yaml file for GitHub Actions, for Laravel/PHP web application, so you can:

  • select triggering events: manually or automatically, when the developer push the code on a specific branch, or a developer create a new Pull Request;
  • select branches;
  • enable caching for all vendors;
  • enable caching PHP packages;
  • select multiple PHP versions (8.3, 8.2, 8.1, 8.0, 7.4);
  • select multiple Laravel versions (11, 10, 9, 8, 7, 6), useful if you are developing a Laravel Package and you want to test it with multiple Laravel version;
  • select Node version for NPM (executing scripts via npm run);
  • caching node packages;
  • setup Mysql Database service;
  • setup PostgreSQL Database service;
  • setup Sqlite in memory database;
  • run migrations;
  • execute tests via phpunit;
  • execute tests via PestPHP;
  • static code analysis with phpstan or psalm;
  • create Sarif…




Additional Resources / Info

Yaml files probably generated using Ghygen: https://github.com/search?l=YAML&q=ghygen&type=Code

Top comments (0)