chore(workflow): simplify Psalm invocation by removing vendor/bin p…
#799
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This file is part of the Phalcon Kit. | |
| # | |
| # (c) Phalcon Kit Team | |
| # | |
| # For the full copyright and license information, please view the LICENSE.txt | |
| # file that was distributed with this source code. | |
| name: Phalcon Kit CI | |
| on: | |
| schedule: | |
| - cron: '0 2 * * *' # Daily at 02:00 runs only on default branch | |
| push: | |
| paths-ignore: | |
| - '**.md' | |
| - '**.txt' | |
| pull_request: | |
| workflow_dispatch: | |
| env: | |
| # PHP extensions required by Composer | |
| EXTENSIONS: apcu, gettext, gd, igbinary, imagick, intl, json, mbstring, msgpack, memcached, sqlite3, yaml, redis, openssl, phalcon5, swoole, :memcache, :psr | |
| EXTENSIONS_CACHE_KEY: php-ext-v1 | |
| permissions: { } | |
| jobs: | |
| # PHP SETUP | |
| setup: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| php: | |
| - "8.4" | |
| dependencies: | |
| - "highest" | |
| outputs: | |
| cache-key: ${{ steps.composer-cache.outputs.key }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Setup cache environment | |
| id: extcache | |
| uses: shivammathur/cache-extensions@v1 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| key: ${{ env.EXTENSIONS_CACHE_KEY }} | |
| - name: Cache PHP extensions | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.extcache.outputs.dir }} | |
| key: ${{ steps.extcache.outputs.key }} | |
| restore-keys: ${{ steps.extcache.outputs.key }} | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| tools: composer, cs2pr | |
| - name: Cache global Composer packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.composer | |
| key: composer-global-${{ runner.os }}-${{ hashFiles('**/composer.json') }} | |
| - uses: ramsey/composer-install@v3 | |
| with: | |
| dependency-versions: ${{ matrix.dependencies }} | |
| composer-options: ${{ matrix.composer-options }} | |
| custom-cache-suffix: phalcon-kit-composer | |
| # PHP CODE SNIFFER | |
| code-sniffer: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| php: | |
| - "8.4" | |
| dependencies: | |
| - "highest" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Setup cache environment | |
| id: extcache | |
| uses: shivammathur/cache-extensions@v1 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| key: ${{ env.EXTENSIONS_CACHE_KEY }} | |
| - name: Cache PHP extensions | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.extcache.outputs.dir }} | |
| key: ${{ steps.extcache.outputs.key }} | |
| restore-keys: ${{ steps.extcache.outputs.key }} | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| tools: composer, cs2pr, phpcs | |
| - uses: ramsey/composer-install@v3 | |
| with: | |
| dependency-versions: ${{ matrix.dependencies }} | |
| composer-options: ${{ matrix.composer-options }} | |
| custom-cache-suffix: phalcon-kit-composer | |
| - name: PHP Code Sniffer | |
| run: phpcs --standard=phpcs.xml -q --report=checkstyle | cs2pr --graceful-warnings | |
| # PHP STATIC ANALYSIS | |
| static-analysis: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| php: | |
| - "8.4" | |
| dependencies: | |
| - "highest" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Setup cache environment | |
| id: extcache | |
| uses: shivammathur/cache-extensions@v1 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| key: ${{ env.EXTENSIONS_CACHE_KEY }} | |
| - name: Cache PHP extensions | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.extcache.outputs.dir }} | |
| key: ${{ steps.extcache.outputs.key }} | |
| restore-keys: ${{ steps.extcache.outputs.key }} | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| tools: composer, cs2pr, phpstan | |
| - uses: ramsey/composer-install@v3 | |
| with: | |
| dependency-versions: ${{ matrix.dependencies }} | |
| composer-options: ${{ matrix.composer-options }} | |
| custom-cache-suffix: phalcon-kit-composer | |
| - name: PHP Stan | |
| run: phpstan | |
| # PHP PSALM | |
| php-security: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| php: | |
| - "8.4" | |
| dependencies: | |
| - "highest" | |
| permissions: | |
| security-events: write | |
| contents: read | |
| actions: read | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| - name: Setup cache environment | |
| id: extcache | |
| uses: shivammathur/cache-extensions@v1 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| key: ${{ env.EXTENSIONS_CACHE_KEY }} | |
| - name: Cache PHP extensions | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.extcache.outputs.dir }} | |
| key: ${{ steps.extcache.outputs.key }} | |
| restore-keys: ${{ steps.extcache.outputs.key }} | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| tools: composer, psalm | |
| - uses: ramsey/composer-install@v3 | |
| with: | |
| dependency-versions: ${{ matrix.dependencies }} | |
| composer-options: ${{ matrix.composer-options }} | |
| custom-cache-suffix: phalcon-kit-composer | |
| - name: Dump Composer autoloader | |
| run: composer dump-autoload -a | |
| - name: Clear Psalm Cache | |
| run: rm -rf ~/.cache/psalm psalm-results.sarif .psalm.cache | |
| - name: Run Psalm Security Scan | |
| run: | | |
| psalm --output-format=github --no-progress --no-cache --threads=4 | |
| # - name: Run Psalm Security Scan | |
| # run: | | |
| # psalm --config=psalm.xml \ | |
| # --output-format=sarif \ | |
| # --no-progress \ | |
| # --no-cache \ | |
| # --stats \ | |
| # --show-info=false \ | |
| # --threads=4 2>&1 | tee psalm-results.sarif | |
| # | |
| # - name: Upload Psalm report to GitHub Code Scanning | |
| # uses: github/codeql-action/upload-sarif@v4 | |
| # with: | |
| # sarif_file: psalm-results.sarif | |
| # PHP UNIT TEST | |
| unit-tests: | |
| needs: setup | |
| strategy: | |
| matrix: | |
| php: | |
| - "8.4" | |
| dependencies: | |
| - "highest" | |
| services: | |
| mysql: | |
| image: mysql:8.0 | |
| env: | |
| MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' | |
| MYSQL_DATABASE: phalcon_kit | |
| ports: | |
| - 3306:3306 | |
| options: >- | |
| --health-cmd="mysqladmin ping -h 127.0.0.1" | |
| --health-interval=10s | |
| --health-timeout=5s | |
| --health-retries=3 | |
| redis: | |
| image: redis:latest | |
| ports: | |
| - 6379:6379 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Prepare Locale | |
| run: | | |
| sudo locale-gen en_IN.UTF-8 | |
| sudo update-locale LANG=en_IN.UTF-8 | |
| sudo locale-gen en_CA.UTF-8 | |
| sudo update-locale LANG=en_CA.UTF-8 | |
| sudo locale-gen fr_CA.UTF-8 | |
| sudo update-locale LANG=fr_CA.UTF-8 | |
| - name: Setup cache environment | |
| id: extcache | |
| uses: shivammathur/cache-extensions@v1 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| key: ${{ env.EXTENSIONS_CACHE_KEY }} | |
| - name: Cache PHP extensions | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.extcache.outputs.dir }} | |
| key: ${{ steps.extcache.outputs.key }} | |
| restore-keys: ${{ steps.extcache.outputs.key }} | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: ${{ env.EXTENSIONS }} | |
| tools: composer, cs2pr, phpunit | |
| - uses: ramsey/composer-install@v3 | |
| with: | |
| dependency-versions: ${{ matrix.dependencies }} | |
| composer-options: ${{ matrix.composer-options }} | |
| custom-cache-suffix: phalcon-kit-composer | |
| - name: Install Phalcon DevTools | |
| run: | | |
| composer global config minimum-stability dev | |
| composer global config prefer-stable true | |
| composer global require phalcon/devtools:^5.0 --no-interaction --no-progress | |
| echo "$(composer global config home)/vendor/bin" >> $GITHUB_PATH | |
| - name: Set permissions and environment | |
| run: | | |
| chmod +x ./bin/* ./vendor/bin/* ./phalcon-kit | |
| mkdir .phalcon | |
| touch .env | |
| cp .env.github .env | |
| - name: Run migrations | |
| run: | | |
| ./bin/migration-list.sh | |
| ./bin/migration-run.sh | |
| - name: PHP Unit | |
| run: phpunit | |