new deployer command

This commit is contained in:
Mark Gregory
2026-09-16 12:11:57 +01:00
parent 4375fc729f
commit 16fe344eef
2 changed files with 37 additions and 5 deletions
+5 -4
View File
@@ -2,7 +2,7 @@
namespace Deployer;
require 'recipe/laravel.php';
require_once 'recipe/laravel.php';
set('writable_use_sudo', true);
set('clear_use_sudo', true);
@@ -13,6 +13,7 @@ set('node_version', '22.12.0');
set('allow_anonymous_stats', false);
const RELEASE_CD = 'cd {{release_path}} && ';
const RELEASE_AND_CD = ' && cd {{release_path}}';
const DEPLOY_SYMLINK = 'deploy:symlink';
add('shared_files', ['.env']);
@@ -50,13 +51,13 @@ task('build', function (): void {
run(
$node
. ' && cd {{release_path}}'
. RELEASE_AND_CD
. ' && npm ci --no-audit --no-fund',
);
run(
$node
. ' && cd {{release_path}}'
. RELEASE_AND_CD
. ' && for lock in Modules/*/package-lock.json; do'
. ' [ -f "$lock" ] || continue;'
. ' module_dir="$(dirname "$lock")";'
@@ -67,7 +68,7 @@ task('build', function (): void {
run(
$node
. ' && cd {{release_path}}'
. RELEASE_AND_CD
. ' && npm run build',
);
});
+32 -1
View File
@@ -9,7 +9,7 @@ sonar.exclusions=vendor/**,node_modules/**,storage/**,bootstrap/cache/**,public/
# S116: snake_case Livewire public properties intentionally mirror form/database fields.
# S4833: Deployer/Laravel module bootstraps intentionally load recipe/route files.
# Web title checks are not valid on Blade/Vue partials/components which are not standalone HTML documents.
sonar.issue.ignore.multicriteria=e1,e2,e3,e4,e5,e6,e7,e8,e9,e10
sonar.issue.ignore.multicriteria=e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19,e20
sonar.issue.ignore.multicriteria.e1.ruleKey=php:S103
sonar.issue.ignore.multicriteria.e1.resourceKey=**/*.php
sonar.issue.ignore.multicriteria.e2.ruleKey=php:S1808
@@ -36,3 +36,34 @@ sonar.issue.ignore.multicriteria.e9.resourceKey=Modules/*/Helpers/Helper.php
# Framework bootstrap/route files conventionally use require and are intentionally not converted to require_once.
sonar.issue.ignore.multicriteria.e10.ruleKey=php:S2003
sonar.issue.ignore.multicriteria.e10.resourceKey=**/{public/index.php,routes/*.php,deploy.php,tests/CreatesApplication.php}
# Vue pages and Blade layout fragments receive their document title from the application layout/head component.
sonar.issue.ignore.multicriteria.e11.ruleKey=Web:PageWithoutTitleCheck
sonar.issue.ignore.multicriteria.e11.resourceKey=**/*.vue
sonar.issue.ignore.multicriteria.e12.ruleKey=Web:PageWithoutTitleCheck
sonar.issue.ignore.multicriteria.e12.resourceKey=**/*.blade.php
# Laravel's generated welcome/error templates contain browser/vendor CSS that intentionally repeats selectors.
sonar.issue.ignore.multicriteria.e13.ruleKey=css:S4666
sonar.issue.ignore.multicriteria.e13.resourceKey=resources/views/welcome.blade.php
sonar.issue.ignore.multicriteria.e14.ruleKey=css:S4662
sonar.issue.ignore.multicriteria.e14.resourceKey=resources/views/welcome.blade.php
# Helpdesk CSS deliberately layers later overrides over base component/select2 rules.
sonar.issue.ignore.multicriteria.e15.ruleKey=css:S4666
sonar.issue.ignore.multicriteria.e15.resourceKey=Modules/Helpdesk/Resources/assets/css/app.css
# Repeated literals in tests are fixtures/assertion vocabulary; constants would make the tests less readable.
sonar.issue.ignore.multicriteria.e16.ruleKey=php:S1192
sonar.issue.ignore.multicriteria.e16.resourceKey=**/Tests/**/*.php
sonar.issue.ignore.multicriteria.e17.ruleKey=php:S1192
sonar.issue.ignore.multicriteria.e17.resourceKey=tests/**/*.php
# Laravel policy method signatures are framework contracts even when a particular action is unconditional.
sonar.issue.ignore.multicriteria.e18.ruleKey=php:S1172
sonar.issue.ignore.multicriteria.e18.resourceKey=Modules/Helpdesk/Policies/TicketPolicy.php
sonar.issue.ignore.multicriteria.e19.ruleKey=css:S4666
sonar.issue.ignore.multicriteria.e19.resourceKey=resources/views/errors/*.blade.php
sonar.issue.ignore.multicriteria.e20.ruleKey=php:S117
sonar.issue.ignore.multicriteria.e20.resourceKey=Modules/Helpdesk/Policies/TicketPolicy.php