यह सुनिश्चित करने के लिए एकीकरण परीक्षण महत्वपूर्ण है कि आपका गो एप्लिकेशन डेटाबेस जैसी बाहरी निर्भरता के साथ त्रुटिहीन रूप से काम करता है। इस ब्लॉग में, हम GitHub Actions का उपयोग करके गो एप्लिकेशन के लिए एकीकरण परीक्षण कैसे सेट अप करें और चलाएं, इसका पता लगाएंगे। हम CI पाइपलाइन के भीतर एक PostgreSQL डेटाबेस को कॉन्फ़िगर करेंगे, परीक्षण प्रक्रिया को सुव्यवस्थित करेंगे, और सुनिश्चित करेंगे कि आपका कोडबेस हर पुश के साथ विश्वसनीय और उत्पादन के लिए तैयार हो। आइए गोता लगाएँ!
हमने यहां पिछले लेख में यूनिट परीक्षण और एकीकरण बनाया था! इस लेख में हम इन परीक्षणों को अपने जीथब रिपॉजिटरी के सभी कमिट्स पर चलाना चाहते हैं।
वे एक सतत एकीकरण और निरंतर वितरण (सीआई/सीडी) प्लेटफॉर्म हैं जो आपको अपने निर्माण, परीक्षण और तैनाती पाइपलाइन को स्वचालित करने की अनुमति देता है।
जब आपके रिपॉजिटरी में अन्य घटनाएँ घटित होती हैं तो Github Actions आपको वर्कफ़्लो चलाने की सुविधा देता है
वर्कफ़्लो एक कॉन्फ़िगर करने योग्य स्वचालित प्रक्रिया है जो एक या अधिक कार्य चलाएगी। वर्कफ़्लो को आपके रिपॉजिटरी में चेक की गई YAML फ़ाइल द्वारा परिभाषित किया जाता है और यह आपके रिपॉजिटरी में किसी ईवेंट द्वारा ट्रिगर होने पर चलेगा। वर्कफ़्लोज़ को .github/workfows में परिभाषित किया गया है।
name: ci-test on: push: branches: [main] pull_request: branches: [main] env: POSTGRES_USER: postgres POSTGRES_PASSWORD: Password123 POSTGRES_DB: crud_db jobs: build: name: tests runs-on: ubuntu-latest services: postgres: image: postgres env: POSTGRES_USER: ${{ env.POSTGRES_USER }} POSTGRES_PASSWORD: ${{ env.POSTGRES_PASSWORD }} POSTGRES_DB: ${{ env.POSTGRES_DB }} ports: - 5432:5432 options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v4 with: go-version: "1.22" - name: Install dbmate for golang migrations run: | sudo curl -fsSL -o /usr/local/bin/dbmate https://github.com/amacneil/dbmate/releases/latest/download/dbmate-linux-amd64 sudo chmod x /usr/local/bin/dbmate which dbmate - name: Construct DB URL id: construct_url run: echo "DB_URL=postgres://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@localhost:5432/${{ env.POSTGRES_DB }}?sslmode=disable" >> $GITHUB_ENV - run: env - name: Make Migrations run: make migrations URL=${{ env.DB_URL }} - name: Seed test DB run: go run db/seed.go - name: Test run: make test
जीथब वर्कफ़्लो वैश्विक और नौकरी-विशिष्ट पर्यावरण चर का समर्थन करता है। यह वेरिएबल पोस्टग्रेज़ क्रेडेंशियल्स का वर्णन करते हैं जिन्हें हम बाद में अपनी yaml फ़ाइल में उपयोग करेंगे।
jobs: build: name: tests runs-on: ubuntu-latest
यहां हमने उस कार्य को एक नाम दिया है जो मुख्य कार्य करेगा, जो हमारे कोड का निर्माण और परीक्षण कर रहे हैं।
रनर - वर्णन करता है कि वर्कफ़्लो कहाँ चलेगा जो एक उबंटू वर्चुअल मशीन होगी।
जीथब एक्शन वर्कफ़्लो आपको सेवाओं को परिभाषित करने की अनुमति देता है। इस मामले में हमें अपने परीक्षण चलाने के लिए एक पोस्टग्रेज डेटाबेस की आवश्यकता है।
- uses: actions/checkout@v4
यह लाइन रिपॉजिटरी का नवीनतम संस्करण लाती है, जो सभी स्रोत फ़ाइलों तक पहुंच प्रदान करती है।
- name: Set up Go uses: actions/setup-go@v4 with: go-version: "1.22"
- name: Install dbmate for golang migrations run: | sudo curl -fsSL -o /usr/local/bin/dbmate https://github.com/amacneil/dbmate/releases/latest/download/dbmate-linux-amd64 sudo chmod x /usr/local/bin/dbmate which dbmate
- name: Construct DB URL id: construct_url run: echo "DB_URL=postgres://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@localhost:5432/${{ env.POSTGRES_DB }}?sslmode=disable" >> $GITHUB_ENV
- name: Make Migrations run: make migrations URL=${{ env.DB_URL }}
- name: Seed test DB run: go run db/seed.go
Seed.go फ़ाइल परीक्षण डेटा के साथ डेटा को बीजित करती है। एक यथार्थवादी परीक्षण वातावरण स्थापित करना। इस फ़ाइल का और अधिक निरीक्षण करने के लिए, यहां जाएं
अंतिम चरण मेक फ़ाइल का उपयोग करके हमारे गो परीक्षण को निष्पादित करना है
- name: Test run: make test
यह वर्कफ़्लो अब हर बार चलेगा जब हम अपनी मुख्य शाखा में पुल अनुरोध या पुश कोड करेंगे
जैसा कि हमने देखा है कि जीथब एक्शन आपको ऐसा करने की अनुमति देता है
गिटहब क्रियाओं का लाभ उठाकर, यह वर्कफ़्लो परीक्षण और डेटाबेस सेटअप को सुव्यवस्थित करता है, जिससे मजबूत और विश्वसनीय सॉफ़्टवेयर विकास सुनिश्चित होता है।
ऊपर वर्णित क्रिया के साथ परीक्षण किए जा रहे कोड को देखने के लिए जीथब रिपॉजिटरी पर जाएं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3