Composer Action
ActionsGitHub Actions for Composer. Base on Docker official PHP image, and installed hirak/prestissimo package.
Actually, I want to follow DRY principle and use official Composer image. But see the following composer.json:
{
    "require": {
        "php": ">=5.5.9"
    },
    "require-dev": {
        "phpunit/phpunit": "^4 | ^5 | ^6"
    }
}And use the following workflow:
- name: Composer install
  uses: docker://composer:1.9.1
  with:
    args: install
- name: PHPUnit testing
  uses: docker://php:5.5
  with:
    args: php vendor/bin/phpunitIt's expected to work on PHP 5.5 ~ 7.3, so we should test on every platform. However, Composer image will install on PHP 7.3 platform and it will install PHPUnit 6.x. It will failed on PHP 5.5 container for PHPUnit 6.x require PHP ^7.0.
Of course, we can use the config.platform.php config to force platform version on PHP 5.5 and it will install PHPUnit 4.x, but PHPUnit 4.x use too many deprecated functions, e.g. each(), so that cannot work on PHP >=7.2.
Finally, I think that build image on every version is the good idea.
Via GitHub Workflow
- uses: MilesChou/composer-action@master
  with:
    args: installUse install image
- uses: MilesChou/composer-action/install@masterWith specify PHP version
- uses: MilesChou/composer-action/5.5/install@masterSee Docker Hub
Notice: Default tags is using Composer v2.
- latest,- 8.2(8.2/Dockerfile)
- 8.1(8.1/Dockerfile)
- 8.0(8.0/Dockerfile)
- 7.4(7.4/Dockerfile)
- 7.3(7.3/Dockerfile)
- 7.2(7.2/Dockerfile)
- 7.1(7.1/Dockerfile)
- 7.0(7.0/Dockerfile)
- 5.6(5.6/Dockerfile)
- 5.5(5.5/Dockerfile) - no longer update
Here is tags for using Composer v1:
- v1,- 8.2-v1(8.2/Dockerfile)
- 8.1-v1(8.1/Dockerfile)
- 8.0-v1(8.0/Dockerfile)
- 7.4-v1(7.4/Dockerfile)
- 7.3-v1(7.3/Dockerfile)
- 7.2-v1(7.2/Dockerfile)
- 7.1-v1(7.1/Dockerfile)
- 7.0-v1(7.0/Dockerfile)
- 5.6-v1(5.6/Dockerfile)
- 5.5-v1(5.5/Dockerfile) - no longer update
The following is built-in tools:
- git
- zip
- hirak/prestissimo (Composer v1)
The MIT License (MIT). Please see License File for more information.
Composer Action is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.