Commit Graph

288 Commits

Author SHA1 Message Date
Laurent Destailleur
ca65e9a333 QUAL the config_extended of phpstan will be kept on apstats only for the
moment: Too many CTI error not related to PR.
2024-04-24 21:44:58 +02:00
MDW
fad3e2d2bf QUAL: Add sqlfluff (SQL code and style check) (#29097)
* 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
2024-04-16 01:23:27 +02:00
Laurent Destailleur
8a942a632d Merge pull request #29165 from Dolibarr/dependabot/github_actions/mdeweerd/logToCheckStyle-2024.3.5
Bump mdeweerd/logToCheckStyle from 2024.3.4 to 2024.3.5
2024-04-02 11:54:23 +02:00
dependabot[bot]
0580966d67 Bump mdeweerd/logToCheckStyle from 2024.3.4 to 2024.3.5
Bumps [mdeweerd/logToCheckStyle](https://github.com/mdeweerd/logtocheckstyle) from 2024.3.4 to 2024.3.5.
- [Commits](https://github.com/mdeweerd/logtocheckstyle/compare/v2024.3.4...v2024.3.5)

---
updated-dependencies:
- dependency-name: mdeweerd/logToCheckStyle
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 05:52:18 +00:00
dependabot[bot]
352b895639 Bump tj-actions/changed-files from 43 to 44
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 43 to 44.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v43...v44)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 05:52:16 +00:00
MDW
ca36c740e5 "Qual: Add dependencies between workflows
# Qual: Add dependencies between workflows

Run costly workflows only after a few workflows succeed
(pre-commit, phan).
2024-03-22 09:50:42 +01:00
MDW
dc15b2ee79 Qual: Bump logToCheckStyle for better filename handling
# 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.
2024-03-20 21:57:08 +01:00
MDW
4785ed1fbf Qual: Cleanup windows-ci.yaml file 2024-03-19 03:43:35 +01:00
MDW
4de8ce0a62 Apply open_basedir during setup 2024-03-19 03:43:34 +01:00
Laurent Destailleur
4768243bf4 Merge pull request #28956 from Dolibarr/dependabot/github_actions/mdeweerd/logToCheckStyle-2024.3.2
Bump mdeweerd/logToCheckStyle from 2024.2.9 to 2024.3.2
2024-03-19 02:09:55 +01:00
Laurent Destailleur
db0dd76571 Merge pull request #28934 from Dolibarr/dependabot/github_actions/tj-actions/changed-files-43
Bump tj-actions/changed-files from 42 to 43
2024-03-19 01:54:46 +01:00
dependabot[bot]
35670de57c Bump mdeweerd/logToCheckStyle from 2024.2.9 to 2024.3.2
Bumps [mdeweerd/logToCheckStyle](https://github.com/mdeweerd/logtocheckstyle) from 2024.2.9 to 2024.3.2.
- [Commits](https://github.com/mdeweerd/logtocheckstyle/compare/v2024.2.9...2024.3.2)

---
updated-dependencies:
- dependency-name: mdeweerd/logToCheckStyle
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-19 00:45:11 +00:00
MDW
c9e7fc0ca4 Qual: Update logToCheckStyle to version that extracts PHP Fatal Errors 2024-03-18 23:48:05 +01:00
MDW
a08f330ca7 Qual: Always run phpcin pre-commit workflow
# 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.
2024-03-18 23:48:05 +01:00
dependabot[bot]
e72c596223 Bump tj-actions/changed-files from 42 to 43
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 42 to 43.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v42...v43)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 05:12:50 +00:00
MDW
289621c739 Qual/Fix Win-CI Check that the PHPUNIT step really completed
# Qual/Fix Win-CI Check that the PHPUNIT step really completed

The program under test can abruptly abort the PHPUNIT test case by calling
exit which results in no error code - it then appears as if the test was
successful.
This adds a grep on the last lines looking for the summary information from
phpunit.
If absent, the step fails
2024-03-16 23:20:58 +01:00
MDW
325cb587f6 Qual: Exclude some tests from windows-ci until fixed
# Qual: Exclude some tests from windows-ci until fixed

Until #28598 and #28264 find some way to the develop branch, this update will
skip the tests that currently fail on windows so that the results of other
tests have an effect on the CI status and github annotations
2024-03-11 20:46:21 +01:00
MDW
ec0fd31386 Fix phpstan workflow file (#28741)
* Fix phpstan workflow file

# Fix phpstan workflow file

Line was split in two, joined

* qual: set memory limit to 'unlimited' (-1)

* Remove some stubs to check impact

* Fix: Verify execution time limit

* Remove stub files to reuse cache

* Qual: Rename distribution phpstan.neon to phpstan.neon.dist

# Qual: Rename distribution phpstan.neon to phpstan.neon.dist

This allows the developer to override some settings locally

Also update the .gitignore file with phpstan.neon and some other other
ignores (cache, local log files, temporary edit files).

* Enable debug on phpstan

* Re-enable stubs

* Fix: Change parallel settings to defaults, remove buffer

'buffer' is not a documented parameter, removing it.
Removing some configuration settings as the defaults are higher and
should adapt better to the target machine
2024-03-11 14:04:02 +01:00
MDW
4c442de1a2 Qual: Add phan stub files to phpstan configuration (#28730)
* Qual: Add phan stub files to phpstan configuration

* Provide log as artifact (for debug), improve CACHE_KEY
2024-03-10 02:00:41 +01:00
MDW
dc72cd390b Qual: Clean up caches when PR is closed (#28648)
# Qual: Clean up caches when PR is closed

This will clean up caches when a PR is closed.

This requires that `actions:write` is enabled.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-03-05 16:31:45 +01:00
MDW
b30dd4e707 Fix: Cache issue in windows-ci - add enableCrossOsArchive (#28607)
# Fix: Cache issue in windows-ci - add enableCrossOsArchive

There is an issue in actions/cache on windows and adding 'enableCrossOsArchive: true'
should fix it according to
https://github.com/actions/cache/issues/1275#issuecomment-1925217178
2024-03-04 18:28:24 +01:00
MDW
1e41588cfe Fix: Improve cache key generation for windows-ci (#28602)
# Fix: Improve cache key generation for windows-ci

Caches did not restore as expected.  This change attemps to fix it.
2024-03-03 18:40:30 +01:00
MDW
6115d58f47 Qual: Optimize workflow (#28386)
# Qual: Optimize workflow

The log annotation based on the pre-commit logs is now simplified.
2024-02-23 20:05:29 +01:00
MDW
8655d5a86b QUAL Use phan to help detect new issues (#27706)
* Qual: Add phan flow

- Add phan configuration (config, baseline, stubs);
- Add github action;
- Update apstats.php.

* Add directives to ignore false phan notices

* Qual: Add typing hints for extrafields TPL files

# Qual: Add typing hints for extrafields TPL files

Add typing hints for phan on view files

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-02-21 18:14:29 +01:00
Laurent Destailleur
4a68630fba Clean exakat 2024-02-21 14:55:44 +01:00
MDW
af01b3d73a Qual: Re-enable open_basedir restriction in tests (#28315)
* Fix: Workaround for false security issue in tests

# Fix: Workaround for false security issue in tests

This is a quick workaround for the false security issues in tests
by setting the ['SELF'] variable to something that is
considered harmless

* Update windows-ci workflow

# Update windows-ci workflow

- Setup_conf.sh - Added caching feature;
- phpunit.bat - Example updated based on experience with php web server
- Provide dolibarr.log and phpunit output as artefacts.
- Convert PHPUNIT log to Github Annotations
- Setup php web server for API tests
- Enable caching sql initialisation

* Qual: Re-enable open_basedir restriction in tests

# Qual: Re-enable open_basedir restriction in tests

Using open_basedir restriction is closer to the production reality
and seemed to generate some issues on a windows development machine.

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-02-21 13:57:05 +01:00
Laurent Destailleur
61f571a367 Avoir error 2024-02-20 18:55:38 +01:00
MDW
e5423d5c59 Qual: Add exceptions for codespell (#28186)
* Dev: Add setup scripts for phpunit/database

# Dev: Add setup scripts for phpunit/database

Some scripts that helped to setup some unit testing.

* NEW Add Windows ci workflow

# NEW Add Windows ci workflow

This adds a workflow to execute ci on a windows platform

* Disable open_basedir for now, to test effect

* Qual: Exclude documents directory from codespell

# Qual: Exclude documents directory from codespell

Documents directory may be present during development (unit tests).
Do not check spelling there

* Qual: Add codespell exceptions

# Qual: Add codespell exceptions

Add new exceptions to codespell (var identified as misspelling).
2024-02-15 14:49:09 +01:00
MDW
a68f6ed0d1 Qual: Improve caching for phpstan (#28180)
# Qual: Improve caching for phpstan

The phpstan step does not seem to always choose the best cache.
This configuration update adds the target branch to the restore
feature.
Maybe it is more selective and better.
2024-02-15 13:55:54 +01:00
MDW
7a389299c3 Qual: ci: Run pre-commit/php-cs with cache (#28079)
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)
2024-02-10 01:22:07 +01:00
MDW
0394c2bea9 Qual: disable PHPCS action (now performed by pre-commit) (#28097)
# Qual: disable PHPCS action (now performed by pre-commit)

The php-cs analysis is now ensured by pre-commit which does analysis
on changed files in PR's and full analysis in the main branches.

It also provides better reports (PHPCS did not report all the issues
seen in travis).
2024-02-09 18:57:27 +01:00
MDW
828496776b Qual: pre-commit: run phpcs on all files in 'main' branches. (#28018) (#28067)
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>
2024-02-08 13:57:05 +01:00
Laurent Destailleur
40f18f5577 Try to use a unique id 2024-02-02 13:56:11 +01:00
MDW
4c077ebc4e Fix: pre-commit - install required phpcs
# Fix: pre-commit - install required phpcs
2024-01-28 16:07:43 +01:00
MDW
14b14a3b0f Add --files to pre-commit call for selected files 2024-01-28 16:07:43 +01:00
MDW
2775c78ae0 Qual: Run php-cs on changed files only with pre-commit
Use a github action to detect changed PHP files and run
php-cs on those files.
(The method suggested by the pre-commit documentation did not work).
2024-01-26 21:38:03 +01:00
MDW
7bb1e57f6c Qual: Optimize/explain workflows
# 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.
2024-01-21 18:00:22 +01:00
MDW
19ac1e4b02 Qual: Store phpstan cache only if not loaded or successful run
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.
2024-01-21 15:05:47 +01:00
Laurent Destailleur
233c52bdb2 Merge pull request #27525 from Dolibarr/dependabot/github_actions/actions/setup-node-4
Bump actions/setup-node from 3 to 4
2024-01-15 11:46:10 +01:00
Laurent Destailleur
17879abd59 Merge pull request #27524 from Dolibarr/dependabot/github_actions/actions/setup-python-5
Bump actions/setup-python from 4 to 5
2024-01-15 11:45:27 +01:00
dependabot[bot]
2ebcca7d9b Bump actions/setup-node from 3 to 4
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 05:55:59 +00:00
dependabot[bot]
f93d480e3f Bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 05:55:55 +00:00
dependabot[bot]
1473db2991 Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 05:55:52 +00:00
Laurent Destailleur
b20838077b Try to merge the 2 phpstan files 2024-01-14 19:42:54 +01:00
Laurent Destailleur
2459fe829a Fix precommit 2024-01-14 18:29:33 +01:00
Laurent Destailleur
0c202cb66d Fix precommit file 2024-01-14 18:25:44 +01:00
Laurent Destailleur
c7a19a007c Add comment 2024-01-14 18:09:32 +01:00
Laurent Destailleur
cfcde4922a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2024-01-14 17:55:26 +01:00
Laurent Destailleur
7cd375bbbf Clean hooks 2024-01-14 15:01:59 +01:00
MDW
43bb558ae9 Fix: pre-commit: Skip branch check in ci (+used sed in codespell exceptions generation) (#27499)
* Use 'sed' instead of 'perl' (sed is more common)

* Skip branch check in ci
2024-01-14 15:00:01 +01:00