استخدام أكشنز جيتا لنشر موقع هوغو على AWS S3
بعد إعداد Gitea و Hugo على AWS S3...
الخطوة التالية هي تنفيذ بعض عمليات CI/CD وإعداد
إجراءات Gitea للحصول على موقع Hugo، لدفع الموقع إلى AWS S3
تلقائيًا عند تحديث فرع master.
لقد قمنا بالفعل - بعد تثبيت وتكوين واختبار Gitea إعداد خادم Gitea،
وإعداد SSL لـ Gitea،
بتكوين نشر موقع Hugo على AWS S3.
حسنًا. دعنا نبدأ
إنشاء رمز تحقق جديد لـ Gitea runner
انتقل إلى https://your-gitea-server/your-user/your-repo/settings/actions/runners
واضغط على إنشاء runner جديد
نسخ رمز التسجيل
تشغيل runner جديد لـ Gitea
قم باتصال SSH بالخادم الذي سيقوم بتشغيل runner جديد لـ Gitea
وابدأ حاوية Docker. يمكنك تشغيلها كملف تنفيذي منفصل، أو تشغيلها كخدمة إلخ، ولكن هنا أستخدم حاوية Docker.
sudo docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-e GITEA_INSTANCE_URL=http://<my-gitea-server>:3000/ \
-e GITEA_RUNNER_REGISTRATION_TOKEN=<my-registration-token> \
-e GITEA_RUNNER_NAME=srv-act-runner \
--name my_runner \
--restart always \
-d docker.io/gitea/act_runner:latest
التحقق من تسجيل Runner
انتقل إلى https://your-gitea-server/your-user/your-repo/settings/actions/runners
وينبغي أن ترى أنه يعمل بالفعل
إنشاء عدد من السرائر الخاصة بـ AWS
انتقل إلى: https://your-gitea-server/your-user/your-repo/settings/actions/secrets
وأنشئ عددًا من السرائر الكبيرة: AWS_ACCESS_KEY_ID وAWS_SECRET_ACCESS_KEY. أنت تعرف ما معناهما، صحيح؟
إنشاء تدفق عمل لـ Gitea لبناء ونشر موقع Hugo إلى s3
في مشروعك الخاص بـ Hugo، في المجلد .gitea/workflows
أنشئ ملفًا يسمى hugo-deploy.yaml
name: Gitea Actions - Hugo Deploy
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on:
push:
branches:
- master
jobs:
Hugo-Deploy:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.134.1' # or remove this for the latest
extended: true
- name: List files in the repository
run: |
ls
- name: Build
run: hugo
- name: Deploy
run: hugo deploy
env:
AWS_REGION: 'ap-southeast-2'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- run: echo "🍏 This job's status is ${{ job.status }}."
إذا لم يكن لديك رغبة كبيرة في استضافة موقعك في سيدني - تغيّر AWS_REGION إلى ما تفضله.
هذا التكوين:
on:
push:
branches:
- master
سيتعامل مع جميع الدفعات والدمج في فرع master.
التزامن والدفع
بعد دفع التغييرات إلى الخادم، يجب أن ترى على الصفحة https://your-gitea-server/your-user/your-repo/actions شيئًا قريبًا من
أتمنى لك يومًا جميلًا!
روابط مفيدة
- نشر موقع Hugo المُنشأ على AWS S3
- تقديم نموذج Google في موقع Hugo
- قائمة اختصارات Hugo
- أفضل قوالب لـ Hugo
- إدارة الصور في قوالب Mainroad
- قائمة اختصارات Markdown
- إعداد خادم Gitea
- إعداد SSL لـ Gitea
- إعادة تثبيت لينكس
- قائمة اختصارات Bash
- Hugo Space
- كيفية تخزين صور مصغرة في مجلد حزمة الصفحة لمواقع Hugo مع قوالب Mainroad