Browse Source

minor #5305 Groom GitHub CI and move some checks from TravisCI to GitHub CI (keradus)

This PR was squashed before being merged into the 2.16 branch.

Discussion
----------

Groom GitHub CI and move some checks from TravisCI to GitHub CI

Commits
-------

45a929295 Groom GitHub CI and move some checks from TravisCI to GitHub CI
Dariusz Ruminski 4 years ago
parent
commit
a0a18a78a6

+ 53 - 26
.github/workflows/ci.yaml → .github/workflows/ci.yml

@@ -1,4 +1,4 @@
-name: Continuous Integration
+name: CI
 
 on:
   - pull_request
@@ -8,39 +8,52 @@ jobs:
   tests:
     strategy:
       matrix:
-        operating-system:
-          - ubuntu-latest
-        php-version:
-          - '7.0'
-          - '7.1'
-          - '7.2'
-          - '7.3'
-          - '7.4'
-
         include:
-          - operating-system: 'ubuntu-latest'
-            php-version: '8.0'
-            composer-flags: '--ignore-platform-req=php'
-            PHP_CS_FIXER_IGNORE_ENV: 1
-
-          - operating-system: 'ubuntu-latest'
+          - operating-system: 'ubuntu-20.04'
             php-version: '5.6'
-            PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER: 1
-            SYMFONY_DEPRECATIONS_HELPER: disabled
+            composer-flags: '--prefer-stable --prefer-lowest' # should be checked on lowest supported PHP version
 
-          - operating-system: 'windows-latest'
+          - operating-system: 'ubuntu-20.04'
+            php-version: '7.0'
+            job-description: 'with Sf ^3'
+            execute-flex-with-symfony-version: '^3' # Explicit check for Sf 3.x compatibility
+
+          - operating-system: 'ubuntu-20.04'
+            php-version: '7.1'
+            job-description: 'with Sf ^4'
+            execute-flex-with-symfony-version: '^4' # Explicit check for Sf 4.x compatibility
+
+          - operating-system: 'ubuntu-20.04'
+            php-version: '7.2'
+            job-description: 'with Sf ^5'
+            execute-flex-with-symfony-version: '^5' # Explicit check for Sf 5.x compatibility
+
+          - operating-system: 'ubuntu-20.04'
             php-version: '7.3'
-            FAST_LINT_TEST_CASES: 1
+            job-description: 'with legacy Tokenizer' # should be checked on any job, one is enough
+            PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER: 1
+            SYMFONY_DEPRECATIONS_HELPER: 'disabled'
+
+          - operating-system: 'ubuntu-20.04'
+            php-version: '7.4'
+            job-description: 'with migration rules'
+            execute-migration-rules: 'yes' # should be checked on highest supported PHP version
+
+          - operating-system: 'ubuntu-20.04'
+            php-version: '8.0'
+            composer-flags: '--ignore-platform-req=php' # as this is a version not yet officially supported by PHP CS Fixer
+            PHP_CS_FIXER_IGNORE_ENV: 1
 
           - operating-system: 'windows-latest'
-            php-version: '5.6'
-            SKIP_LINT_TEST_CASES: 1
+            php-version: '7.4'
+            job-description: 'on Windows'
+            FAST_LINT_TEST_CASES: 1
 
           - operating-system: 'macos-latest'
             php-version: '7.4'
-            PHP_CS_FIXER_FUTURE_MODE: 1
+            job-description: 'on macOS'
 
-    name: PHP ${{ matrix.php-version }} CI on ${{ matrix.operating-system }} ${{ matrix.composer-flags }}
+    name: PHP ${{ matrix.php-version }} ${{ matrix.job-description }}
 
     runs-on: ${{ matrix.operating-system }}
 
@@ -52,6 +65,10 @@ jobs:
         uses: shivammathur/setup-php@v2
         with:
           php-version: ${{ matrix.php-version }}
+          coverage: none
+          tools: flex
+        env:
+          fail-fast: false # disabled as old PHP version cannot run flex
 
       - name: Get Composer cache directory
         id: composer-cache
@@ -68,6 +85,11 @@ jobs:
             composer-${{ runner.os }}-
             composer-
 
+      - name: Configure Symfony Flex
+        run: |
+            composer config extra.symfony.require ${{ matrix.execute-flex-with-symfony-version }}
+        if: "matrix.execute-flex-with-symfony-version"
+
       - name: Install dependencies
         uses: nick-invision/retry@v2
         with:
@@ -76,13 +98,18 @@ jobs:
           retry_wait_seconds: 30
           command: |
             composer update --optimize-autoloader --no-interaction --no-progress ${{ matrix.composer-flags }}
+            composer info -D | sort
+
+      - name: Execute migration rules
+        run: |
+          php php-cs-fixer fix --rules @PHP73Migration,@PHP71Migration:risky,blank_line_after_opening_tag -q
+        if: "matrix.execute-migration-rules == 'yes'"
 
       - name: Run tests
         continue-on-error: ${{ matrix.php-version == '8.0' }}
         env:
           PHP_CS_FIXER_IGNORE_ENV: ${{ matrix.PHP_CS_FIXER_IGNORE_ENV }}
           FAST_LINT_TEST_CASES: ${{ matrix.FAST_LINT_TEST_CASES }}
