From 4eeb3e424c39d49cf7ce06c1b87e565dccb81d9c Mon Sep 17 00:00:00 2001 From: Konstantin Grachev Date: Mon, 12 Sep 2022 17:49:42 +0300 Subject: [PATCH] Explode ci.yaml workflow --- .github/workflows/ci.yaml | 166 -------------------------- .github/workflows/code_style.yaml | 37 ++++++ .github/workflows/phpunit.yaml | 71 +++++++++++ .github/workflows/static_analyze.yaml | 70 +++++++++++ 4 files changed, 178 insertions(+), 166 deletions(-) delete mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/code_style.yaml create mode 100644 .github/workflows/phpunit.yaml create mode 100644 .github/workflows/static_analyze.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index 1cd3829..0000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,166 +0,0 @@ -name: CI - -on: - - pull_request - - push - -jobs: - tests: - name: Tests - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: - - ubuntu-latest - php: - - '8.1' - nsq: - - nsq-1.2.0.linux-amd64.go1.12.9 - - nsq-1.2.1.linux-amd64.go1.16.6 - dependencies: - - lowest - - highest - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - coverage: pcov - extensions: kjdev/php-ext-snappy@0.2.1 - env: - update: true - - - name: Download NSQ - run: | - curl -sSL "http://bitly-downloads.s3.amazonaws.com/nsq/${{ matrix.nsq }}.tar.gz" \ - | tar -xzv --strip-components=1 - ./bin/nsqd --version - - - name: Setup Problem Matchers for PHPUnit - run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - - - name: Determine Composer cache directory - id: composer-cache - run: echo "::set-output name=directory::$(composer config cache-dir)" - - - name: Cache Composer dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.directory }} - key: ${{ runner.os }}-${{ matrix.php }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }} - restore-keys: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.dependencies }}-composer- - - - name: Install highest dependencies - run: composer update --no-progress --no-interaction --prefer-dist - if: ${{ matrix.dependencies == 'highest' }} - - - name: Install lowest dependencies - run: composer update --no-progress --no-interaction --prefer-dist --prefer-lowest - if: ${{ matrix.dependencies == 'lowest' }} - - - name: Run tests - run: vendor/bin/phpunit --coverage-clover=build/coverage-report.xml - - - name: Upload code coverage - uses: codecov/codecov-action@v1 - with: - file: build/coverage-report.xml - - php-cs-fixer: - name: PHP-CS-Fixer - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - env: - update: true - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer update --no-progress --no-interaction --prefer-dist - - - name: Run script - run: composer cs-check - - phpstan: - name: PHPStan - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: snappy-kjdev/php-ext-snappy@0.2.1 - env: - update: true - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer update --no-progress --no-interaction --prefer-dist - - - name: Run script - run: composer phpstan - - psalm: - name: Psalm - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: snappy-kjdev/php-ext-snappy@0.2.1 - env: - update: true - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer update --no-progress --no-interaction --prefer-dist - - - name: Run script - run: vendor/bin/psalm --output-format=github diff --git a/.github/workflows/code_style.yaml b/.github/workflows/code_style.yaml new file mode 100644 index 0000000..82b19a7 --- /dev/null +++ b/.github/workflows/code_style.yaml @@ -0,0 +1,37 @@ +name: Code Style + +on: + - pull_request + - push + +jobs: + php-cs-fixer: + name: PHP-CS-Fixer + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + env: + update: true + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install dependencies + run: composer update --no-progress --no-interaction --prefer-dist + + - name: Run script + run: composer cs-check diff --git a/.github/workflows/phpunit.yaml b/.github/workflows/phpunit.yaml new file mode 100644 index 0000000..c6ec5bb --- /dev/null +++ b/.github/workflows/phpunit.yaml @@ -0,0 +1,71 @@ +name: phpunit + +on: + - pull_request + - push + +jobs: + phpunit: + name: Tests + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + php: + - '8.1' + nsq: + - nsq-1.2.0.linux-amd64.go1.12.9 + - nsq-1.2.1.linux-amd64.go1.16.6 + dependencies: + - lowest + - highest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: pcov + extensions: kjdev/php-ext-snappy@0.2.1 + env: + update: true + + - name: Download NSQ + run: | + curl -sSL "http://bitly-downloads.s3.amazonaws.com/nsq/${{ matrix.nsq }}.tar.gz" \ + | tar -xzv --strip-components=1 + ./bin/nsqd --version + + - name: Setup Problem Matchers for PHPUnit + run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + + - name: Determine Composer cache directory + id: composer-cache + run: echo "::set-output name=directory::$(composer config cache-dir)" + + - name: Cache Composer dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.directory }} + key: ${{ runner.os }}-${{ matrix.php }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.dependencies }}-composer- + + - name: Install highest dependencies + run: composer update --no-progress --no-interaction --prefer-dist + if: ${{ matrix.dependencies == 'highest' }} + + - name: Install lowest dependencies + run: composer update --no-progress --no-interaction --prefer-dist --prefer-lowest + if: ${{ matrix.dependencies == 'lowest' }} + + - name: Run tests + run: vendor/bin/phpunit --coverage-clover=build/coverage-report.xml + + - name: Upload code coverage + uses: codecov/codecov-action@v1 + with: + file: build/coverage-report.xml diff --git a/.github/workflows/static_analyze.yaml b/.github/workflows/static_analyze.yaml new file mode 100644 index 0000000..83a491d --- /dev/null +++ b/.github/workflows/static_analyze.yaml @@ -0,0 +1,70 @@ +name: Static Analyze + +on: + - pull_request + - push + +jobs: + phpstan: + name: PHPStan + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + extensions: snappy-kjdev/php-ext-snappy@0.2.1 + env: + update: true + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install dependencies + run: composer update --no-progress --no-interaction --prefer-dist + + - name: Run script + run: composer phpstan + + psalm: + name: Psalm + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + extensions: snappy-kjdev/php-ext-snappy@0.2.1 + env: + update: true + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install dependencies + run: composer update --no-progress --no-interaction --prefer-dist + + - name: Run script + run: vendor/bin/psalm --output-format=github