Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Switch to GH Actions #137

Merged
merged 8 commits into from Aug 16, 2021
Merged

CI: Switch to GH Actions #137

merged 8 commits into from Aug 16, 2021

Commits on Jun 13, 2021

  1. Travis: remove steps already moved to GH Actions

    Various CI steps were previously already moved to GH Actions via PR 96.
    
    This removes those parts of the Travis script.
    jrfnl committed Jun 13, 2021
    Configuration menu
    Copy the full SHA
    d9cb363 View commit details
    Browse the repository at this point in the history
  2. GH Actions/linting: allow for manually triggering a build

    Triggering a workflow for a branch manually is not supported by default in GH Actions, but has to be explicitly allowed.
    
    This is useful if, for instance, an external action script or composer dependency has broken.
    Once a fix is available, failing builds for open PRs can be retriggered manually instead of having to be re-pushed to retrigger the workflow.
    
    Ref: https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/
    jrfnl committed Jun 13, 2021
    Configuration menu
    Copy the full SHA
    35f6f5c View commit details
    Browse the repository at this point in the history
  3. GH Actions: add phplint workflow

    This commit:
    * Adds a dependency to the PHP Parallel Lint tool to handle the PHP linting.
        As of PHP Parallel Lint 1.3.0, the tool also supports PHP 5.3, making a viable option.
        Ref: https://github.com/php-parallel-lint/PHP-Parallel-Lint/releases/tag/v1.3.0
    * Adds a Composer script to run Parallel Lint with preset optimized CLI arguments, making it easy for devs to run the tooling locally.
        Note: this uses `@php path/to/tool` to force the script to run under the same PHP version as Composer is run under in a cross-platform compatible manner.
    * Adds a separate GH Actions workflow to lint the code against the highest and lowest supported PHP versions, as well as two arbitrary interim PHP versions.
        This workflow has `cs2pr` enabled, which means that any issues found will be shown inline in PRs.
    * Removes the linting step from the Travis script.
    jrfnl committed Jun 13, 2021
    Configuration menu
    Copy the full SHA
    00a5252 View commit details
    Browse the repository at this point in the history
  4. GH Actions: add security-check workflow

    * Remove the `enlightn/security-checker` dependency which was added in 130 as it conflicts with the minimum PHP requirements of this project (PHP 5.6 vs PHP 5.3).
        Also see 131.
    * Adds a separate GH Actions workflow to check for insecure dependencies against the highest and lowest supported PHP versions using the `fabpot/local-php-security-checker` instead.
        Note: this workflow does a `composer install` as this package does not have a committed `composer.lock` file and we need the `lock` file to do the check on.
        Regarding the choice for this tool:
        - This tool will run independently of the PHP version used, making it more versatile.
        - It complies with most other criteria as set forth in 131 (not deprecated, lightweight, versioned, easy to install/update).
        - As for running it locally - either devs can download the tool and run it locally or they can use the tooling available to run GH actions locally, so IMO that part is covered too.
    * Removes the security-check step from the Travis script.
    
    Ref: https://github.com/fabpot/local-php-security-checker/releases/tag/v1.0.0
    jrfnl committed Jun 13, 2021
    Configuration menu
    Copy the full SHA
    f5906a7 View commit details
    Browse the repository at this point in the history
  5. GH Actions: add integration test workflow

    This commit:
    * Adds a separate GH Actions workflow to run the "integration tests" as previously run on Travis.
        The script is largely the same as the original Travis script with only some minor tweaks.
    * Removes the Travis script file as all actions have now been moved to GH Actions.
    
    Notes:
    * This script is only run on pushes to `master` and on pull requests.
        For pushes to "feature branches" the next commit will add a slimmed down version of this script to conserve resources as this is a very extensive build.
    jrfnl committed Jun 13, 2021
    Configuration menu
    Copy the full SHA
    4b106c7 View commit details
    Browse the repository at this point in the history
  6. GH Actions: add a quicktest workflow

    This commit:
    * Adds a separate GH Actions workflow to run the "integration tests" against a slimmed down matrix for pushes to "feature branches".
        The script part of this workflow is the same as the script in the integration test workflow.
    jrfnl committed Jun 13, 2021
    Configuration menu
    Copy the full SHA
    6ac97a7 View commit details
    Browse the repository at this point in the history
  7. README: switch Travis badge to GH Actions

    I've chosen to only show a badge for the integration test workflow as that is the most important one after all.
    jrfnl committed Jun 13, 2021
    Configuration menu
    Copy the full SHA
    52d2c44 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2021

  1. GH Actions: set error reporting to E_ALL

    Turns out the default setting for `error_reporting` used by the SetupPHP action is `error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT` and `display_errors` is set to `Off`.
    
    For the purposes of CI, I'd recommend running with `E_ALL` and `display_errors=On` to ensure **all** PHP notices are shown.
    jrfnl committed Jun 21, 2021
    Configuration menu
    Copy the full SHA
    49a4e7b View commit details
    Browse the repository at this point in the history