Deploy: upgrade chill bundles and adapt skeleton
All checks were successful
continuous-integration/drone/tag Build is passing
All checks were successful
continuous-integration/drone/tag Build is passing
This commit is contained in:
parent
ba33c507e6
commit
412cc332bb
15
.env
15
.env
@ -60,6 +60,14 @@ TWILIO_SID=~
|
||||
TWILIO_SECRET=~
|
||||
DEFAULT_CARRIER_CODE=BE
|
||||
|
||||
ADD_ADDRESS_DEFAULT_COUNTRY=BE
|
||||
|
||||
ADD_ADDRESS_MAP_CENTER_X=50.8443
|
||||
ADD_ADDRESS_MAP_CENTER_Y=4.3523
|
||||
ADD_ADDRESS_MAP_CENTER_Z=15
|
||||
|
||||
SHORT_MESSAGE_DSN=null://null
|
||||
|
||||
## DOCKER IMAGES REGISTRY
|
||||
#IMAGE_PHP=
|
||||
#IMAGE_NGINX=
|
||||
@ -68,3 +76,10 @@ DEFAULT_CARRIER_CODE=BE
|
||||
#VERSION=test
|
||||
#VERSION=prod
|
||||
|
||||
###> symfony/messenger ###
|
||||
# Choose one of the transports below
|
||||
# MESSENGER_TRANSPORT_DSN=doctrine://default
|
||||
# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
|
||||
# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
|
||||
MESSENGER_TRANSPORT_DSN=sync://
|
||||
###< symfony/messenger ###
|
||||
|
4
Makefile
4
Makefile
@ -3,9 +3,9 @@ PWD:=$(shell echo ${PWD})
|
||||
UID:=$(shell id -u)
|
||||
GID:=$(shell id -g)
|
||||
BASE_TAG=chill_base_php
|
||||
DOCKERNODE_CMD=docker run --rm --user ${UID}:${GID} -v ${PWD}:/app --workdir /app -e YARN_CACHE_FOLDER=/app/.yarncache node:14
|
||||
DOCKERNODE_CMD=docker run --rm --user ${UID}:${GID} -v ${PWD}:/app --workdir /app -e YARN_CACHE_FOLDER=/app/.yarncache node:16
|
||||
DOCKER_COMPOSE_PHP_EXEC_CMD=docker-compose run --rm --user $(UID):$(GID) -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env php
|
||||
DOCKER_PHP_EXEC_CMD_BASE=docker run --rm --user $(UID):$(GID) -v ${PWD}:/var/www/app -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env --net=host $(BASE_TAG)
|
||||
DOCKER_PHP_EXEC_CMD_BASE=docker run --rm --user $(UID):$(GID) -v ${PWD}:/var/www/app -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env $(BASE_TAG)
|
||||
PHP_BASE_IMAGE=php:7.4-fpm-buster
|
||||
PHP_BASE_IMAGE_CHILL=chill_base_php
|
||||
NGINX_BASE_IMAGE=nginx
|
||||
|
@ -15,7 +15,7 @@
|
||||
},
|
||||
"require": {
|
||||
"ext-redis": "*",
|
||||
"chill-project/chill-bundles": "dev-master#863a384a8521de7a4ea8fa37d17ee4ae8b7f5138",
|
||||
"chill-project/chill-bundles": "dev-master#351df930a1274ee4f308b7f898f2d7485c9659f3",
|
||||
"symfony/flex": "^1.9",
|
||||
"symfony/http-client": "^4.4 || ^5",
|
||||
"nelmio/alice": "^3.8",
|
||||
|
1595
composer.lock
generated
1595
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -33,6 +33,7 @@ return [
|
||||
Chill\WopiBundle\ChillWopiBundle::class => ['all' => true],
|
||||
loophp\PsrHttpMessageBridgeBundle\PsrHttpMessageBridgeBundle::class => ['all' => true],
|
||||
ChampsLibres\WopiBundle\WopiBundle::class => ['all' => true],
|
||||
\Misd\PhoneNumberBundle\MisdPhoneNumberBundle::class => ['all' => true],
|
||||
App\App::class => [ 'all' => true ],
|
||||
Misd\PhoneNumberBundle\MisdPhoneNumberBundle::class => ['all' => true],
|
||||
App\App::class => ['all' => true],
|
||||
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
|
||||
];
|
||||
|
@ -12,12 +12,20 @@ chill_main:
|
||||
twilio_sid: '%env(resolve:TWILIO_SID)%'
|
||||
twilio_secret: '%env(resolve:TWILIO_SECRET)%'
|
||||
default_carrier_code: '%env(resolve:DEFAULT_CARRIER_CODE)%'
|
||||
short_messages:
|
||||
dsn: '%env(string:SHORT_MESSAGE_DSN)%'
|
||||
acl:
|
||||
form_show_scopes: true
|
||||
form_show_centers: false
|
||||
form_show_centers: true
|
||||
access_global_history: false
|
||||
access_user_change_password: true
|
||||
access_permissions_group_list: true
|
||||
add_address:
|
||||
default_country: '%env(string:ADD_ADDRESS_DEFAULT_COUNTRY)'
|
||||
map_center:
|
||||
x: '%env(float:ADD_ADDRESS_MAP_CENTER_X)'
|
||||
y: '%env(float:ADD_ADDRESS_MAP_CENTER_y)'
|
||||
z: '%env(float:ADD_ADDRESS_MAP_CENTER_Z)'
|
||||
|
||||
chill_custom_fields:
|
||||
show_empty_values_in_views: false
|
||||
@ -40,7 +48,7 @@ chill_person:
|
||||
civility: visible
|
||||
deathdate: visible
|
||||
validation:
|
||||
center_required: false
|
||||
center_required: true
|
||||
|
||||
chill_activity:
|
||||
form:
|
||||
|
3
config/packages/chill_calendar.yaml
Normal file
3
config/packages/chill_calendar.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
chill_calendar:
|
||||
remote_calendars_sync:
|
||||
enabled: false
|
3
config/packages/knpu_oauth2_client.yaml
Normal file
3
config/packages/knpu_oauth2_client.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
knpu_oauth2_client:
|
||||
clients:
|
||||
# configure your clients as described here: https://github.com/knpuniversity/oauth2-client-bundle#configuration
|
24
config/packages/messenger.yaml
Normal file
24
config/packages/messenger.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
framework:
|
||||
messenger:
|
||||
# reset services after consuming messages
|
||||
# reset_on_message: true
|
||||
|
||||
# Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
|
||||
failure_transport: failed
|
||||
|
||||
transports:
|
||||
# https://symfony.com/doc/current/messenger.html#transport-configuration
|
||||
async: '%env(MESSENGER_TRANSPORT_DSN)%'
|
||||
failed: 'doctrine://default?queue_name=failed'
|
||||
# sync: 'sync://'
|
||||
|
||||
routing:
|
||||
# Route your messages to the transports
|
||||
# 'App\Message\YourMessage': async
|
||||
'Chill\CalendarBundle\Messenger\Message\CalendarRangeMessage': async
|
||||
'Chill\CalendarBundle\Messenger\Message\CalendarRangeRemovedMessage': async
|
||||
'Chill\CalendarBundle\Messenger\Message\CalendarRemovedMessage': async
|
||||
'Chill\CalendarBundle\Messenger\Message\CalendarMessage': async
|
||||
'Chill\CalendarBundle\Messenger\Message\InviteUpdateMessage': async
|
||||
'Chill\CalendarBundle\Messenger\Message\MSGraphChangeNotificationMessage': async
|
||||
'Chill\MainBundle\Service\ShortMessage\ShortMessage': async
|
@ -18,4 +18,4 @@ docker run \
|
||||
--volume ${PWD}:/app \
|
||||
--workdir /app \
|
||||
--env YARN_CACHE_FOLDER=/app/.yarncache \
|
||||
node:14 ${cmd}
|
||||
node:16 ${cmd}
|
||||
|
@ -6,13 +6,13 @@ set -e
|
||||
# waiting for the database to be ready
|
||||
if [ -z "${DATABASE_HOST}" ]; then
|
||||
while ! timeout 1 bash -c "cat < /dev/null > /dev/tcp/${DATABASE_HOST}/${DATABASE_PORT}"
|
||||
do
|
||||
echo "$(date) : waiting one second for database";
|
||||
sleep 1;
|
||||
do
|
||||
echo "$(date) : waiting one second for database";
|
||||
sleep 1;
|
||||
done
|
||||
|
||||
echo "$(date) : the database is ready";
|
||||
else
|
||||
else
|
||||
echo "we assume the database is ready";
|
||||
fi
|
||||
|
||||
@ -38,7 +38,6 @@ if [ "${APP_ENV}" = "prod" ]; then
|
||||
chmod +r /var/www/app/.env.local.php
|
||||
fi
|
||||
|
||||
|
||||
if [ "${CLEAR_CACHE}" != "false" ]; then
|
||||
#prepare cache
|
||||
php /var/www/app/bin/console cache:clear --no-warmup
|
||||
@ -46,5 +45,11 @@ if [ "${CLEAR_CACHE}" != "false" ]; then
|
||||
chgrp ${PHP_FPM_GROUP} /var/www/app/var/log -R && chmod g+rw /var/www/app/var/log -R
|
||||
fi
|
||||
|
||||
if [ "${PREVENT_MIGRATIONS}" != "true" ]; then
|
||||
php /var/www/app/bin/console doctrine:migrations:status
|
||||
php /var/www/app/bin/console doctrine:migrations:migrate -n
|
||||
php /var/www/app/bin/console messenger:setup-transports
|
||||
fi
|
||||
|
||||
exec "${@}"
|
||||
|
||||
|
60
package.json
60
package.json
@ -1,63 +1,11 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@alexlafroscia/yaml-merge": "^4.0.0",
|
||||
"@apidevtools/swagger-cli": "^4.0.4",
|
||||
"@ckeditor/ckeditor5-build-classic": "^25.0.0",
|
||||
"@ckeditor/ckeditor5-dev-utils": "^24.3.0",
|
||||
"@ckeditor/ckeditor5-dev-webpack-plugin": "^24.3.0",
|
||||
"@ckeditor/ckeditor5-markdown-gfm": "^25.0.0",
|
||||
"@ckeditor/ckeditor5-theme-lark": "^25.0.0",
|
||||
"@ckeditor/ckeditor5-vue": "^2.0.1",
|
||||
"@symfony/webpack-encore": "^0.33.0",
|
||||
"@vue/compiler-sfc": "^3.0.11",
|
||||
"bindings": "^1.5.0",
|
||||
"bootstrap": "^5.0.1",
|
||||
"chokidar": "^3.5.1",
|
||||
"fork-awesome": "^1.1.7",
|
||||
"jquery": "^3.6.0",
|
||||
"node-sass": "^4.14.1",
|
||||
"popper.js": "^1.16.1",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"raw-loader": "^3.1.0",
|
||||
"sass-loader": "^9.0.1",
|
||||
"select2": "^4.0.13",
|
||||
"select2-bootstrap-theme": "0.1.0-beta.10",
|
||||
"style-loader": "^1.3.0",
|
||||
"vue-loader": "^16.0.0",
|
||||
"webpack-cli": "^3.3.12"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fullcalendar/core": "^5.8.0",
|
||||
"@fullcalendar/daygrid": "^5.8.0",
|
||||
"@fullcalendar/interaction": "^5.8.0",
|
||||
"@fullcalendar/list": "^5.8.0",
|
||||
"@fullcalendar/timegrid": "^5.8.0",
|
||||
"@fullcalendar/vue3": "^5.8.0",
|
||||
"@popperjs/core": "^2.9.2",
|
||||
"dropzone": "^5.7.6",
|
||||
"es6-promise": "^4.2.8",
|
||||
"leaflet": "^1.7.1",
|
||||
"masonry-layout": "^4.2.2",
|
||||
"mime-types": "^2.1.29",
|
||||
"swagger-ui": "^3.48.0",
|
||||
"vis-network": "^9.1.0",
|
||||
"vue": "^3.0.11",
|
||||
"vue-i18n": "^9.1.6",
|
||||
"vue-multiselect": "3.0.0-alpha.2",
|
||||
"vue-toast-notification": "^2.0",
|
||||
"vuex": "^4.0.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"Firefox ESR"
|
||||
"workspaces": [
|
||||
"vendor/chill-project/chill-bundles"
|
||||
],
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev-server": "encore dev-server",
|
||||
"dev": "encore dev",
|
||||
"watch": "encore dev --watch",
|
||||
"build": "encore production --progress",
|
||||
"specs-build": "yaml-merge vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillCalendarBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml",
|
||||
"specs-validate": "swagger-cli validate templates/api/specs.yaml",
|
||||
"specs": "yarn run specs-build && yarn run specs-validate"
|
||||
},
|
||||
"private": true
|
||||
}
|
||||
}
|
||||
|
24
symfony.lock
24
symfony.lock
@ -165,6 +165,18 @@
|
||||
"knplabs/knp-time-bundle": {
|
||||
"version": "v1.12.0"
|
||||
},
|
||||
"knpuniversity/oauth2-client-bundle": {
|
||||
"version": "2.11",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes-contrib",
|
||||
"branch": "main",
|
||||
"version": "1.20",
|
||||
"ref": "1ff300d8c030f55c99219cc55050b97a695af3f6"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/knpu_oauth2_client.yaml"
|
||||
]
|
||||
},
|
||||
"laminas/laminas-code": {
|
||||
"version": "3.4.1"
|
||||
},
|
||||
@ -582,6 +594,18 @@
|
||||
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f"
|
||||
}
|
||||
},
|
||||
"symfony/messenger": {
|
||||
"version": "5.4",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "5.4",
|
||||
"ref": "dfe610928a5c61619bdfc830cd7fa7f091368023"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/messenger.yaml"
|
||||
]
|
||||
},
|
||||
"symfony/mime": {
|
||||
"version": "v5.3.8"
|
||||
},
|
||||
|
30
tsconfig.json
Normal file
30
tsconfig.json
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
"extends": "@tsconfig/node14/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"lib": [
|
||||
"es2020",
|
||||
"dom"
|
||||
],
|
||||
"module": "es6",
|
||||
"moduleResolution": "node",
|
||||
"isolatedModules": true,
|
||||
"allowJs": false,
|
||||
"checkJs": false,
|
||||
"importHelpers": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"sourceMap": true
|
||||
},
|
||||
"includes": [
|
||||
"./vendor/chill-project/chill-bundles/src/Bundle/**/*.ts",
|
||||
"./vendor/chill-project/chill-bundles/src/Bundle/**/*.vue",
|
||||
"./src/**/*.ts",
|
||||
"./src/**/*.vue"
|
||||
],
|
||||
"exclude": [
|
||||
"./vendor/chill-project/chill-bundles/tests/*",
|
||||
"./vendor/chill-project/chill-bundles/docs/*"
|
||||
]
|
||||
}
|
@ -3,9 +3,9 @@ const { resolve, parse } = require('path');
|
||||
const { readdir } = require('fs').promises;
|
||||
|
||||
/**
|
||||
* get the file names inside given directory recursively, limiting to
|
||||
* get the file names inside given directory recursively, limiting to
|
||||
* a given depth in the recursion
|
||||
*
|
||||
*
|
||||
* @param string dir the directory
|
||||
* @param int depth the maximum depth to look into
|
||||
*/
|
||||
@ -28,22 +28,22 @@ async function* getFiles(dir, depth, ignored) {
|
||||
/**
|
||||
* populate the config of encore in directories inside `'./src'` and
|
||||
* `'./vendor'` and letting them to alter the encore config.
|
||||
*
|
||||
*
|
||||
* if a file `chill.webpack.config.js` is found, the default function is
|
||||
* imported and executed. This function receive two arguments:
|
||||
*
|
||||
* imported and executed. This function receive two arguments:
|
||||
*
|
||||
* - `Encore`, the main encore object
|
||||
* - `chillEntries`: the entries which will be appended to the main `chill` module,
|
||||
* resulting in a chill.js and chill.css file.
|
||||
*
|
||||
*
|
||||
*/
|
||||
async function populateConfig(Encore, chillEntries) {
|
||||
// chill-main contains some bootstrap that must be loaded first.
|
||||
// we register them first and, then, store this chill.webpack.config.js file
|
||||
// into `toIgnore`, ignoring it when we loop on other folders.
|
||||
let
|
||||
let
|
||||
toIgnore = [];
|
||||
|
||||
|
||||
// loop into chill main
|
||||
for await (const f of getFiles('./vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/', 1, [])) {
|
||||
let filename = parse(f).base;
|
||||
@ -53,7 +53,7 @@ async function populateConfig(Encore, chillEntries) {
|
||||
toIgnore.push(f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// loop into other chill bundles
|
||||
for await (const f of getFiles('./vendor/chill-project/chill-bundles/src/Bundle', 2, toIgnore)) {
|
||||
let filename = parse(f).base;
|
||||
@ -62,7 +62,7 @@ async function populateConfig(Encore, chillEntries) {
|
||||
configure(Encore, chillEntries);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// loop into other vendors
|
||||
for await (const f of getFiles('./vendor/', 3, toIgnore)) {
|
||||
let filename = parse(f).base;
|
||||
@ -71,7 +71,7 @@ async function populateConfig(Encore, chillEntries) {
|
||||
configure(Encore, chillEntries);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// loop into src directory
|
||||
for await (const f of getFiles('./src', 3, [])) {
|
||||
let filename = parse(f).base;
|
||||
@ -84,23 +84,37 @@ async function populateConfig(Encore, chillEntries) {
|
||||
|
||||
// export the final configuration
|
||||
module.exports = (async () => {
|
||||
|
||||
// Manually configure the runtime environment if not already configured yet by the "encore" command.
|
||||
// It's useful when you use tools that rely on webpack.config.js file.
|
||||
if (!Encore.isRuntimeEnvironmentConfigured()) {
|
||||
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
|
||||
}
|
||||
// basic encore configuration
|
||||
Encore
|
||||
.setOutputPath('public/build/')
|
||||
.setPublicPath('/build')
|
||||
.enableSassLoader()
|
||||
.enableVueLoader(() => {}, {
|
||||
.enableVueLoader(() => {}, {
|
||||
version: 3
|
||||
})
|
||||
.enableTypeScriptLoader(function (tsConfig){
|
||||
tsConfig.appendTsSuffixTo = [/\.vue$/];
|
||||
tsConfig.appendTsxSuffixTo = [/\.vue$/];
|
||||
// temporary fix for https://github.com/vuejs/vue-loader/issues/1915 and https://github.com/vuejs/core/issues/2855
|
||||
tsConfig.compilerOptions = {strict: !Encore.isProduction()};
|
||||
tsConfig.silent = false;
|
||||
})
|
||||
//.enableForkedTypeScriptTypesChecking()
|
||||
.autoProvidejQuery()
|
||||
.enableSourceMaps(!Encore.isProduction())
|
||||
.cleanupOutputBeforeBuild()
|
||||
.enableVersioning()
|
||||
.enableSingleRuntimeChunk()
|
||||
.splitEntryChunks()
|
||||
.addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } })
|
||||
//.addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } })
|
||||
;
|
||||
|
||||
|
||||
// populate config with chill entries
|
||||
let chillEntries = [];
|
||||
await populateConfig(Encore, chillEntries);
|
||||
@ -109,7 +123,7 @@ module.exports = (async () => {
|
||||
if (!Encore.isProduction()) {
|
||||
Encore
|
||||
.addEntry('swagger', __dirname + '/assets/swagger-ui/index.js')
|
||||
.addLoader({
|
||||
.addLoader({
|
||||
test: /\.yaml$/,
|
||||
type: 'json',
|
||||
use: [
|
||||
|
Loading…
Reference in New Issue
Block a user