feat: deploy
Some checks failed
Build and Deploy / deploy (push) Failing after 21s

This commit is contained in:
ext.jeremy.guillot@maxicoffee.domains
2026-02-08 21:35:13 +01:00
parent 21a87a3eb3
commit fb6a61d5b6
2 changed files with 55 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
name: Build and Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
container:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Docker CLI
run: |
apt-get update && apt-get install -y docker.io
- name: Build production image
run: |
docker build \
--target frankenphp_prod \
-t mangarr:latest \
-t mangarr:${{ gitea.sha }} \
.
- name: Deploy containers
run: |
# Redemarrer le container principal avec la nouvelle image
docker stop mangarr mangarr-worker 2>/dev/null || true
docker rm mangarr mangarr-worker 2>/dev/null || true
# Portainer va recréer les containers via la stack
echo "Image mangarr:latest buildée avec succès"
echo "Redéployez la stack via : deploy-stacks.sh mangarr"
- name: Run migrations
run: |
# Attendre que le container soit prêt
sleep 10
docker exec mangarr php bin/console doctrine:migrations:migrate --no-interaction 2>/dev/null || echo "Migrations: container pas encore prêt, lancer manuellement"
docker exec mangarr php bin/console cache:clear --env=prod 2>/dev/null || true

View File

@@ -85,6 +85,15 @@ COPY --link frankenphp/conf.d/app.dev.ini $PHP_INI_DIR/conf.d/
CMD [ "frankenphp", "run", "--config", "/etc/caddy/Caddyfile", "--watch" ] CMD [ "frankenphp", "run", "--config", "/etc/caddy/Caddyfile", "--watch" ]
# Stage Node.js pour compiler les assets (Webpack Encore)
FROM node:22-alpine AS node_build
WORKDIR /app
COPY --link package.json package-lock.json ./
RUN npm ci
COPY --link assets ./assets
COPY --link webpack.config.js ./
RUN npm run build
# Prod FrankenPHP image # Prod FrankenPHP image
FROM frankenphp_base AS frankenphp_prod FROM frankenphp_base AS frankenphp_prod
@@ -105,6 +114,9 @@ RUN set -eux; \
COPY --link . ./ COPY --link . ./
RUN rm -Rf frankenphp/ RUN rm -Rf frankenphp/
# Copier les assets compilés depuis le stage Node.js
COPY --from=node_build /app/public/build ./public/build
RUN set -eux; \ RUN set -eux; \
mkdir -p var/cache var/log; \ mkdir -p var/cache var/log; \
composer dump-autoload --classmap-authoritative --no-dev; \ composer dump-autoload --classmap-authoritative --no-dev; \