diff --git a/.github/tests/test_and_check_app/action.yml b/.github/tests/test_and_check_app/action.yml index 9892b00..148b553 100644 --- a/.github/tests/test_and_check_app/action.yml +++ b/.github/tests/test_and_check_app/action.yml @@ -1,78 +1,18 @@ -name: "Lint and Test APP" -description: "Run Pint and the Pest test suite" +name: test_and_check_app +description: Build the test image and run all application checks runs: using: composite steps: - - name: Setup PHP - uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 #v2.37.2 - with: - php-version: "8.5" - extensions: mbstring, pdo_sqlite - coverage: none - tools: composer:v2 - - - name: Verify Composer lockfile + - name: Test and check app + shell: bash run: | - if [ ! -f composer.lock ]; then - echo "::error::composer.lock not found" - exit 1 - fi - shell: bash + set -Eeuo pipefail - - name: Get Composer cache directory - id: composer_cache - run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" - shell: bash - - - name: Cache Composer packages - uses: actions/cache@2c8a9bd7457de244a408f35966fab2fb45fda9c8 # v6.0.0 - with: - path: ${{ steps.composer_cache.outputs.dir }} - key: ${{ runner.os }}-php-8.5-${{ hashFiles('composer.lock') }} - - - name: Setup pnpm - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v11.7.0 - with: - package-json-file: package.json - - - name: Setup Node.js - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - with: - node-version: 22 - cache: "pnpm" - cache-dependency-path: "pnpm-lock.yaml" - - - name: Install dependencies - run: pnpm install --frozen-lockfile - shell: bash - - - name: Prepare environment file - run: cp .env.example .env - shell: bash - - - name: Install dependencies - run: composer install --no-interaction --prefer-dist --no-progress - shell: bash - - - name: Generate application key - run: php artisan key:generate - shell: bash - - - name: Generate Wayfinder routes and actions - run: php artisan wayfinder:generate --with-form - shell: bash - - - name: Run independent application checks - run: | - pnpm exec concurrently \ - --names frontend,backend \ - --prefix-colors cyan,magenta \ - --kill-others-on-fail \ - "composer run ci:frontend" \ - "composer run ci:backend" - shell: bash - - - name: Run Laravel tests - run: composer run ci:test - shell: bash + docker buildx build \ + --file Dockerfile \ + --target test \ + --tag "local/kanbangit-test:${GITHUB_SHA}" \ + --progress plain \ + --load \ + . diff --git a/composer.lock b/composer.lock index 0d3d5b2..7ff93f0 100644 --- a/composer.lock +++ b/composer.lock @@ -1451,20 +1451,20 @@ }, { "name": "laravel/framework", - "version": "v13.26.1", + "version": "v13.34.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e4a1bc52ef551d52e60244bb004256d6861da7ab" + "reference": "c829b4982d29344cbcf1d7ad78eb5d2bb8ae66c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e4a1bc52ef551d52e60244bb004256d6861da7ab", - "reference": "e4a1bc52ef551d52e60244bb004256d6861da7ab", + "url": "https://api.github.com/repos/laravel/framework/zipball/c829b4982d29344cbcf1d7ad78eb5d2bb8ae66c4", + "reference": "c829b4982d29344cbcf1d7ad78eb5d2bb8ae66c4", "shasum": "" }, "require": { - "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17 || ^0.18 || ^0.19", + "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17 || ^0.18 || ^0.19 || ^0.20 || ^1.0", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", @@ -1576,18 +1576,20 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^11.0.0", + "orchestra/testbench-core": "^11.5.0", "pda/pheanstalk": "^7.0.0 || ^8.0.0", "php-http/discovery": "^1.15", - "phpstan/phpstan": "^2.0", + "phpstan/phpstan": "2.2.15", "phpunit/phpunit": "^11.5.50 || ^12.5.8 || ^13.0.3", "predis/predis": "^2.3 || ^3.0", - "rector/rector": "^2.3", + "rector/rector": "2.6.3", "resend/resend-php": "^1.0", "symfony/cache": "^7.4.0 || ^8.0.0", "symfony/http-client": "^7.4.0 || ^8.0.0", + "symfony/mercure": "^0.8.0", "symfony/psr-http-message-bridge": "^7.4.0 || ^8.0.0", - "symfony/translation": "^7.4.0 || ^8.0.0" + "symfony/translation": "^7.4.0 || ^8.0.0", + "web-token/jwt-library": "^4.1" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", @@ -1623,8 +1625,10 @@ "symfony/filesystem": "Required to enable support for relative symbolic links (^7.4 || ^8.0).", "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.4 || ^8.0).", "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.4 || ^8.0).", + "symfony/mercure": "Required to use the Mercure broadcast driver (^0.8).", "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.4 || ^8.0).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0)." + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0).", + "web-token/jwt-library": "Required to sign Mercure JWTs and use end-to-end encrypted channels (^4.1)." }, "type": "library", "extra": { @@ -1674,7 +1678,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-08-18T20:31:28+00:00" + "time": "2026-09-29T12:46:21+00:00" }, { "name": "laravel/mcp", @@ -2192,16 +2196,16 @@ }, { "name": "league/flysystem", - "version": "3.35.2", + "version": "3.36.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "b277b5dc3d56650b68904117124e79c851e12376" + "reference": "f7fb152932f30072d573510cbd4dd657d6475b25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b277b5dc3d56650b68904117124e79c851e12376", - "reference": "b277b5dc3d56650b68904117124e79c851e12376", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f7fb152932f30072d573510cbd4dd657d6475b25", + "reference": "f7fb152932f30072d573510cbd4dd657d6475b25", "shasum": "" }, "require": { @@ -2269,9 +2273,9 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.35.2" + "source": "https://github.com/thephpleague/flysystem/tree/3.36.0" }, - "time": "2026-07-06T14:42:07+00:00" + "time": "2026-09-02T08:00:27+00:00" }, { "name": "league/flysystem-aws-s3-v3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b86342..d9a6a90 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1088,14 +1088,14 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - brace-expansion@1.1.18: - resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==} + brace-expansion@1.1.21: + resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==} - brace-expansion@2.1.4: - resolution: {integrity: sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==} + brace-expansion@2.1.7: + resolution: {integrity: sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==} - brace-expansion@5.0.9: - resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} engines: {node: 20 || >=22} braces@3.0.3: @@ -3303,16 +3303,16 @@ snapshots: boolbase@1.0.0: {} - brace-expansion@1.1.18: + brace-expansion@1.1.21: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.4: + brace-expansion@2.1.7: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.9: + brace-expansion@5.0.12: dependencies: balanced-match: 4.0.4 @@ -4206,15 +4206,15 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.9 + brace-expansion: 5.0.12 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.18 + brace-expansion: 1.1.21 minimatch@9.0.9: dependencies: - brace-expansion: 2.1.4 + brace-expansion: 2.1.7 minimist@1.2.8: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ed48c9b..a6b45ab 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,9 @@ minimumReleaseAge: 10080 +# Security patches for GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7 and GHSA-6j4f-fj2g-mc7p. +minimumReleaseAgeExclude: + - brace-expansion@1.1.21 + - brace-expansion@2.1.7 + - brace-expansion@5.0.12 allowBuilds: unrs-resolver: true vue-demi: true