Skip to content

重构 Model Meta 的注解管理 (#701) #12

重构 Model Meta 的注解管理 (#701)

重构 Model Meta 的注解管理 (#701) #12

Workflow file for this run

name: Static Code Analysis
on:
push:
paths-ignore:
- "doc/**"
- "mddoc/**"
- "res/**"
- "website/**"
- ".markdownlint.json"
- "README.md"
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
phpstan:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
swoole-docker: [php8.1-swoole-5.0]
env:
REPOSITORY_OWNER: ${{ github.repository_owner }}
IMAGE_VERSION: ${{ matrix.swoole-docker }}
ENV_SERVICE: swoole-only
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare1
run: |
echo "REPOSITORY_OWNER=${REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
mkdir -p /tmp/base_cache/composer
mkdir -p /tmp/base_cache/phpstan
- name: Cache dependencies
uses: actions/cache@v4
with:
path: /tmp/base_cache/composer
key: ${{ runner.os }}-composer-${{ env.IMAGE_VERSION }}-${{ hashFiles('*/composer.json', 'src/Components/*/composer.json') }}
restore-keys: |
${{ runner.os }}-composer-${{ env.IMAGE_VERSION }}-
${{ runner.os }}-composer-
- name: Cache phpstan
uses: actions/cache@v4
if: ${{ false }}
with:
path: /tmp/base_cache/phpstan
key: ${{ runner.os }}-phpstan-v2-${{ env.IMAGE_VERSION }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-phpstan-v2-${{ env.IMAGE_VERSION }}-
- name: Recover All composer.lock
run: |
[ -f /tmp/base_cache/phpstan/composer_lock.zip ] && unzip /tmp/base_cache/phpstan/composer_lock.zip -d "${GITHUB_WORKSPACE}" || echo "No composer_lock.zip" || true
- name: Prepare2
run: |
echo "::group::Env prepare"
docker compose -f ./.github/docker-compose.yml up -d ${ENV_SERVICE}
echo "::endgroup::"
echo "::group::Env info"
docker exec ${ENV_SERVICE} php -v
docker exec ${ENV_SERVICE} php -m
docker exec ${ENV_SERVICE} php --ri swoole
docker exec ${ENV_SERVICE} composer -V
echo "::endgroup::"
echo "::group::Composer install"
docker exec ${ENV_SERVICE} composer config --global cache-files-dir /tmp/base_cache/composer
docker exec ${ENV_SERVICE} composer update --no-interaction --prefer-dist --no-progress
docker exec ${ENV_SERVICE} bash -c "cd split-repository && composer install --no-interaction --prefer-dist --no-progress"
echo "::endgroup::"
echo "test_prepared=1" >> $GITHUB_ENV
- name: Analyse core
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh core
- name: Analyse amqp
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh amqp
- name: Analyse apidoc
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh apidoc
- name: Analyse fpm
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh fpm
- name: Analyse grpc
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh grpc
- name: Analyse jwt
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh jwt
- name: Analyse kafka
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh kafka
- name: Analyse mqtt
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh mqtt
- name: Analyse pgsql
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh pgsql
- name: Analyse queue
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh queue
- name: Analyse rate-limit
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh rate-limit
- name: Analyse roadrunner
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh roadrunner
- name: Analyse rpc
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh rpc
- name: Analyse shared-memory
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh shared-memory
- name: Analyse smarty
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh smarty
- name: Analyse snowflake
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh snowflake
- name: Analyse swoole
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh swoole
- name: Analyse swoole-tracker
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh swoole-tracker
- name: Analyse workerman
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh workerman
- name: Analyse workerman-gateway
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh workerman-gateway
- name: Analyse phar
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh phar
- name: Analyse connection-center
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh connection-center
- name: Analyse database
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh database
- name: Analyse model
if: ${{ env.test_prepared && always() }}
run: |
docker exec ${ENV_SERVICE} ./dev/phpstan.sh model
- name: Save All composer.lock And autoloader-suffix
if: ${{ env.test_prepared && always() }}
run: |
cd "${GITHUB_WORKSPACE}"
find . -type f \( -name "composer.lock" -o -wholename "*/vendor/autoload.php" \) -exec zip /tmp/base_cache/phpstan/composer_lock.zip {} +
- name: Upload cache files (debug)
if: ${{ false }}
uses: actions/upload-artifact@v3
with:
name: phpstan-cache
path: |
/tmp/base_cache/phpstan
!/tmp/base_cache/phpstan/cache/PHPStan/