From e6e7d2b3f246319ad0ff0b0f0a861f267eae8c80 Mon Sep 17 00:00:00 2001 From: Norbert Orzechowicz <1921950+norberttech@users.noreply.github.com> Date: Fri, 9 Feb 2024 14:23:15 +0100 Subject: [PATCH] Extracted static analyze to standalone workflow in order to run it always for website/code changes (#976) --- .github/workflows/publish-website.yml | 2 +- .github/workflows/static-analyze.yml | 109 ++++++++++++++++++++++++++ .github/workflows/test-suite.yml | 86 -------------------- 3 files changed, 110 insertions(+), 87 deletions(-) create mode 100644 .github/workflows/static-analyze.yml diff --git a/.github/workflows/publish-website.yml b/.github/workflows/publish-website.yml index adf3c4cb1..dcfcee6e3 100644 --- a/.github/workflows/publish-website.yml +++ b/.github/workflows/publish-website.yml @@ -53,7 +53,7 @@ jobs: env: DOMAIN: flow-php.com GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} - GOOGLE_ANALYTICS_ID: 'G-1W17JSMLE5' + GOOGLE_ANALYTICS_ID: '${{ vars.GOOGLE_ANALYTICS_ID }}' working-directory: "web/landing" - name: Pushes build to website repository diff --git a/.github/workflows/static-analyze.yml b/.github/workflows/static-analyze.yml new file mode 100644 index 000000000..fcc5c7aed --- /dev/null +++ b/.github/workflows/static-analyze.yml @@ -0,0 +1,109 @@ +name: Static Analyze + +on: + pull_request: + paths: + - '.github/workflows/**' + - 'src/adapter/**' + - 'src/core/**' + - 'src/lib/**' + - 'tools/**' + - 'web/**' + - 'examples/**' + - 'composer.lock' + push: + branches: [ 1.x ] + paths-ignore: + - 'CHANGELOG.md' + +# See https://stackoverflow.com/a/72408109 +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + static-analyze: + name: "Static Analyze" + + runs-on: ${{ matrix.operating-system }} + + strategy: + fail-fast: false + matrix: + dependencies: + - "locked" + php-version: + - "8.1" + operating-system: + - "ubuntu-latest" + + steps: + - name: "Checkout" + uses: "actions/checkout@v4" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: none + tools: composer:v2 + php-version: "${{ matrix.php-version }}" + ini-values: memory_limit=-1 + extensions: :psr + + - name: "Create cache directories" + run: | + mkdir -p var/cs-fixer + mkdir -p var/phpstan/cache + mkdir -p var/psalm/cache + + - name: "Get Composer Cache Directory" + id: composer-cache + run: | + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: "Cache Composer dependencies" + uses: "actions/cache@v3" + with: + path: "${{ steps.composer-cache.outputs.dir }}" + key: "php-${{ matrix.php-version }}-locked-composer-${{ hashFiles('**/composer.lock') }}" + restore-keys: | + php-${{ matrix.php-version }}-locked-composer- + + - name: "Install locked dependencies" + run: "composer install --no-interaction --no-progress" + + - name: "Cache cs-fixer results" + uses: "actions/cache@v3" + with: + path: "var/cs-fixer" + key: "php-${{ matrix.php-version }}-cache-cs-fixer-${{ github.run_id }}" + restore-keys: | + php-${{ matrix.php-version }}-cache-cs-fixer- + + - name: "Cache phpstan results" + uses: "actions/cache@v3" + with: + path: "var/phpstan/cache" + key: "php-${{ matrix.php-version }}-cache-phpstan-${{ github.run_id }}" + restore-keys: | + php-${{ matrix.php-version }}-cache-phpstan- + + - name: "Cache psalm results" + uses: "actions/cache@v3" + with: + path: "var/psalm/cache" + key: "php-${{ matrix.php-version }}-cache-psalm-${{ github.run_id }}" + restore-keys: | + php-${{ matrix.php-version }}-cache-psalm- + + - name: "Monorepo Validate" + run: "composer test:monorepo" + + - name: "Static Analyze - CS Fixer" + run: "composer static:analyze:cs-fixer" + + - name: "Static Analyze - PHPStan" + run: "composer static:analyze:phpstan -- --error-format=github" + + - name: "Static Analyze - Psalm" + run: "composer static:analyze:psalm -- --output-format=github" \ No newline at end of file diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index 8d4a6fc94..74fb5eff5 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -21,92 +21,6 @@ concurrency: cancel-in-progress: true jobs: - static-analyze: - name: "Static Analyze" - - runs-on: ${{ matrix.operating-system }} - - strategy: - fail-fast: false - matrix: - dependencies: - - "locked" - php-version: - - "8.1" - operating-system: - - "ubuntu-latest" - - steps: - - name: "Checkout" - uses: "actions/checkout@v4" - - - name: "Install PHP" - uses: "shivammathur/setup-php@v2" - with: - coverage: none - tools: composer:v2 - php-version: "${{ matrix.php-version }}" - ini-values: memory_limit=-1 - extensions: :psr - - - name: "Create cache directories" - run: | - mkdir -p var/cs-fixer - mkdir -p var/phpstan/cache - mkdir -p var/psalm/cache - - - name: "Get Composer Cache Directory" - id: composer-cache - run: | - echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - - - name: "Cache Composer dependencies" - uses: "actions/cache@v3" - with: - path: "${{ steps.composer-cache.outputs.dir }}" - key: "php-${{ matrix.php-version }}-locked-composer-${{ hashFiles('**/composer.lock') }}" - restore-keys: | - php-${{ matrix.php-version }}-locked-composer- - - - name: "Install locked dependencies" - run: "composer install --no-interaction --no-progress" - - - name: "Cache cs-fixer results" - uses: "actions/cache@v3" - with: - path: "var/cs-fixer" - key: "php-${{ matrix.php-version }}-cache-cs-fixer-${{ github.run_id }}" - restore-keys: | - php-${{ matrix.php-version }}-cache-cs-fixer- - - - name: "Cache phpstan results" - uses: "actions/cache@v3" - with: - path: "var/phpstan/cache" - key: "php-${{ matrix.php-version }}-cache-phpstan-${{ github.run_id }}" - restore-keys: | - php-${{ matrix.php-version }}-cache-phpstan- - - - name: "Cache psalm results" - uses: "actions/cache@v3" - with: - path: "var/psalm/cache" - key: "php-${{ matrix.php-version }}-cache-psalm-${{ github.run_id }}" - restore-keys: | - php-${{ matrix.php-version }}-cache-psalm- - - - name: "Monorepo Validate" - run: "composer test:monorepo" - - - name: "Static Analyze - CS Fixer" - run: "composer static:analyze:cs-fixer" - - - name: "Static Analyze - PHPStan" - run: "composer static:analyze:phpstan -- --error-format=github" - - - name: "Static Analyze - Psalm" - run: "composer static:analyze:psalm -- --output-format=github" - tests: name: "Tests"