重构 Model Meta 的注解管理 (#701) #12
This file contains 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
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/ |