* QUAL: Add sqlfluff (SQL code and style check)
# QUAL: Add sqlfluff (SQL code and style check)
This adds a validity and style check on the .sql files.
The same tool can be used to fix style (which can be set up as a
pre-commit hook).
* Ignore some sqlfluff notices
* Ignore RF04 notice, warning about the use of sql keywords
* Adjust dialects for some directories
# Qual: Bump logToCheckStyle for better filename handling
Some notifications from the PHPCS step in pre-commit extracted too many
characters for the filename in a specific case.
The update to logToCheckStyle fixes that.
# Qual: Always run phpcs in pre-commit workflow
Developers are prioritizing the Travis Run because the pre-commit workflow
only runs the phpcs checks if the other pre-commit checks did not fail.
This modifies the action so that the phpcs checks are also run if the
previous step failed.
That should help limit travis load and delays.
This adds a hook to .pre-commit-config.yaml and updates the workflow
to run php-cs with cache when it is run for all files.
When running on changed files only, the cache is not useful.
The php-codesniffer ruleset.xml was cleaned up (duplicates removal/formatted)
This change to the workflow will run phpcs on all files in develop,
17.0, 18.0, ... (rule== branch ends in .0).
This ensures that phpcs is run in a github workflow for fast phpcs
issue detection in the develop and other main branches.
Ultimately, this means that the PHPCS action can be disabled
in branches where it is active. But I propose to verify that
the updated action does the job as expected (tested in a fork
it is ok).
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
# Qual: Optimize/explain workflows
phpstan checkout took about 1.5 minutes, while pre-commit only takes 10s.
So I removed the option to the checkout option which likely makes
the difference.
I removed the IMHO useless step of installing node - it may have been
useful during setting up the workflow, but not now.
I commented on the pre-commit workflow.
The PHPStan steps run a long time for the latest runs and I suspect that
this may be because of a bad cache, possibly includeing:
```
Result cache was not saved because of non-ignorable exception: Syntax error, unexpected } on line 378
``` .
This change should only save the cache if the run was successful or if no cache
was loaded. The possibly preserves a cache that still reduces the run time.
For instance, the following got an empty cache, saved at 2024-01-19T21:28:22.18Z.
- https://github.com/Dolibarr/dolibarr/actions/runs/7589384926
That was an aborted run:
- https://github.com/Dolibarr/dolibarr/actions/runs/7589372703/job/20673878193
So I added `cancelled()` to avoid overwriting valid cache and phpstan cache
will only be written if the outcome was success or if the cache could not
be loaded before.
I also updated the version for the cache action.