هذا الموقع مستضاف على DigitalOcean، والذي تم إنشاؤه باستخدام Ansible (راجع tools/deployment/digitalocean.yml
).
لإعادة توفير الخادم:
# Download the required roles
ansible-galaxy install -r tools/deployment/requirements.yml --force
# Run the provision playbook
ansible-playbook tools/deployment/provision.yml
تتم إدارة عمليات النشر لهذا الموقع باستخدام Ansible وAnsistrano. يتم استخدام Ansible Vault لإدارة المعلومات الحساسة مثل كلمات مرور قاعدة البيانات.
يتم تشغيل عمليات النشر تلقائيًا عند دفع التغييرات إلى GitHub، ويتم تنفيذها تلقائيًا عبر إجراءات GitHub في كل دفعة إلى فرع production
.
لتشغيل النشر يدويًا، قم بتشغيل ansible-playbook tools/deployment/deploy.yml --ask-vault-pass
. يتم تخزين كلمة مرور Vault في LastPass.
يتم إنشاء ملفات إعدادات الإنتاج تلقائيًا أثناء النشر. يتم ذلك باستخدام الدور opdavies.drupal_settings_files Ansible، باستخدام متغيرات من tools/deployment/vars/deploy_vars.yml
، ويتم تنفيذه أثناء خطوة بناء After update code
الخاصة بـ Ansistrano.
لعرض حالة جميع عمليات الترحيل:
./run drush migrate:status
لتشغيل كافة عمليات الترحيل:
./run drush migrate:import --all
لتشغيل جميع عمليات الترحيل وتحديث المحتوى المنقول الحالي:
./run drush migrate:import --all --update
يمكن تحديث Drupal core (وأي شيء آخر) باستخدام Composer. نظرًا لأن هذا المشروع تم إنشاؤه باستخدام المشروع الأساسي الموصى به Drupal، فيجب تحديث جميع التبعيات:
./run composer update drupal/core-* --with-all-dependencies
بمجرد اكتمال ذلك، يمكن الالتزام بملف composer.lock
المحدث ودفعه.
من أجل الحفاظ على صفحة المحادثات بالترتيب الصحيح، استنادًا إلى وقت تقديم المحادثة التالية، يتم تحديث التاريخ created
لعقدة الحديث تلقائيًا في كل عملية حفظ لمطابقة تاريخ الحدث المستقبلي لتلك المحادثة.
يقوم العرض بعد ذلك بفرز عقد الحديث بناءً على تاريخ created
.