From 4f56af29d3668a1ede2e746aa22fe58b437bde46 Mon Sep 17 00:00:00 2001 From: Yozhef Date: Thu, 12 Aug 2021 14:50:45 +0300 Subject: [PATCH] feat: add Ci process --- .github/workflows/ci.yaml | 79 ++++++++++++++++++++++++++ .github/workflows/gitleaks.yaml | 16 ++++++ .github/workflows/static-analysis.yaml | 39 +++++++++++++ 3 files changed, 134 insertions(+) create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/gitleaks.yaml create mode 100644 .github/workflows/static-analysis.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..df45dd8 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,79 @@ +name: CI + +on: + pull_request: + push: + branches: [ master, develop ] + +jobs: + run: + runs-on: ubuntu-18.04 + strategy: + fail-fast: false + matrix: + php: + - '7.4' + - '8.0' + coverage: ['none'] + symfony-versions: + - '4.4.*' + - '5.1.*' + - '5.2.*' + - '5.3.*' + include: + - description: 'Log Code Coverage' + php: '8.0' + coverage: 'xdebug' + symfony-versions: '^5.2' + + name: PHP ${{ matrix.php }} Symfony ${{ matrix.symfony-versions }} ${{ matrix.description }} + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: actions/cache@v2 + with: + path: ~/.composer/cache/files + key: ${{ matrix.php }}-${{ matrix.symfony-versions }} + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: ${{ matrix.coverage }} + + - name: Add PHPUnit matcher + run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + + - name: Set composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache composer + uses: actions/cache@v2.1.2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.symfony-versions }}-composer-${{ hashFiles('composer.json') }} + restore-keys: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.symfony-versions }}-composer + + - name: Install dependencies + run: composer require "symfony/symfony:${{ matrix.symfony-versions }}" --no-update + + - name: Install dependencies + run: composer install + + - name: Run PHPUnit tests + run: vendor/bin/simple-phpunit + if: matrix.coverage == 'none' + + - name: PHPUnit tests and Log Code coverage + run: vendor/bin/simple-phpunit --coverage-clover=coverage.xml + if: matrix.coverage == 'xdebug' + +#TODO: need public release +# - name: Run codecov +# uses: codecov/codecov-action@v1 +# if: matrix.coverage == 'xdebug' +# with: +# file: './coverage.xml' +# fail_ci_if_error: true diff --git a/.github/workflows/gitleaks.yaml b/.github/workflows/gitleaks.yaml new file mode 100644 index 0000000..be1b555 --- /dev/null +++ b/.github/workflows/gitleaks.yaml @@ -0,0 +1,16 @@ +name: gitleaks + +on: + pull_request: + push: + branches: [ master, develop ] + +jobs: + gitleaks: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Run gitleaks + uses: zricethezav/gitleaks-action@master \ No newline at end of file diff --git a/.github/workflows/static-analysis.yaml b/.github/workflows/static-analysis.yaml new file mode 100644 index 0000000..8a63d16 --- /dev/null +++ b/.github/workflows/static-analysis.yaml @@ -0,0 +1,39 @@ +name: Code style and static analysis + +on: + pull_request: + push: + branches: [ master, develop ] + +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 + + - name: Install dependencies + run: composer install --no-progress --no-interaction --prefer-dist + + - name: Run script + run: vendor/bin/phpcs + + phpstan: + name: PHPStan + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + + - name: Install dependencies + run: composer install --no-progress --no-interaction --prefer-dist + + - name: Run script + run: vendor/bin/phpstan analyse