composer-normalize-action
composer-normalize-action copied to clipboard
:octocat: + :musical_note: Provides a GitHub action for running ergebnis/composer-normalize.
composer-normalize-action
What does this action do?
This action runs ergebnis/composer-normalize.
Usage
Define a workflow in .github/workflows/continuous-integration.yml (or add a job if you already have defined workflows).
:bulb: Read more about Configuring a workflow.
Default Behaviour
By default this action will run
$ composer normalize
in the working directory.
When you use this action in a step with the default behaviour, the step will fail when
composer.jsondoes not exist in this directory (be sure to checkout the code first, seeactions/checkout)composer.jsonis not validcomposer.jsonis valid, butcomposer.lockis not up-to-date withcomposer.json
and the step will succeed when
composer.jsonis valid,composer.lockis not present, andcomposer.jsonand not yet normalized or could be successfully normalizedcomposer.jsonis valid,composer.lockis present and up-to-date, andcomposer.json, andcomposer.jsonand not yet normalized or could be successfully normalized
:bulb: If you want the step to fail when composer.json is not yet normalized, you need to run with the --dry-run options, see below.
Here's an example for a workflow configuration with the default behaviour:
name: "Integrate"
on: "push"
jobs:
composer-normalize:
name: "composer-normalize"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2"
- name: "Run composer normalize"
uses: "docker://ergebnis/composer-normalize-action:latest"
Custom Behavior
If you prefer to specify arguments or options yourself, you can configure those using the args option:
name: "Integrate"
on: "push"
jobs:
composer-normalize:
name: "composer-normalize"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/[email protected]"
- name: "Run composer normalize"
uses: "docker://ergebnis/composer-normalize-action:latest"
+ with:
+ args: "--diff --dry-run --indent-size=2 --indent-style=space"
Docker image
As Docker images are automatically built and pushed on a merge to main or when a new tag is created in this repository, the recommended way to use this GitHub action is to reference the pre-built Docker image directly, as seen above.
:bulb: The Docker image can also be executed directly by running
$ docker run --interactive --rm --tty --workdir=/app --volume ${PWD}:/app ergebnis/composer-normalize-action:latest
For more information, see the Docker Docs: Docker run reference.
Instead of using the latest pre-built Docker image, you can also specify a Docker image tag (which corresponds to the tags released on GitHub):
name: Integrate
on: push
jobs:
composer-normalize:
name: "composer-normalize"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2"
- name: "Run composer normalize"
- uses: "docker://ergebnis/composer-normalize-action:latest"
+ uses: "docker://ergebnis/composer-normalize-action:0.7.0"
Changelog
Please have a look at CHANGELOG.md.
Contributing
Please have a look at CONTRIBUTING.md.
Code of Conduct
Please have a look at CODE_OF_CONDUCT.md.
License
This package is licensed using the MIT License.
Please have a look at LICENSE.md.
Credits
The implementation of this GitHub action is largely inspired by the work of Oskar Stark on the GitHub actions OskarStark/php-cs-fixer-ga and OskarStark/phpstan-ga.