Gitea Actions का उपयोग करके Hugo वेबसाइट को AWS S3 पर तैनात करें

एएव्स एस3 पर गिटिया और हुगो को सेट अप करने के बाद...

Page content

अगला कदम एक कुछ CI/CD को लागू करना और सेटअप करना है Gitea Actions for Hugo website, to push website to AWS S3 जब मास्टर ब्रांच अपडेट होता है तो स्वचालित रूप से।

हमने पहले से - Gitea के इस्तामल, सेटअप और परीक्षण के बाद Gitea Server Setup और setting up Gitea SSL के साथ, Hugo website deployment to AWS S3 के सेटअप कर चुके हैं।

Gitea Runner

ठीक है। चलिए आगे बढ़ते हैं

Gitea runner के लिए नया टोकन जनरेट करें

https://your-gitea-server/your-user/your-repo/settings/actions/runners पर जाएं

और Create New Runner पर क्लिक करें

Create New Runner

रजिस्ट्रेशन टोकन कॉपी करें

नए Gitea Runner को शुरू करें

उस सर्वर पर ssh करें जहां आपका नया gitea runner चलेगा

और डॉकर कंटेनर शुरू करें। आप इसे एक अलग एक्जीक्यूटेबल के रूप में शुरू कर सकते हैं, इसे सेवा के रूप में चला सकते हैं आदि, लेकिन यहां मैं एक डॉकर कंटेनर का उपयोग कर रहा हूं।

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

चेक करें कि रनर ठीक रजिस्टर हो गया है

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 जैसे कुछ बड़े सुरक्षा रखें। आप जानते हैं कि वे क्या अर्थ हैं, सही?

aws-secrets

बनाएं Gitea वर्कफ़्लो जो हुगो को S3 पर बनाए और डिप्लॉइ करे

अपने हुगो प्रोजेक्ट में, फ़ोल्डर .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

मास्टर ब्रांच में सभी पुश और मर्ज के लिए देख रहा है।

कमिट और पुश

सर्वर पर बदलाव के पुश करने के बाद आपको पेज पर https://your-gitea-server/your-user/your-repo/actions कुछ ऐसा दिखाई देना चाहिए

hugo-deploy-log-gitea-actions

एक अच्छा दिन रहे!

उपयोगी लिंक