Merge pull request #57 from Apes-HDF/chore/54

chore: fix C.I and C.D
This commit is contained in:
Paul Andrieux 2026-05-04 15:22:58 +02:00 committed by GitHub
commit 92ae3443ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 2159 additions and 1768 deletions

View file

@ -4,3 +4,7 @@ CVE-2024-8176
CVE-2024-55549 CVE-2024-55549
CVE-2025-24855 CVE-2025-24855
CVE-2025-59530 CVE-2025-59530
CVE-2026-32280
CVE-2026-32281
CVE-2026-32283
CVE-2026-33810

View file

@ -5,7 +5,7 @@
# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact # https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
ARG PHP_VERSION=8.2 ARG PHP_VERSION=8.2
ARG CADDY_VERSION=2.10.2 ARG CADDY_VERSION=2.11.2
# yarn build # yarn build
FROM node AS yarn_build FROM node AS yarn_build
@ -15,7 +15,7 @@ RUN mkdir -p /usr/app/vendor/symfony
RUN curl -L https://github.com/symfony/ux-autocomplete/archive/v2.7.1.tar.gz -o ux-autocomplete.tar.gz RUN curl -L https://github.com/symfony/ux-autocomplete/archive/v2.7.1.tar.gz -o ux-autocomplete.tar.gz
RUN tar -xzvf ux-autocomplete.tar.gz --directory /usr/app/vendor/symfony RUN tar -xzvf ux-autocomplete.tar.gz --directory /usr/app/vendor/symfony
RUN mv /usr/app/vendor/symfony/ux-autocomplete-2.7.1 /usr/app/vendor/symfony/ux-autocomplete RUN mv /usr/app/vendor/symfony/ux-autocomplete-2.7.1 /usr/app/vendor/symfony/ux-autocomplete
COPY package.json yarn.lock . COPY package.json yarn.lock ./
RUN yarn install RUN yarn install
COPY . . COPY . .
RUN yarn build RUN yarn build
@ -183,32 +183,19 @@ RUN set -eux; \
RUN rm -f .env.local.php RUN rm -f .env.local.php
# Build Caddy with the Mercure and Vulcain modules # Build Caddy with the Mercure and Vulcain modules
FROM caddy:${CADDY_VERSION}-builder-alpine AS app_caddy_builder
# Temporary fix for https://github.com/dunglas/mercure/issues/770
# https://github.com/dunglas/symfony-docker/pull/407/files
# FROM caddy:2.9.1-builder-alpine AS app_caddy_builder
# RUN xcaddy build \
# --with github.com/dunglas/mercure \
# --with github.com/dunglas/mercure/caddy \
# --with github.com/dunglas/vulcain \
# --with github.com/dunglas/vulcain/caddy
RUN xcaddy build \
--with github.com/dunglas/mercure/caddy \
--with github.com/dunglas/vulcain/caddy
# Caddy image # Caddy image
FROM caddy:${CADDY_VERSION} AS app_caddy FROM caddy:${CADDY_VERSION} AS app_caddy
ARG TARGETARCH
WORKDIR /srv/app
ADD --chmod=500 "https://caddyserver.com/api/download?os=linux&arch=$TARGETARCH&p=github.com/dunglas/mercure/caddy&p=github.com/dunglas/vulcain/caddy" /usr/bin/caddy
COPY --from=app_php /srv/app/public public/
COPY docker/caddy/Caddyfile /etc/caddy/Caddyfile
# needed for security update until base image is updated # needed for security update until base image is updated
#RUN apk upgrade libcurl curl openssl openssl-dev libressl libcrypto1.1 libssl1.1 libcrypto3 libssl3 #RUN apk upgrade libcurl curl openssl openssl-dev libressl libcrypto1.1 libssl1.1 libcrypto3 libssl3
WORKDIR /srv/app WORKDIR /srv/app
COPY --from=app_caddy_builder /usr/bin/caddy /usr/bin/caddy
COPY --from=app_php /srv/app/public public/
COPY docker/caddy/Caddyfile /etc/caddy/Caddyfile

View file

@ -110,6 +110,9 @@
"php-http/discovery": true "php-http/discovery": true
}, },
"optimize-autoloader": true, "optimize-autoloader": true,
"platform": {
"php": "8.2.0"
},
"preferred-install": { "preferred-install": {
"*": "dist" "*": "dist"
}, },

3840
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -85,7 +85,8 @@ postgresql:
# ref: https://kubernetes.io/docs/user-guide/persistent-volumes # ref: https://kubernetes.io/docs/user-guide/persistent-volumes
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
image: image:
repository: bitnami/postgresql registry: docker.io
repository: bitnamilegacy/postgresql
tag: 14 tag: 14
primary: primary:
persistence: persistence:

