CI
Das integrieren des CI-Prozess an sich ist sehr simpel. Alles, was dafür zusätzlich getan werden muss, ist folgende datei in das Projekt mitaufzunehmen
include:
- project: "Leoparden/shopware-plugin-ci"
file: "/.gitlab-ci.yml"
variables:
PLUGIN_NAME: "%pluginname%"
PLUGIN_UPPER: "%pluginname_upper%"
DISABLE_COVERAGE: 1
ci:
script:
- !reference [ .setup, script ]
# - echo Add Steps after initial testing is done
Lokales Testen der CI
Um den Deployment-Prozess lokal zu testen, gibt es die möglichkeit via Docker das FroSh-Dev-Image lokal zu verarbeiten.
Dafür wird zum einen eine DotEnv Datei sowie ein kleines Script benötigt:
PLUGIN_NAME="%pluginname%"
PLUGIN_UPPER="%pluginname_upper%"
DISABLE_COVERAGE=1
DISABLE_PHP_TEST=0
DISABLE_ADMINISTRATION_TEST=0
DISABLE_STOREFRONT_TEST=0
DISABLE_DOCS=0
DISABLE_PUBLISH=1
DISABLE_CS=0
SRC_DIR='src'
ADMIN_BUNDLE_PATH="Resources/app/administration"
STOREFRONT_BUNDLE_PATH="Resources/app/storefront"
PLUGIN_ADMINISTRATION_PATH="${SRC_DIR}/${ADMIN_BUNDLE_PATH}"
PLUGIN_STOREFRONT_PATH="${SRC_DIR}/${STOREFRONT_BUNDLE_PATH}"
SHOPWARE_PATH="/opt/shopware"
ADMIN_PATH="${SHOPWARE_PATH}/${SRC_DIR}/Administration/${ADMIN_BUNDLE_PATH}"
STOREFRONT_PATH="${SHOPWARE_PATH}/${SRC_DIR}/Storefront/${STOREFRONT_BUNDLE_PATH}"
WRITERSIDE_INSTANCE="docs/${PLUGIN_NAME}"
WRITERSIDE_DOCS_ARTIFACT="webHelp${PLUGIN_UPPER}2-all.zip"
GITLAB_REGISTRY_URL="$CI_SERVER_PROTOCOL://$CI_SERVER_HOST:$CI_SERVER_PORT/api/v4/projects/$CI_PROJECT_ID/packages/composer?job_token=$CI_JOB_TOKEN"
BASEPLUGIN_PATH="${SHOPWARE_PATH}/vendor/leoparden/baseplugin"
XDEBUG_MODE="coverage"
REGISTRY_TOKEN="%registry_token%"
REGISTRY_USER="%registry_user%"
Variablen:
Der Registry Token und Registry User sind in wenn in der Shopware Gruppe hochgeladen wird automatisch definiert, hier muss dann aber ein eigener Token definiert werden zur authentifizierung des Docker-Image zum Gitlab-Server
Pluginname und dessen hochgestellte Variante muss definiert werden, da sonst ein erfolgreicher Build nicht möglich ist. Hierbei einfach den Namen des Plugin selbst verwenden.
Das Script zur ausführung des Docker-Image
#!/usr/bin/env bash
CWD=$(realpath "$1")
NAME=$(basename $CWD)
curl https://gitlab.com/Leoparden/shopware-plugin-ci/-/raw/main/leoparden_plugin_ci -o "${CWD}/leoparden_plugin_ci"
chmod +x "${CWD}/leoparden_plugin_ci"
CI_PATH=$(realpath "${CWD}/leoparden_plugin_ci")
docker run --rm -it \
-v "${CWD}:/plugins/${NAME}" \
-v "${CI_PATH}:/usr/bin/leoparden_plugin_ci" \
ghcr.io/friendsofshopware/platform-plugin-dev:v6.5.8 \
sh -c "leoparden_plugin_ci /plugins/${NAME}"
rm "${CWD}/leoparden_plugin_ci"
Zur einfachen Ausführung dessen am besten in /usr/bin/run_docker (oder anderer, bevorzugter Name) kopieren und per
chmod+x /usr/bin/run_docker
ausführbar machen
Die Ausführung des Scripts erfolgt über den Befehl
run_docker "$(realpath .)"
Log-Output
Eine beispielhafte Ausgabe des Scripts:
Running with gitlab-runner 16.6.0~beta.105.gd2263193 (d2263193)
on blue-1.saas-linux-small.runners-manager.gitlab.com/default j1aLDqxS, system ID: s_ccdc2f364be8
feature flags: FF_USE_IMPROVED_URL_MASKING:true
section_start:1708702537:prepare_executor
Preparing the "docker+machine" executor
Using Docker executor with image ghcr.io/friendsofshopware/platform-plugin-dev:v6.5.8 ...
Pulling docker image ghcr.io/friendsofshopware/platform-plugin-dev:v6.5.8 ...
Using docker image sha256:e9bd80cb4b71dcb2951c126db7ad676bc9d13d3413323d99876278eca3125ae8 for ghcr.io/friendsofshopware/platform-plugin-dev:v6.5.8 with digest ghcr.io/friendsofshopware/platform-plugin-dev@sha256:40609213403d4afd6e4f2a7363b3439a668f6a3e29d0a91c4a7af960aa2696d4 ...
section_end:1708702561:prepare_executor
section_start:1708702561:prepare_script
Preparing environment
Running on runner-j1aldqxs-project-53722645-concurrent-0 via runner-j1aldqxs-s-l-s-amd64-1708702501-aeca4001...
section_end:1708702568:prepare_script
section_start:1708702568:get_sources
Getting source from Git repository
Fetching changes with git depth set to 20...
Initialized empty Git repository in /builds/DieLeoparden/shopware/your-plugin-name/.git/
Created fresh repository.
Checking out 0cd7dc15 as detached HEAD (ref is master)...
Skipping Git submodules setup
$ git remote set-url origin "${CI_REPOSITORY_URL}"
section_end:1708702570:get_sources
section_start:1708702570:step_script
Executing "step_script" stage of the job script
Using docker image sha256:e9bd80cb4b71dcb2951c126db7ad676bc9d13d3413323d99876278eca3125ae8 for ghcr.io/friendsofshopware/platform-plugin-dev:v6.5.8 with digest ghcr.io/friendsofshopware/platform-plugin-dev@sha256:40609213403d4afd6e4f2a7363b3439a668f6a3e29d0a91c4a7af960aa2696d4 ...
$ curl https://gitlab.com/Leoparden/shopware-plugin-ci/-/raw/main/leoparden_plugin_ci -o /usr/bin/leoparden_plugin_ci
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 12385 100 12385 0 0 160k 0 --:--:-- --:--:-- --:--:-- 161k
$ chmod +x /usr/bin/leoparden_plugin_ci
$ leoparden_plugin_ci ${PLUGIN_DIR}
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 475 100 475 0 0 7567 0 --:--:-- --:--:-- --:--:-- 7661
Starting mysql server
Started mysql server
php coverage analysis disabled
./composer.json has been updated
Running composer update leoparden/baseplugin
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking leoparden/baseplugin (1.1.16)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Downloading leoparden/baseplugin (1.1.16)
- Installing leoparden/baseplugin (1.1.16): Extracting archive
Generating autoload files
150 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
phpstan/extension-installer: Extensions installed
[bamarni-bin] Checking namespace vendor-bin/cs-fixer
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files
24 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found
[bamarni-bin] Checking namespace vendor-bin/rector
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files
2 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found
[bamarni-bin] Checking namespace vendor-bin/roave-backward-compatibility-check
Gathering patches for root package.
Removing package roave/backward-compatibility-check so that it can be re-installed and re-patched.
- Removing roave/backward-compatibility-check (8.6.0)
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
- Upgrading composer/ca-bundle (1.4.0 => 1.4.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 1 update, 0 removals
- Downloading composer/ca-bundle (1.4.1)
- Downloading roave/backward-compatibility-check (8.6.0)
Gathering patches for root package.
Gathering patches for dependencies. This might take a minute.
- Upgrading composer/ca-bundle (1.4.0 => 1.4.1): Extracting archive
- Installing roave/backward-compatibility-check (8.6.0): Extracting archive
- Applying patches for roave/backward-compatibility-check
patches/skip-experimental.patch (Skip experimental annotations)
Could not apply patch! Skipping. The error was: Cannot apply patch patches/skip-experimental.patch
patches/add-exclude-errors.patch (Add exclude errors)
Could not apply patch! Skipping. The error was: Cannot apply patch patches/add-exclude-errors.patch
patches/add-exclude-files.patch (Add exclude files)
Could not apply patch! Skipping. The error was: Cannot apply patch patches/add-exclude-files.patch
Generating autoload files
26 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found
No security vulnerability advisories found
leoparden/baseplugin
BasePlugin
Shopware Plugin Lifecycle Service
=================================
Install 1 plugin(s):
* Base Plugin for the Plugins of the Leoparden GmbH (v1.1.16)
15:36:26 INFO [messenger] Sending message Shopware\Core\Framework\DataAbstractionLayer\Indexing\MessageQueue\IterateEntityIndexerMessage with async sender using Symfony\Component\Messenger\Bridge\Doctrine\Transport\DoctrineTransport
[
"class" => "Shopware\Core\Framework\DataAbstractionLayer\Indexing\MessageQueue\IterateEntityIndexerMessage",
"alias" => "async",
"sender" => "Symfony\Component\Messenger\Bridge\Doctrine\Transport\DoctrineTransport"
]
15:36:27 INFO [php] User Deprecated: Since symfony/serializer 6.4: Passing a "Doctrine\Common\Annotations\PsrCachedReader" instance as argument 1 to "Symfony\Component\Serializer\Mapping\Loader\AttributeLoader::__construct()" is deprecated, pass null or omit the parameter instead.
[
"exception" => ErrorException {
#message: "User Deprecated: Since symfony/serializer 6.4: Passing a "Doctrine\Common\Annotations\PsrCachedReader" instance as argument 1 to "Symfony\Component\Serializer\Mapping\Loader\AttributeLoader::__construct()" is deprecated, pass null or omit the parameter instead."
#code: 0
#file: "./vendor/symfony/serializer/Mapping/Loader/AttributeLoader.php"
#line: 51
#severity: E_USER_DEPRECATED
trace: {
./vendor/symfony/serializer/Mapping/Loader/AttributeLoader.php:51 { …}
./var/cache/dev_h9be111a953c2ba8bd4f4d9ff66add508/ContainerKcAXSR4/Shopware_Core_KernelDevDebugContainer.php:33730 {
ContainerKcAXSR4\Shopware_Core_KernelDevDebugContainer::getSerializer_Mapping_ClassMetadataFactoryService($container)
› {
› return $container->privates['serializer.mapping.class_metadata_factory'] = new \Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory(new \Symfony\Component\Serializer\Mapping\Loader\LoaderChain([new \Symfony\Component\Serializer\Mapping\Loader\AttributeLoader(($container->privates['annotations.cached_reader'] ?? self::getAnnotations_CachedReaderService($container)))]));
› }
}
./var/cache/dev_h9be111a953c2ba8bd4f4d9ff66add508/ContainerKcAXSR4/Shopware_Core_KernelDevDebugContainer.php:33704 { …}
./var/cache/dev_h9be111a953c2ba8bd4f4d9ff66add508/ContainerKcAXSR4/Shopware_Core_KernelDevDebugContainer.php:6689 { …}
./var/cache/dev_h9be111a953c2ba8bd4f4d9ff66add508/ContainerKcAXSR4/Shopware_Core_KernelDevDebugContainer.php:17161 { …}
./var/cache/dev_h9be111a953c2ba8bd4f4d9ff66add508/ContainerKcAXSR4/Shopware_Core_KernelDevDebugContainer.php:27349 { …}
./var/cache/dev_h9be111a953c2ba8bd4f4d9ff66add508/ContainerKcAXSR4/Shopware_Core_KernelDevDebugContainer.php:27403 { …}
./var/cache/dev_h9be111a953c2ba8bd4f4d9ff66add508/ContainerKcAXSR4/Shopware_Core_KernelDevDebugContainer.php:11413 { …}
./vendor/symfony/event-dispatcher/EventDispatcher.php:235 { …}
./vendor/symfony/event-dispatcher/EventDispatcher.php:70 { …}
./src/Core/Content/Flow/Dispatching/FlowDispatcher.php:98 { …}
./src/Core/Framework/Webhook/WebhookDispatcher.php:120 { …}
./src/Core/Framework/Event/NestedEventDispatcher.php:64 { …}
./vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:276 { …}
./vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:133 { …}
./src/Core/Framework/Plugin/PluginLifecycleService.php:382 { …}
./src/Core/Framework/Plugin/Command/Lifecycle/PluginInstallCommand.php:76 { …}
./vendor/symfony/console/Command/Command.php:326 { …}
./vendor/symfony/console/Application.php:1096 { …}
./vendor/symfony/framework-bundle/Console/Application.php:126 { …}
./vendor/symfony/console/Application.php:324 { …}
./vendor/symfony/framework-bundle/Console/Application.php:80 { …}
./vendor/symfony/console/Application.php:175 { …}
./vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php:49 { …}
./vendor/autoload_runtime.php:29 { …}
./bin/shopware:18 { …}
}
}
]
Plugin "BasePlugin" has been installed and activated successfully.
[OK] Installed 1 plugin(s).
! [NOTE] Clearing Cache
[OK] Cache cleared
Shopware Plugin Lifecycle Service
=================================
Install 1 plugin(s):
* Asynchrones Listing (v1.1.11)
15:36:29 INFO [messenger] Sending message Shopware\Core\Framework\DataAbstractionLayer\Indexing\MessageQueue\IterateEntityIndexerMessage with async sender using Symfony\Component\Messenger\Bridge\Doctrine\Transport\DoctrineTransport
[
"class" => "Shopware\Core\Framework\DataAbstractionLayer\Indexing\MessageQueue\IterateEntityIndexerMessage",
"alias" => "async",
"sender" => "Symfony\Component\Messenger\Bridge\Doctrine\Transport\DoctrineTransport"
]
15:36:32 INFO [php] User Deprecated: Since symfony/serializer 6.4: Passing a "Doctrine\Common\Annotations\PsrCachedReader" instance as argument 1 to "Symfony\Component\Serializer\Mapping\Loader\AttributeLoader::__construct()" is deprecated, pass null or omit the parameter instead.
[
"exception" => ErrorException {
#message: "User Deprecated: Since symfony/serializer 6.4: Passing a "Doctrine\Common\Annotations\PsrCachedReader" instance as argument 1 to "Symfony\Component\Serializer\Mapping\Loader\AttributeLoader::__construct()" is deprecated, pass null or omit the parameter instead."
#code: 0
#file: "./vendor/symfony/serializer/Mapping/Loader/AttributeLoader.php"
#line: 51
#severity: E_USER_DEPRECATED
trace: {
./vendor/symfony/serializer/Mapping/Loader/AttributeLoader.php:51 { …}
./var/cache/dev_ha3a9bac1b9881d232f7fb81cf3533492/ContainerDbWrb8N/Shopware_Core_KernelDevDebugContainer.php:33763 {
ContainerDbWrb8N\Shopware_Core_KernelDevDebugContainer::getSerializer_Mapping_ClassMetadataFactoryService($container)
› {
› return $container->privates['serializer.mapping.class_metadata_factory'] = new \Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory(new \Symfony\Component\Serializer\Mapping\Loader\LoaderChain([new \Symfony\Component\Serializer\Mapping\Loader\AttributeLoader(($container->privates['annotations.cached_reader'] ?? self::getAnnotations_CachedReaderService($container)))]));
› }
}
./var/cache/dev_ha3a9bac1b9881d232f7fb81cf3533492/ContainerDbWrb8N/Shopware_Core_KernelDevDebugContainer.php:33737 { …}
./var/cache/dev_ha3a9bac1b9881d232f7fb81cf3533492/ContainerDbWrb8N/Shopware_Core_KernelDevDebugContainer.php:6702 { …}
./var/cache/dev_ha3a9bac1b9881d232f7fb81cf3533492/ContainerDbWrb8N/Shopware_Core_KernelDevDebugContainer.php:17194 { …}
./var/cache/dev_ha3a9bac1b9881d232f7fb81cf3533492/ContainerDbWrb8N/Shopware_Core_KernelDevDebugContainer.php:27382 { …}
./var/cache/dev_ha3a9bac1b9881d232f7fb81cf3533492/ContainerDbWrb8N/Shopware_Core_KernelDevDebugContainer.php:27436 { …}
./var/cache/dev_ha3a9bac1b9881d232f7fb81cf3533492/ContainerDbWrb8N/Shopware_Core_KernelDevDebugContainer.php:11446 { …}
./vendor/symfony/event-dispatcher/EventDispatcher.php:235 { …}
./vendor/symfony/event-dispatcher/EventDispatcher.php:70 { …}
./src/Core/Content/Flow/Dispatching/FlowDispatcher.php:98 { …}
./src/Core/Framework/Webhook/WebhookDispatcher.php:120 { …}
./src/Core/Framework/Event/NestedEventDispatcher.php:64 { …}
./vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:276 { …}
./vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:133 { …}
./src/Core/Framework/Plugin/PluginLifecycleService.php:382 { …}
./src/Core/Framework/Plugin/Command/Lifecycle/PluginInstallCommand.php:76 { …}
./vendor/symfony/console/Command/Command.php:326 { …}
./vendor/symfony/console/Application.php:1096 { …}
./vendor/symfony/framework-bundle/Console/Application.php:126 { …}
./vendor/symfony/console/Application.php:324 { …}
./vendor/symfony/framework-bundle/Console/Application.php:80 { …}
./vendor/symfony/console/Application.php:175 { …}
./vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php:49 { …}
./vendor/autoload_runtime.php:29 { …}
./bin/shopware:18 { …}
}
}
]
Plugin "AjaxListing" has been installed and activated successfully.
[OK] Installed 1 plugin(s).
! [NOTE] Clearing Cache
[OK] Cache cleared
Gitlab Pipeline for your-plugin-name
running php-cs-fixer
Loaded config default from "/plugins/AjaxListing/.php-cs-fixer.php".
Fixed 0 of 3 files in 0.022 seconds, 14.000 MB memory used
running phpunit tests
Shopware Plugin Service
=======================
[OK] Plugin list refreshed
Shopware Plugin Service
=======================
------------- --------------------------------------------------- --------- ----------------- -------------------- ----------- -------- -------------
Plugin Label Version Upgrade version Author Installed Active Upgradeable
------------- --------------------------------------------------- --------- ----------------- -------------------- ----------- -------- -------------
AjaxListing Asynchrones Listing 1.1.11 Die Leoparden GmbH Yes Yes No
BasePlugin Base Plugin for the Plugins of the Leoparden GmbH 1.1.16 Die Leoparden GmbH Yes Yes No
------------- --------------------------------------------------- --------- ----------------- -------------------- ----------- -------- -------------
2 plugins, 2 installed, 2 active , 0 upgradeable
Shopware Plugin Lifecycle Service
=================================
Install 1 plugin(s):
* Asynchrones Listing (v1.1.11)
Plugin "AjaxListing" has been installed and activated successfully.
[OK] Installed 1 plugin(s).
! [NOTE] You may want to clear the cache after activating plugin(s). To do so
! run the cache:clear command
PHPUnit 9.6.16 by Sebastian Bergmann and contributors.
Warning: No code coverage driver available
. 1 / 1 (100%)
Time: 00:00.025, Memory: 218.00 MB
OK (1 test, 3 assertions)
Remaining direct deprecation notices (2)
Remaining indirect deprecation notices (61)
Other deprecation notices (33)
PHP Coverage Test skipped
Installing dependencies in /opt/shopware/vendor/leoparden/baseplugin/src/Resources/app/storefront
added 593 packages, and audited 594 packages in 12s
62 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Installing dependencies in /opt/shopware/vendor/leoparden/baseplugin/src/Resources/app/administration
added 588 packages, and audited 589 packages in 29s
66 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Run JS Tests in Storefront
Installing dependencies in /opt/shopware/src/Storefront/Resources/app/storefront and /plugins/AjaxListing/src/Resources/app/storefront
added 1762 packages, and audited 1763 packages in 55s
127 packages are looking for funding
run `npm fund` for details
54 vulnerabilities (30 moderate, 18 high, 6 critical)
To address issues that do not require attention, run:
npm audit fix
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
added 714 packages, and audited 716 packages in 6s
found 0 vulnerabilities
running test in /plugins/AjaxListing/src/Resources/app/storefront
> test
> jest --config jest.config.js --ci
PASS test/AjaxListingPlugin.spec.ts (7.651 s)
PASS test/Main.spec.ts
-------------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 100 | 100 |
src | 100 | 100 | 100 | 100 |
main.ts | 100 | 100 | 100 | 100 |
src/plugin | 100 | 100 | 100 | 100 |
your-plugin-name.plugin.ts | 100 | 100 | 100 | 100 |
-------------------------|---------|----------|---------|---------|-------------------
Test Suites: 2 passed, 2 total
Tests: 3 passed, 3 total
Snapshots: 0 total
Time: 8.609 s
Ran all test suites.
Run JS Tests in Administration
Installing dependencies in /opt/shopware/src/Administration/Resources/app/administration and /plugins/AjaxListing/src/Resources/app/administration }
> administration@1.0.0 preinstall
> node src/scripts/validate-package-json/index.mjs
> administration@1.0.0 postinstall
> patch-package
patch-package 6.5.1
Applying patches...
babel-plugin-require-context-hook@1.0.0 ✔
eslint@8.36.0 ✔
eslint-plugin-vue@9.14.1 ✔
inter-ui@3.19.3 ✔
vue-eslint-parser@9.3.1 ✔
added 2625 packages, and audited 2631 packages in 2m
208 packages are looking for funding
run `npm fund` for details
86 vulnerabilities (1 low, 50 moderate, 26 high, 9 critical)
To address issues that do not require attention, run:
npm audit fix
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
changed 1 package, and audited 2631 packages in 7s
208 packages are looking for funding
run `npm fund` for details
86 vulnerabilities (1 low, 50 moderate, 26 high, 9 critical)
To address issues that do not require attention, run:
npm audit fix
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
added 888 packages, and audited 890 packages in 6s
found 0 vulnerabilities
running test in /plugins/AjaxListing/src/Resources/app/administration
> test
> jest --config jest.config.js --ci
PASS test/AjaxListingCmsElementConfig.spec.ts (6.561 s)
PASS test/AjaxListingCmsElementComponent.spec.ts
PASS test/AjaxListingCmsElementPreview.spec.ts
PASS test/Main.spec.ts
---------------------------------------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
---------------------------------------------------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 100 | 100 |
src | 100 | 100 | 100 | 100 |
main.ts | 100 | 100 | 100 | 100 |
src/module/sw-cms/elements/your-plugin-name/component | 100 | 100 | 100 | 100 |
index.ts | 100 | 100 | 100 | 100 |
src/module/sw-cms/elements/your-plugin-name/config | 100 | 100 | 100 | 100 |
index.ts | 100 | 100 | 100 | 100 |
src/module/sw-cms/elements/your-plugin-name/preview | 100 | 100 | 100 | 100 |
index.ts | 100 | 100 | 100 | 100 |
---------------------------------------------------|---------|----------|---------|---------|-------------------
Test Suites: 4 passed, 4 total
Tests: 4 passed, 4 total
Snapshots: 0 total
Time: 8.88 s
Ran all test suites.
{"message":"201 Created"}201
CI Successfully terminated
adding: src/ (stored 0%)
adding: src/AjaxListing.php (deflated 26%)
adding: src/Resources/ (stored 0%)
adding: src/Resources/views/ (stored 0%)
adding: src/Resources/views/storefront/ (stored 0%)
adding: src/Resources/views/storefront/element/ (stored 0%)
adding: src/Resources/views/storefront/element/cms-element-your-plugin-name.html.twig (deflated 67%)
adding: src/Resources/public/ (stored 0%)
adding: src/Resources/public/static/ (stored 0%)
adding: src/Resources/public/static/your-plugin-name-preview.png (deflated 5%)
adding: src/Resources/public/static/js/ (stored 0%)
adding: src/Resources/public/static/js/your-plugin-name.js.LICENSE.txt (stored 0%)
adding: src/Resources/public/administration/ (stored 0%)
adding: src/Resources/public/administration/js/ (stored 0%)
adding: src/Resources/public/administration/js/your-plugin-name.js (deflated 60%)
adding: src/Resources/public/administration/js/your-plugin-name.js.map (deflated 71%)
adding: src/Resources/public/administration/css/ (stored 0%)
adding: src/Resources/public/administration/css/your-plugin-name.css (deflated 29%)
adding: src/Resources/config/ (stored 0%)
adding: src/Resources/config/plugin.png (deflated 4%)
adding: src/Resources/app/ (stored 0%)
adding: src/Resources/app/storefront/ (stored 0%)
adding: src/Resources/app/storefront/dist/ (stored 0%)
adding: src/Resources/app/storefront/dist/storefront/ (stored 0%)
adding: src/Resources/app/storefront/dist/storefront/js/ (stored 0%)
adding: src/Resources/app/storefront/dist/storefront/js/your-plugin-name.js (deflated 64%)
adding: src/Resources/app/administration/ (stored 0%)
adding: src/Resources/app/administration/static/ (stored 0%)
adding: src/Resources/app/administration/static/your-plugin-name-preview.png (deflated 5%)
adding: readme.md (deflated 9%)
adding: composer.json (deflated 55%)
/usr/bin/leoparden_plugin_ci: line 245: cd: /plugins/AjaxListing/coverage: No such file or directory
adding: junit.xml (deflated 64%)
adding: testdox.txt (deflated 29%)
adding: teamcity.txt (deflated 73%)
adding: testdox.html (deflated 65%)
adding: clover.xml (deflated 79%)
adding: lcov.info (deflated 58%)
adding: lcov-report/ (stored 0%)
adding: lcov-report/prettify.js (deflated 60%)
adding: lcov-report/block-navigation.js (deflated 67%)
adding: lcov-report/index.html (deflated 76%)
adding: lcov-report/src/ (stored 0%)
adding: lcov-report/src/main.ts.html (deflated 72%)
adding: lcov-report/src/plugin/ (stored 0%)
adding: lcov-report/src/plugin/your-plugin-name.plugin.ts.html (deflated 82%)
adding: lcov-report/src/plugin/index.html (deflated 73%)
adding: lcov-report/src/index.html (deflated 73%)
adding: lcov-report/prettify.css (deflated 55%)
adding: lcov-report/sorter.js (deflated 73%)
adding: lcov-report/base.css (deflated 69%)
adding: lcov-report/sort-arrow-sprite.png (stored 0%)
adding: lcov-report/favicon.png (stored 0%)
adding: report.xml (deflated 65%)
adding: clover.xml (deflated 83%)
adding: lcov.info (deflated 67%)
adding: lcov-report/ (stored 0%)
adding: lcov-report/prettify.js (deflated 60%)
adding: lcov-report/block-navigation.js (deflated 67%)
adding: lcov-report/index.html (deflated 81%)
adding: lcov-report/src/ (stored 0%)
adding: lcov-report/src/main.ts.html (deflated 77%)
adding: lcov-report/src/index.html (deflated 73%)
adding: lcov-report/src/module/ (stored 0%)
adding: lcov-report/src/module/sw-cms/ (stored 0%)
adding: lcov-report/src/module/sw-cms/elements/ (stored 0%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/ (stored 0%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/component/ (stored 0%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/component/index.html (deflated 73%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/component/index.ts.html (deflated 75%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/config/ (stored 0%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/config/index.html (deflated 73%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/config/index.ts.html (deflated 75%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/preview/ (stored 0%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/preview/index.html (deflated 74%)
adding: lcov-report/src/module/sw-cms/elements/your-plugin-name/preview/index.ts.html (deflated 72%)
adding: lcov-report/prettify.css (deflated 55%)
adding: lcov-report/sorter.js (deflated 73%)
adding: lcov-report/base.css (deflated 69%)
adding: lcov-report/sort-arrow-sprite.png (stored 0%)
adding: lcov-report/favicon.png (stored 0%)
adding: report.xml (deflated 77%)
section_end:1708702853:step_script
section_start:1708702853:upload_artifacts_on_success
Uploading artifacts for successful job
Uploading artifacts...
*.zip: found 6 matching artifact files and directories
WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/6244894428/artifacts?artifact_format=zip&artifact_type=archive&expire_in=1+week new-url=https://gitlab.com
WARNING: Retrying... context=artifacts-uploader error=request redirected
Uploading artifacts as "archive" to coordinator... 201 Created id=6244894428 responseStatus=201 Created token=glcbt-65
section_end:1708702855:upload_artifacts_on_success
section_start:1708702855:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1708702856:cleanup_file_variables
Job succeeded
Last modified: 29 February 2024