-          SKIP_LINT_TEST_CASES: ${{ matrix.SKIP_LINT_TEST_CASES }}
           PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER: ${{ matrix.PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER }}
           SYMFONY_DEPRECATIONS_HELPER: ${{ matrix.SYMFONY_DEPRECATIONS_HELPER }}
         run: |
@@ -91,6 +118,6 @@ jobs:
       - name: Run PHP CS Fixer
         env:
           PHP_CS_FIXER_IGNORE_ENV: ${{ matrix.PHP_CS_FIXER_IGNORE_ENV }}
-          PHP_CS_FIXER_FUTURE_MODE: ${{ matrix.PHP_CS_FIXER_FUTURE_MODE }}
+          PHP_CS_FIXER_FUTURE_MODE: 1
         run: |
           php php-cs-fixer --diff --dry-run -v fix

+ 1 - 1
.github/workflows/sca.yaml → .github/workflows/sca.yml

@@ -9,7 +9,7 @@ jobs:
     strategy:
       matrix:
         operating-system:
-          - ubuntu-latest
+          - ubuntu-20.04
         php-version:
           - 7.4
 

+ 1 - 1
.github/workflows/yaml.yaml → .github/workflows/yaml.yml

@@ -7,7 +7,7 @@ on:
 jobs:
   validate-yaml:
     name: Validate YAML
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-20.04
 
     steps:
       - name: Checkout code

+ 5 - 46
.travis.yml

@@ -1,3 +1,5 @@
+# yamllint disable rule:line-length
+
 dist: xenial
 os: linux
 
@@ -22,50 +24,7 @@ before_install:
 
 jobs:
     include:
-        - &STANDARD_TEST_JOB
-            stage: Fast Test
-            php: 7.0
-            install:
-                # Composer: enforce given Symfony components version
-                - if [ "$SYMFONY_VERSION" != "" ]; then composer global show symfony/flex -q || travis_retry composer global require $DEFAULT_COMPOSER_FLAGS symfony/flex; fi
-                - if [ "$SYMFONY_VERSION" != "" ]; then composer config extra.symfony.require $SYMFONY_VERSION || true; fi
-
-                - travis_retry composer update $DEFAULT_COMPOSER_FLAGS $COMPOSER_FLAGS
-                - composer info -D | sort
-            script:
-                - vendor/bin/phpunit || travis_terminate 1
-                - PHP_CS_FIXER_FUTURE_MODE=1 php php-cs-fixer --diff --dry-run -v fix
-
-        -
-            <<: *STANDARD_TEST_JOB
-            stage: Test
-            php: 5.6
-            env: COMPOSER_FLAGS="--prefer-stable --prefer-lowest"
-
-        -
-            <<: *STANDARD_TEST_JOB
-            stage: Test
-            php: 7.1
-            name: 7.1 | Symfony ~4.1.0
-            env: SYMFONY_DEPRECATIONS_HELPER=disabled PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER=1 SYMFONY_VERSION="~4.1.0"
-
-        -
-            <<: *STANDARD_TEST_JOB
-            stage: Test
-            php: 7.2
-            name: 7.2 | Symfony ^5.0
-            env: SYMFONY_DEPRECATIONS_HELPER=disabled PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER=1 SYMFONY_VERSION="^5.0"
-
-        -
-            <<: *STANDARD_TEST_JOB
-            stage: Test
-            php: 7.3
-            name: 7.3 | With migration rules
-            before_script:
-                - php php-cs-fixer fix --rules @PHP73Migration,@PHP71Migration:risky,blank_line_after_opening_tag -q || travis_terminate 1
-
         -
-            <<: *STANDARD_TEST_JOB
             stage: Test
             php: 7.4
             name: 7.4 | Collect coverage
@@ -82,6 +41,9 @@ jobs:
 
                 # Install PCOV
                 - pecl install pcov
+            install:
+                - travis_retry composer update $DEFAULT_COMPOSER_FLAGS $COMPOSER_FLAGS
+                - composer info -D | sort
             before_script:
                 # Make code compatible with PHPUnit 8
                 - PHP_CS_FIXER_FUTURE_MODE=1 php php-cs-fixer fix --rules=void_return -q tests || return 0
@@ -110,6 +72,3 @@ jobs:
                     tags: true
             after_deploy:
                 - ./dev-tools/trigger-website.sh ${TRAVIS_TOKEN} ${TRAVIS_TAG}
-
-    allow_failures:
-        - php: nightly

+ 1 - 1
tests/AutoReview/CiConfigurationTest.php

@@ -186,7 +186,7 @@ final class CiConfigurationTest extends TestCase
     {
         $yaml = Yaml::parse(file_get_contents(__DIR__.'/../../.github/workflows/ci.yaml'));
 
-        $phpVersions = $yaml['jobs']['tests']['strategy']['matrix']['php-version'];
+        $phpVersions = isset($yaml['jobs']['tests']['strategy']['matrix']['php-version']) ? $yaml['jobs']['tests']['strategy']['matrix']['php-version'] : [];
 
         foreach ($yaml['jobs']['tests']['strategy']['matrix']['include'] as $job) {
             $phpVersions[] = $job['php-version'];