diff --git a/.gitattributes b/.gitattributes
index c118fb2..2140930 100755
--- a/.gitattributes
+++ b/.gitattributes
@@ -4,7 +4,6 @@
.gitattributes export-ignore
.github export-ignore
.gitignore export-ignore
-.travis.yml export-ignore
tests/ export-ignore
phpunit.xml export-ignore
psalm.xml export-ignore
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..e3b6e64
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,53 @@
+name: "CI"
+
+on:
+ pull_request:
+ push:
+ branches:
+ - "master"
+ schedule:
+ - cron: "42 3 * * *"
+
+jobs:
+ phpunit:
+ name: "PHPUnit"
+ runs-on: "ubuntu-20.04"
+
+ strategy:
+ matrix:
+ php-version:
+ - "7.3"
+ - "7.4"
+ - "8.0"
+ dependencies:
+ - "highest"
+ include:
+ - dependencies: "lowest"
+ php-version: "7.3"
+
+ steps:
+ - name: "Checkout"
+ uses: "actions/checkout@v2"
+ with:
+ fetch-depth: 2
+
+ - name: "Install PHP"
+ uses: "shivammathur/setup-php@v2"
+ with:
+ php-version: "${{ matrix.php-version }}"
+ coverage: "pcov"
+ ini-values: "zend.assertions=1"
+
+ - name: "Install dependencies with Composer"
+ uses: "ramsey/composer-install@v1"
+ with:
+ dependency-versions: "${{ matrix.dependencies }}"
+
+ - name: "Run PHPUnit"
+ run: "vendor/bin/phpunit --coverage-clover=coverage.xml"
+
+ - name: "Upload coverage file"
+ uses: "actions/upload-artifact@v2"
+ with:
+ name: "phpunit-${{ matrix.deps }}-${{ matrix.php-version }}.coverage"
+ path: "coverage.xml"
diff --git a/.github/workflows/static-analysis.yaml b/.github/workflows/static-analysis.yaml
new file mode 100644
index 0000000..358b8c6
--- /dev/null
+++ b/.github/workflows/static-analysis.yaml
@@ -0,0 +1,31 @@
+name: "Static Analysis"
+
+on:
+ pull_request:
+ push:
+ branches:
+ - "master"
+
+jobs:
+ static-analysis-psalm:
+ name: "Static Analysis with Psalm"
+ runs-on: "ubuntu-20.04"
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Psalm
+ uses: docker://vimeo/psalm-github-actions:4.9.3
+ with:
+ args: --shepherd
+ composer_ignore_platform_reqs: true
+ composer_require_dev: true
+ security_analysis: true
+ report_file: results.sarif
+ env:
+ CHECK_PLATFORM_REQUIREMENTS: "false"
+ - name: Upload Security Analysis results to GitHub
+ uses: github/codeql-action/upload-sarif@v1
+ with:
+ sarif_file: results.sarif
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100755
index 92affbf..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-language: php
-
-php:
- - '7.3'
- - '7.4'
- - '8.0'
-
-matrix:
- fast_finish: true
-
-cache:
- directories:
- - $HOME/.composer/cache
-
-before_script:
- - travis_retry composer install -n
-
-script:
- - vendor/bin/phpunit
- - vendor/bin/psalm --shepherd
-
-# Use Travis' new container-based infrastructure.
-# See http://docs.travis-ci.com/user/migrating-from-legacy/#How-can-I-use-container-based-infrastructure%3F
-sudo: false
diff --git a/README.md b/README.md
index 1e4d1ff..eaac7e5 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
# PHP Enum implementation inspired from SplEnum
-[![Build Status](https://travis-ci.org/myclabs/php-enum.png?branch=master)](https://travis-ci.org/myclabs/php-enum)
+[![GitHub Actions][GA Image]][GA Link]
[![Latest Stable Version](https://poser.pugx.org/myclabs/php-enum/version.png)](https://packagist.org/packages/myclabs/php-enum)
[![Total Downloads](https://poser.pugx.org/myclabs/php-enum/downloads.png)](https://packagist.org/packages/myclabs/php-enum)
-[![psalm](https://shepherd.dev/github/myclabs/php-enum/coverage.svg)](https://shepherd.dev/github/myclabs/php-enum)
+[![Psalm Shepherd][Psalm Shepherd Image]][Psalm Shepherd Link]
Maintenance for this project is [supported via Tidelift](https://tidelift.com/subscription/pkg/packagist-myclabs-php-enum?utm_source=packagist-myclabs-php-enum&utm_medium=referral&utm_campaign=readme).
@@ -136,3 +136,12 @@ final class Action extends Enum
- [Symfony ParamConverter integration](https://github.com/Ex3v/MyCLabsEnumParamConverter)
- [PHPStan integration](https://github.com/timeweb/phpstan-enum)
- [Yii2 enum mapping](https://github.com/KartaviK/yii2-enum)
+
+
+[GA Image]: https://github.com/myclabs/php-enum/workflows/CI/badge.svg
+
+[GA Link]: https://github.com/myclabs/php-enum/actions?query=workflow%3A%22CI%22+branch%3Amaster
+
+[Shepherd Image]: https://shepherd.dev/github/myclabs/php-enum/coverage.svg
+
+[Shepherd Link]: https://shepherd.dev/github/myclabs/php-enum
diff --git a/phpunit.xml b/phpunit.xml
index bd714f1..33b8f67 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -10,4 +10,10 @@
./tests
+
+
+
+ src
+
+