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

Setup Database Service, use multiple PHP version, use multiple Laravel versions, build frontend, cache packages, execute Browser, Functional, and Unit tests…

Select a workflow template

Logomark

Laravel App

Setup Workflow for Laravel with database and Code Quality.

Official PHP Logo image/svg+xml Official PHP Logo Colin Viebrock Copyright Colin Viebrock 1997 - All rights reserved. 1997

PHP

Setup Workflow for PHP Package.

Logomark

Laravel Package

Setup Workflow for Laravel Package.

OR compile some details...

The name of your workflow. GitHub displays the names of your workflows on your repository's actions page.

On - GitHub event that triggers the workflow.

Branches for the push, comma separated for example: 'main,develop'.

Branches for the PR, comma separated for example: 'main,develop'.

When is scheduled, in cron format. Daily: '0 0 * * *'

Select Database

Database: *None* if you don't want a database in your workflow. Otherwise select Mysql or Postgresql or Sqlite

Define the Mysql Version (latest, 8.0, 5.7)

Define the Mysql database name

The Port exposed by the container, this is the external port.

Mysql Password: skip, or read from secret or hardcoded

For secret, fill with the name of your parameter for example DB_PASSWORD, for Hardcoded, fill with your password (valid only for CICD, not production or stage)

Define the Postgresql Version

Define the Postgresql database name

The Port exposed by the container, this is the external port.

Postgresql Password: read from secret or hardcoded

For secret, fill with the name of your parameter for example DB_PASSWORD, for Hardcoded, fill with your password (valid only for CICD, not production or stage)

Caching

Enable this, to improve speed of installing packages

Enable this, to skip installing packages using previous vendor cache

Enable this, to use cached Npm modules

Environments (PHP / Node)

Select PHP Versions (Multiple)

Define the nodejs Version. 21.x is the latest stable version. Select 20.x if you want to use LTS version and it is the default value.

Select the level of the stability for the composer packages dependency

Laravel stuff

Select Laravel Versions (Multiple). This is useful if you are building a package and want to test your package with Laravel 11, 10, 9, 8 , 7 and 6

Define env template file to use in actions

Fix storage permission via chmod 777

Execute php artisan migrate

Execute php artisan key:generate

Code Quality

Execute Tests via phpunit

Execute Tests via PestPHP

Execute Browser Test via Laravel Dusk

Execute Security Check

Install Code Sniffer phpcs

Select Code Analysis Tool, Larastan for Laravel project, PHPstan for generic PHP projects, or Psalm with Laravel plugin

Install Static Code Analysis Tool (larastan or phpstan or psalm)

Use phpstan.neon file for PHPStan configuration

Create report and publish it on GitHub, Security, Code Scanning Alerts

Deployment (Experimental feature)

Deployment: *None* if you don't want to deploy the code in your workflow. Otherwise select from available options

Ploi Webhook URL: Read from secret or hardcoded

For secret, fill with the name of your parameter for example WEBHOOK_URL, for Hardcoded, fill with your webhook URL

You need to set a GitHub Secret in settings/secrets/actions/new named VAPOR_API_TOKEN.
Take a look the documentation about Laravel Vapor, Deploying From CI
You need to set some GitHub Secrets ("GitHub > Project Settings > Secrets"): FORGE_API_TOKEN and SSH_PRIVATE_KEY.
Take a look the documentation about Forge, deploy with Forge CLI.

Forge Server Name

Forge Site Name

Loading Generating Yaml file, waiting please...