From 5de413b3113304d81b4d895caa443fda2da25b54 Mon Sep 17 00:00:00 2001 From: Ondrej Mirtes Date: Sat, 12 Dec 2020 16:01:58 +0100 Subject: [PATCH] Use GitHub Actions instead of Travis CI --- .github/workflows/build.yml | 113 ++++++++++++++++++++++++++++++++++ .github/workflows/release.yml | 33 ++++++++++ .travis.yml | 14 ----- README.md | 2 +- build-cs/.gitignore | 2 + build-cs/composer.json | 7 +++ build.xml | 33 +++------- composer.json | 8 +-- phpcs.xml | 2 +- src/Plugin.php | 3 + 10 files changed, 171 insertions(+), 46 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release.yml delete mode 100644 .travis.yml create mode 100644 build-cs/.gitignore create mode 100644 build-cs/composer.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..8080ef2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,113 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Build" + +on: + pull_request: + push: + branches: + - "master" + +jobs: + lint: + name: "Lint" + runs-on: "ubuntu-latest" + + strategy: + matrix: + php-version: + - "7.1" + - "7.2" + - "7.3" + - "7.4" + - "8.0" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + + - name: "Validate Composer" + run: "composer validate" + + - name: "Install dependencies" + run: "composer install --no-interaction --no-progress --no-suggest" + + - name: "Lint" + run: "vendor/bin/phing lint" + + coding-standards: + name: "Coding Standard" + + runs-on: "ubuntu-latest" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "7.4" + + - name: "Validate Composer" + run: "composer validate" + + - name: "Install dependencies" + run: "composer install --no-interaction --no-progress --no-suggest" + + - name: "Lint" + run: "vendor/bin/phing lint" + + - name: "Coding Standard" + run: "vendor/bin/phing cs" + + static-analysis: + name: "PHPStan" + runs-on: "ubuntu-latest" + + strategy: + fail-fast: false + matrix: + php-version: + - "7.1" + - "7.2" + - "7.3" + - "7.4" + - "8.0" + dependencies: + - "lowest" + - "highest" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + extensions: mbstring + tools: composer:v2 + + - name: "Install lowest dependencies" + if: ${{ matrix.dependencies == 'lowest' }} + run: "composer update --prefer-lowest --no-interaction --no-progress --no-suggest" + + - name: "Install highest dependencies" + if: ${{ matrix.dependencies == 'highest' }} + run: "composer update --no-interaction --no-progress --no-suggest" + + - name: "Update PHPStan" + if: matrix.php-version == '8.0' + run: "composer require --dev phpstan/phpstan:'^0.12.60' --update-with-dependencies" + + - name: "PHPStan" + run: "vendor/bin/phing phpstan" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..e04c256 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,33 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Create release" + +on: + push: + tags: + - '*' + +jobs: + deploy: + name: "Deploy" + runs-on: "ubuntu-latest" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: Generate changelog + id: changelog + uses: metcalfc/changelog-generator@v0.4.4 + with: + myToken: ${{ secrets.GITHUB_TOKEN }} + + - name: "Create release" + id: create-release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + body: ${{ steps.changelog.outputs.changelog }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cbb484d..0000000 --- a/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: php -php: - - 7.1 - - 7.2 - - 7.3 -env: - - dependencies=lowest - - dependencies=highest -before_script: - - composer self-update - - if [ "$dependencies" = "lowest" ]; then composer update --prefer-lowest --no-interaction; fi; - - if [ "$dependencies" = "highest" ]; then composer update --no-interaction; fi; -script: - - vendor/bin/phing diff --git a/README.md b/README.md index dd975c6..b080dee 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PHPStan Extension Installer -[![Build Status](https://travis-ci.com/phpstan/extension-installer.svg?branch=master)](https://travis-ci.com/phpstan/extension-installer) +[![Build](https://github.com/phpstan/extension-installer/workflows/Build/badge.svg)](https://github.com/phpstan/extension-installer/actions) [![Latest Stable Version](https://poser.pugx.org/phpstan/extension-installer/v/stable)](https://packagist.org/packages/phpstan/extension-installer) [![License](https://poser.pugx.org/phpstan/extension-installer/license)](https://packagist.org/packages/phpstan/extension-installer) diff --git a/build-cs/.gitignore b/build-cs/.gitignore new file mode 100644 index 0000000..ff72e2d --- /dev/null +++ b/build-cs/.gitignore @@ -0,0 +1,2 @@ +/composer.lock +/vendor diff --git a/build-cs/composer.json b/build-cs/composer.json new file mode 100644 index 0000000..59e6cf0 --- /dev/null +++ b/build-cs/composer.json @@ -0,0 +1,7 @@ +{ + "require-dev": { + "consistence/coding-standard": "^3.8", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "slevomat/coding-standard": "^5.0.4" + } +} diff --git a/build.xml b/build.xml index 49233b4..944a726 100644 --- a/build.xml +++ b/build.xml @@ -5,7 +5,6 @@ composer, lint, cs, - composer-normalize-check, phpstan "/> @@ -20,45 +19,31 @@ - + - - - + - + - + + + - - - - - - - - - - + diff --git a/src/Plugin.php b/src/Plugin.php index 6a63c65..75b4094 100644 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -62,6 +62,9 @@ public function uninstall(Composer $composer, IOInterface $io): void // noop } + /** + * @return array + */ public static function getSubscribedEvents(): array { return [