diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..c241cd02 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,106 @@ +name: Build + +on: + push: ~ + pull_request: ~ + release: + types: [created] + schedule: + - + cron: "0 1 * * 6" # Run at 1am every Saturday + +jobs: + tests: + runs-on: ubuntu-latest + name: Build and test + strategy: + fail-fast: false + matrix: + include: + - + php: 7.3 + symfony-version: 4.4.* + twig-version: 2.* + - + php: 7.3 + symfony-version: 5.1.* + twig-version: 2.* + - + php: 7.3 + symfony-version: 4.4.* + twig-version: 3.* + - + php: 7.3 + symfony-version: 5.1.* + twig-version: 3.* + - + php: 7.4 + symfony-version: 4.4.* + twig-version: 2.* + - + php: 7.4 + symfony-version: 5.1.* + twig-version: 2.* + - + php: 7.4 + symfony-version: 4.4.* + twig-version: 3.* + - + php: 7.4 + symfony-version: 5.1.* + twig-version: 3.* + - + php: 8.0 + symfony-version: 4.4.* + twig-version: 2.* + composer-flags: "--ignore-platform-req=php" + - + php: 8.0 + symfony-version: 5.1.* + twig-version: 2.* + composer-flags: "--ignore-platform-req=php" + - + php: 8.0 + symfony-version: 4.4.* + twig-version: 3.* + composer-flags: "--ignore-platform-req=php" + - + php: 8.0 + symfony-version: 5.1.* + twig-version: 3.* + composer-flags: "--ignore-platform-req=php" + + steps: + - + uses: actions/checkout@v2 + + - + name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: "${{ matrix.php }}" + coverage: none + + - + name: Update Symfony version + if: matrix.symfony-version != '' + run: | + composer require "symfony/asset:${{ matrix.symfony-version }}" "symfony/config:${{ matrix.symfony-version }}" "symfony/console:${{ matrix.symfony-version }}" "symfony/dom-crawler:${{ matrix.symfony-version }}" "symfony/dependency-injection:${{ matrix.symfony-version }}" "symfony/filesystem:${{ matrix.symfony-version }}" "symfony/finder:${{ matrix.symfony-version }}" "symfony/form:${{ matrix.symfony-version }}" "symfony/framework-bundle:${{ matrix.symfony-version }}" "symfony/http-foundation:${{ matrix.symfony-version }}" "symfony/http-kernel:${{ matrix.symfony-version }}" "symfony/options-resolver:${{ matrix.symfony-version }}" "symfony/translation:${{ matrix.symfony-version }}" --no-update --no-scripts + composer require --dev "symfony/browser-kit:${{ matrix.symfony-version }}" "symfony/security-csrf:${{ matrix.symfony-version }}" "symfony/twig-bundle:${{ matrix.symfony-version }}" --no-update --no-scripts + + - + name: Update Twig version + if: matrix.twig-version != '' + run: composer require --dev "twig/twig:${{ matrix.twig-version }}" --no-update --no-scripts + + - + name: Install dependencies + run: composer update ${{ matrix.composer-flags }} + + - + name: Run analysis + run: composer analyse + + - + name: Run tests + run: composer test diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d90daaf8..00000000 --- a/.travis.yml +++ /dev/null @@ -1,51 +0,0 @@ -language: php - -php: - - 7.3 - - 7.4 - -env: - - SYMFONY_VERSION=4.4.* TWIG_VERSION=2.* - - SYMFONY_VERSION=4.4.* TWIG_VERSION=3.* - - SYMFONY_VERSION=5.0.* TWIG_VERSION=2.* - - SYMFONY_VERSION=5.0.* TWIG_VERSION=3.* - -cache: - directories: - - ~/.composer/cache/files - -before_install: - - phpenv config-rm xdebug.ini || true - -install: - - | - composer require \ - symfony/asset:${SYMFONY_VERSION} \ - symfony/config:${SYMFONY_VERSION} \ - symfony/console:${SYMFONY_VERSION} \ - symfony/dom-crawler:${SYMFONY_VERSION} \ - symfony/dependency-injection:${SYMFONY_VERSION} \ - symfony/filesystem:${SYMFONY_VERSION} \ - symfony/finder:${SYMFONY_VERSION} \ - symfony/form:${SYMFONY_VERSION} \ - symfony/framework-bundle:${SYMFONY_VERSION} \ - symfony/http-foundation:${SYMFONY_VERSION} \ - symfony/http-kernel:${SYMFONY_VERSION} \ - symfony/options-resolver:${SYMFONY_VERSION} \ - symfony/translation:${SYMFONY_VERSION} \ - --no-update --no-scripts - - | - composer require \ - symfony/browser-kit:${SYMFONY_VERSION} \ - symfony/security-csrf:${SYMFONY_VERSION} \ - symfony/twig-bundle:${SYMFONY_VERSION} \ - twig/twig:${TWIG_VERSION} \ - --no-update --no-scripts - - composer update --prefer-dist - -script: - - composer validate --strict - - - composer analyse - - - composer test diff --git a/composer.json b/composer.json index fbdb1a43..ff109cc8 100644 --- a/composer.json +++ b/composer.json @@ -65,6 +65,7 @@ }, "scripts": { "analyse": [ + "@composer validate --strict", "vendor/bin/ecs check spec src tests", "vendor/bin/phpstan analyse --ansi -c phpstan.neon -l max spec src tests", "vendor/bin/psalm"