CI : create specific build for preprod

This commit is contained in:
isUnknown 2025-10-08 14:34:22 +02:00
parent d9066defce
commit c6d973e126
4 changed files with 60 additions and 29 deletions

View file

@ -11,7 +11,7 @@ build:
script: script:
- apk add --no-cache nodejs npm - apk add --no-cache nodejs npm
- npm install - npm install
- npm run build - if [ "$CI_COMMIT_REF_NAME" = "dev" ]; then npm run build:preprod; else npm run build; fi
- cd dist - cd dist
- composer install --no-dev --optimize-autoloader --ignore-platform-req=ext-gd - composer install --no-dev --optimize-autoloader --ignore-platform-req=ext-gd
- cd .. - cd ..
@ -48,3 +48,29 @@ deploy:
rsync_deploy vendor/ "$PROD_PATH/vendor/" rsync_deploy vendor/ "$PROD_PATH/vendor/"
rsync_deploy kirby/ "$PROD_PATH/kirby/" rsync_deploy kirby/ "$PROD_PATH/kirby/"
rsync_deploy assets/ "$PROD_PATH/assets/" "--exclude 'tiles/'" rsync_deploy assets/ "$PROD_PATH/assets/" "--exclude 'tiles/'"
deploy_dev:
stage: deploy
image: node:latest
only:
- dev
before_script:
- apt-get update -qq && apt-get install -y rsync sshpass
script:
- cd dist
- |
rsync_deploy() {
local src=$1
local dst=$2
local exclude=$3
cmd="sshpass -p \"$PASSWORD\" rsync -az --delete -O"
[[ -n $exclude ]] && cmd="$cmd $exclude"
cmd="$cmd -e 'ssh -p 2244 -o StrictHostKeyChecking=no' $src $USERNAME@$HOST:$dst"
echo "$cmd"
eval $cmd
}
rsync_deploy site/ "$PREPROD_PATH/site/" "--exclude 'accounts/' --exclude 'cache/' --exclude 'sessions/'"
rsync_deploy vendor/ "$PREPROD_PATH/vendor/"
rsync_deploy kirby/ "$PREPROD_PATH/kirby/"
rsync_deploy assets/ "$PREPROD_PATH/assets/" "--exclude 'tiles/'"

View file

@ -6,6 +6,7 @@
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build", "build": "vite build",
"build:preprod": "vite build --mode=staging",
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {

View file

@ -3,7 +3,7 @@
$regenerateSteps = require_once(__DIR__ . '/hooks/page-update--regenerate-project-steps-cache.php'); $regenerateSteps = require_once(__DIR__ . '/hooks/page-update--regenerate-project-steps-cache.php');
return [ return [
'debug' => Dir::exists('assets/dist') ? false: true, 'debug' => $_SERVER['HTTP_HOST'] !== 'designtopack.groupe-pochet.fr',
'cache' => [ 'cache' => [
'pages' => [ 'pages' => [
'active' => true 'active' => true

View file

@ -1,33 +1,37 @@
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue';
export default defineConfig({ export default defineConfig(({ mode }) => {
plugins: [vue()], return {
base: '/', plugins: [vue()],
build: { base: '/',
outDir: 'dist', build: {
rollupOptions: { outDir: 'dist',
output: { rollupOptions: {
entryFileNames: 'assets/dist/[name].js', output: {
assetFileNames: 'assets/dist/[name].[ext]', entryFileNames: 'assets/dist/[name].js',
assetFileNames: 'assets/dist/[name].[ext]',
},
},
sourcemap: mode === 'staging',
minify: mode === 'production' ? 'esbuild' : false,
},
server: {
watch: {
ignored: [
'**/node_modules/**',
'**/.git/**',
'**/.cache/**',
'**/.vite/**',
'**/dist/**',
'**/*.log',
'**/.idea/**',
'**/.vscode/**',
'**/public/assets/**',
'**/local/**',
'/public/**',
],
}, },
}, },
}, };
server: {
watch: {
ignored: [
'**/node_modules/**',
'**/.git/**',
'**/.cache/**',
'**/.vite/**',
'**/dist/**',
'**/*.log',
'**/.idea/**',
'**/.vscode/**',
'**/public/assets/**',
'**/local/**',
'/public/**',
],
},
},
}); });