View file

@ -103,8 +103,7 @@ final class ProductController extends AbstractController
} }
return $this->render('pages/product/show.html.twig', compact('slug', 'id', 'product')); return $this->render('pages/product/show.html.twig', compact('slug', 'id', 'product'));
} else {
throw new GoneHttpException();
} }
throw new GoneHttpException();
} }
} }

View file

@ -69,9 +69,8 @@ final class ServiceController extends AbstractController
} }
return $this->render('pages/product/new_service.html.twig', compact('form', 'product')); return $this->render('pages/product/new_service.html.twig', compact('form', 'product'));
} else {
throw new GoneHttpException();
} }
throw new GoneHttpException();
} }
#[Route([ #[Route([
@ -96,8 +95,7 @@ final class ServiceController extends AbstractController
} }
return $this->render('pages/product/edit_service.html.twig', compact('form', 'product')); return $this->render('pages/product/edit_service.html.twig', compact('form', 'product'));
} else {
throw new GoneHttpException();
} }
throw new GoneHttpException();
} }
} }

View file

@ -94,8 +94,7 @@ final class UserProductsController extends AbstractController
if ($this->configurationRepository->getServicesParameter()) { if ($this->configurationRepository->getServicesParameter()) {
return $this->render('pages/account/product/list.html.twig', compact('pagination', 'form')); return $this->render('pages/account/product/list.html.twig', compact('pagination', 'form'));
} else {
throw new GoneHttpException('there is no services');
} }
throw new GoneHttpException('there is no services');
} }
} }

View file

@ -80,16 +80,16 @@ final class PayumManager
'groupOfferId' => (string) $offer->getId(), 'groupOfferId' => (string) $offer->getId(),
], ],
]; ];
} else {
return [
// method must be set as the default value is not retrieved from the gateway configuration
'method' => PaymentMethod::CREDITCARD->value,
'metadata' => [
'platformId' => (string) $offer->getConfiguration()?->getId(),
'platformOfferId' => (string) $offer->getId(),
],
];
} }
return [
// method must be set as the default value is not retrieved from the gateway configuration
'method' => PaymentMethod::CREDITCARD->value,
'metadata' => [
'platformId' => (string) $offer->getConfiguration()?->getId(),
'platformOfferId' => (string) $offer->getId(),
],
];
} }
/** /**

View file

@ -12,6 +12,8 @@ use Doctrine\ORM\QueryBuilder;
use Gedmo\Sortable\Entity\Repository\SortableRepository; use Gedmo\Sortable\Entity\Repository\SortableRepository;
/** /**
* @extends SortableRepository<MenuItem>
*
* @method MenuItem|null find($id, $lockMode = null, $lockVersion = null) * @method MenuItem|null find($id, $lockMode = null, $lockVersion = null)
* @method MenuItem|null findOneBy(array $criteria, array $orderBy = null) * @method MenuItem|null findOneBy(array $criteria, array $orderBy = null)
* @method MenuItem[] findAll() * @method MenuItem[] findAll()

View file

@ -15,7 +15,7 @@ use App\Repository\GroupRepository;
final class GroupGetStatsProvider implements ProviderInterface final class GroupGetStatsProvider implements ProviderInterface
{ {
public function __construct( public function __construct(
readonly private GroupRepository $groupRepository, private readonly GroupRepository $groupRepository,
) { ) {
} }

View file

@ -16,8 +16,8 @@ use App\Repository\UserRepository;
class GroupsProvider implements ProviderInterface class GroupsProvider implements ProviderInterface
{ {
public function __construct( public function __construct(
readonly private GroupRepository $groupRepository, private readonly GroupRepository $groupRepository,
readonly private UserRepository $userRepository, private readonly UserRepository $userRepository,
) { ) {
} }

View file

@ -6,14 +6,14 @@ namespace App\Tests\Unit\Notifier;
use App\Entity\User; use App\Entity\User;
use App\Notifier\SmsNotifier; use App\Notifier\SmsNotifier;
use Monolog\Test\TestCase; use Monolog\Test\MonologTestCase;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Symfony\Component\HttpClient\Response\MockResponse; use Symfony\Component\HttpClient\Response\MockResponse;
use Symfony\Component\Notifier\Exception\TransportException; use Symfony\Component\Notifier\Exception\TransportException;
use Symfony\Component\Notifier\TexterInterface; use Symfony\Component\Notifier\TexterInterface;
final class SmsNotifierTest extends TestCase final class SmsNotifierTest extends MonologTestCase
{ {
public function testNotify(): void public function testNotify(): void
{ {