Logo GH

GitHub क्रियाएँ: स्वचालित रिलीज़

(धारा: प्रौद्योगिकी और बुनियादी ढांचा)

संक्षिप्त सारांश

GitHub एक्शन भंडार में एक देशी "पाइपलाइन के रूप में कोड" है। IGaming के लिए, ये बैकेंड, फ्रंटेंड, ETL/DBT और ML/LLM सेवाओं के तेज और सुरक्षित रिलीज हैं: परीक्षण मैट्रिसेस, निर्भरता कैश, अलग-अलग धावक पूल, समान मानकों के लिए पुन्य काम करने योग्य। BOM, टैग द्वारा रिलीज़ और घोषणापत्र के GitOps-धक्कों। कुंजी p99 और लागत को नियंत्रण में रखने के लिए टेम्पलेट और गुणवत्ता/सुरक्षा द्वार है।

1) वास्तुशिल्प सिद्धांत

कोड के रूप में पाइपलाइन ('.github/workflows/.yml'), पुन: प्रयोज्य/समग्र कार्यों के माध्यम से DRI।

धावक पूल: होस्ट (ubuntu-नवीनतम) + स्व-होस्ट (ML के लिए GPU)।

वातावरण: आवश्यक समीक्षकों, टाइमआउट और पर्यावरण रहस्यों के साथ 'dev/state/prod'।

नीतियां: संरक्षित शाखाएं/टैग, CODEOWNERS, अनिवार्य जांच।

अवलोकन: नौकरी सारांश, कलाकृतियां, लॉगिंग, अवधि मेट्रिक्स।

2) बेसिक टेम्पलेट सीआई → सीडी (बैकएंड)

yaml name: ci-cd-backend on:
pull_request:
branches: [ main ]
push:
tags: [ "v" ]
permissions:
contents: read id-token: write    # для OIDC packages: write

env:
IMAGE: ghcr. io/${{ github. repository }}/api:${{ github. sha }}

jobs:
lint_test:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5 with: { python-version: '3. 12' }
- name: Cache pip uses: actions/cache@v4 with:
path: ~/.cache/pip key: pip-${{ runner. os }}-${{ hashFiles('requirements. txt') }}
- run: pip install -r requirements. txt
- run: make lint && make test
- name: Build & push image (BuildKit)
uses: docker/build-push-action@v6 with:
push: ${{ github. event_name == 'push' }}
tags: ${{ env. IMAGE }}
cache-from: type=gha cache-to: type=gha,mode=max

security:
needs: [ lint_test ]
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: SCA/SAST/Secrets uses: your-org/security-composite@v3  # Composite Action вашей орг.

release_prod:
if: startsWith(github. ref, 'refs/tags/v')
needs: [ security ]
runs-on: ubuntu-latest environment: production steps:
- uses: actions/checkout@v4
- name: SBOM & Sign uses: your-org/sbom-sign-action@v2 with:
image: ${{ env. IMAGE }}
- name: GitOps bump manifests uses: your-org/gitops-bump@v2 with:
image: ${{ env. IMAGE }}
path: apps/api/values. yaml

विचार: पीआर → लिंट/इकाइयाँ → सुरक्षा → टैग 'v' - SBOM/हस्ताक्षर और तैनाती के लिए GitOps-bump घोषणापत्र।

3) पुन: उपयोग: पुन: प्रयोज्य/समग्र

पुन: प्रयोज्य वर्कफ़्लो: सभी सेवाओं के लिए एकल पाइपलाइन टेम्पलेट (एक अलग रेपो '.github' में)।

समग्र क्रियाएं: ग्लूइंग बार-बार चरणों (लिंट/इकाइयाँ/स्कैन)।

एक पुन: प्रयोज्य कॉल का उदाहरण:
yaml jobs:
ci_template:
uses: your-org/ci-templates/.github/workflows/python. yml@v3 with:
python: '3. 12'
run-tests: true

4) मैट्रिसेस, कैश और प्रदर्शन

'strategy। समानांतर परीक्षणों (भाषाओं/डीबी/ओएस) के लिए मैट्रिक्स।

कैश: निर्भरता के लिए 'क्रिया/कैश'; बिजनेसकिट с 'कैश-टू: घा'; निर्भरता प्रॉक्सी।

प्रतिस्पर्धा: 'संगति: समूह: api- $ {github। ref}, रद्द-इन-प्रगति: सही '- मिनट बचाता है।

कलाकृतियाँ: 'प्रतिधारण-दिनों' के साथ रिपोर्ट/कवरेज/प्रोफाइल स्टोर करें।

मैट्रिक्स उदाहरण:
yaml strategy:
matrix:
py: [ '3. 10', '3. 12' ]
db: [ 'mysql', 'postgres' ]

5) वातावरण - अनुमोदन

'उत्पादन' (मैनुअल गेट) के लिए आवश्यक समीक्षकों को कॉन्फ़िगर करें।

पर्यावरण रहस्य: टोकन, हस्ताक्षर कुंजी, स्टैंड का URL तैनात करें।

लागत नियंत्रण के लिए पूर्वावलोकन पर्यावरण जीवनकाल (ऑटो-एक्सपायर)।

6) बादलों तक ओआईडीसी पहुंच (लंबे समय तक रहने वाले रहस्यों के बिना)

'आईडी- टोकन: लिखें' सक्षम करें, क्लाउड में ट्रस्ट पॉलिसी कॉन्फ़िगर करें और अस्थायी क्रेडिट का उपयोग करें.

AWS/Azure/GCP/कलाकृतियों-रजिस्टरों/गुप्त-प्रबंधकों के लिए लागू होता है।

कम से कम विशेषाधिकार का सिद्धांत: 'देव/मंच/प्रोड' पर व्यक्तिगत भूमिकाएं।

उदाहरण चरण (अवधारणा):
yaml
- name: Assume cloud role via OIDC uses: your-org/oidc-assume@v1 with:
role: arn:aws:iam::123:role/gha-deploy-prod

7) रिलीज, टैग और कलाकृतियाँ

टैग द्वारा रिलीज़: चेंजलॉग, रिलीज़ एसेट्स, इमेज/पैकेज प्रकाशित करना।

प्रतिरक्षा: "केवल आगे" टैग, कंटेनर/चार्ट हस्ताक्षर।

SBOM (CycloneDX/SPDX) + हस्ताक्षर (cosign/sigstore) - अहस्ताक्षरित गेट - कोई तैनाती नहीं।

8) GitOps - प्रगतिशील वितरण

सीडी "क्रियाओं से" नहीं है, लेकिन पीआर के माध्यम से/एक रेपो मेनिफेस्ट (आर्गो सीडी/फ्लक्स) के लिए प्रतिबद्ध है।

कैनरी/ब्लू-ग्रीन: वजन/संस्करण GitOps-बम्प चरण; एसएलओ मैट्रिक्स पर ऑटो-प्रमोशन।

GitOps टक्कर का उदाहरण (विचार):
yaml
- uses: mikefarah/yq@v4 with:
cmd: yq -i '.image = strenv(IMAGE)' apps/api/values. yaml
- run:
git config user. name "gha-bot"
git commit -am "bump api -> $IMAGE" && git push

9) पाइपलाइन और आपूर्ति श्रृंखला सुरक्

कौन चला सकता है: केवल संरक्षित शाखाओं/टैग से, आवश्यक जांच के साथ।

स्कैनिंग: SAST/SCA/सीक्रेट-स्कैन, पूर्वावलोकन वातावरण पर DAST।

हस्ताक्षर: चित्र, हेल्म चार्ट, बायनेरीज़; कमी के दौरान सत्यापन।

राजनेता: केवल विश्वसनीय कार्यस्थलों से प्रेषण; तीसरे पक्ष के कार्यों के लिए SHA पिन।

10) अवलोकन, एसएलओ और चाटोप्स

सारांश रिपोर्ट (JUnit/कवरेज/स्कैन), पीआर में स्टेटस।

मेट्रिक्स: स्टेज की अवधि, सफलता/विफल, धावक कतार।

चैटोप्स: पीआर में बॉट टिप्पणियां (डैशबोर्ड, पूर्वावलोकन यूआरएल के लिंक), 'वर्कफ़्लो _ डिस्पैच' के माध्यम से '/प्रचार ', '/रोलबैक' आदेश।

11) फिनोप्स (मिनटों और संसाधनों की लागत)

पीआर के लिए संगोष्ठी-रद्द, मैट्रिक्स केवल परिवर्तित भागों (पथ-फ़िल्टर) के लिए।

कलाकृतियों की स्वच्छता: 'प्रतिधारण-दिन', ऑटो-क्लोज़पूर्वावलोकन env।

भारी विधानसभाओं/एमएल के लिए स्व-होस्ट किए गए पूल, रात "शांत घंटे।"

निर्भरता कैश और बिल्डकिट GHA कैश महत्वपूर्ण बचत हैं।

12) मोनोरेपोस और माता-पिता/बाल ऑर्केस्ट्रेशन

फ़ोल्डर/पथ ट्रिगर: प्रति घटक स्वतंत्र वर्कफ़्लो।

टीमों (भुगतान/जोखिम/सीआरएम/ईटीएल/एमएल) के बीच एक मानकीकरण परत के रूप में पुन: प्रयोज्य।

घटकों द्वारा रहस्य/वातावरण का पृथक्करण।

13) iGaming के लिए साँचा

A) बैकेंड/API (गो/नोड/पायथन)

yaml name: backend on: [ pull_request, push ]
jobs:
ci:
uses: your-org/ci-templates/.github/workflows/backend. yml@v3 release:
if: startsWith(github. ref, 'refs/tags/v')
uses: your-org/ci-templates/.github/workflows/release. yml@v3 secrets: inherit

Б) ईटीएल/डीबीटी

yaml name: etl-dbt on: [ pull_request ]
jobs:
dbt:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5 with: { python-version: '3. 11' }
- run: pip install dbt-core dbt-bigquery
- run: dbt deps && dbt run && dbt test
- name: Publish docs run: dbt docs generate && tar czf docs. tgz target/
load artifact, retention period 3 days uses: actions/upload-artifact @ v4 with: {name: dbt-docs, path: docs. tgz, retention-days: 3 }

बी) एमएल/एलएलएम (अनुमान कलाकृतियाँ)

yaml name: ml-pack on:
push:
tags: [ "model-" ]
jobs:
build-engine:
runs-on: self-hosted-gpu steps:
- uses: actions/checkout@v4
- run: python export_onnx. py
- run: trtexec --onnx=model. onnx --saveEngine=model. plan
- uses: actions/upload-artifact@v4 with: { name: engine, path: model. plan, retention-days: 7 }
- name: Sign & SBOM uses: your-org/sbom-sign-action@v2 with: { file: model. plan }

14) कार्यान्वयन चेकलिस्ट

1. सीआई/सीडी (पुन: प्रयोज्य/समग्र) टेम्पलेट को परिभाषित करें और उन्हें सभी रेपो पर लागू करें।

2. अनुमोदन और विभाजन रहस्यों के साथ वातावरण शामिल करें।

3. OIDC में बादल/गुप्त प्रबंधकों के लिए जाएँ, टिकाऊ कुंजी हटाएँ.

4. SAST/SCA/सीक्रेट/DAST, SBOM और कलाकृति हस्ताक्षर दर्ज करें; महत्वपूर्ण भेद्यता द्वार।

5. GitOps कॉन्फ़िगर करें: मेनिफेस्ट-रेपो, ऑटो-धक्कों छवियां/संस्करण, कैनरी/ब्लू-ग्रीन।

6. कैश/मैट्रिसेस का अनुकूलन करें, 'संगति। रद्द-इन-प्रगति ', कलाकृतियों को साफ करना।

7. सीमा और अलगाव के साथ स्व-होस्ट धावकों (जीपीयू सहित) को तैनात करें।

8. अतिरिक्त जैब चलाने से बचने के लिए पथ-फ़िल्टर और नियम-सेटिंग सक्षम करें.

9. ChatOps जोड़ें: स्टेटस/कमांड; पीआर में रिपोर्ट।

10. सुरक्षित क्रियाओं को ठीक करें (पिन SHA, बाहरी को प्रतिबंधित करें)।

15) एंटीपैटर्न

पुन: प्रयोज्य/समग्र → आउट सिंक मानकों के बजाय सभी रिपो में समान कदम।

OIDC के बजाय चर में लंबे समय तक रहने वाले क्लाउड रहस्य।

के लिए वातावरण/अनुमोदन की अनुपस्थिति

तृतीय-पक्ष क्रियाओं के असंपीड़ित संस्करण → आपूर्ति-श्रृंखला जोखिम।

कोई SBOM/हस्ताक्षर - सीडी पर कोई सत्यापन नहीं।

बड़े पैमाने पर मैट्रिक्स जो हमेशा चलते हैं - लागत बढ़

GitOps ट्रेसिंग परिवर्तन के बिना सीधे क्रियाओं से उत्पादन तक सीडी।

सारांश

GitHub क्रियाएं आपको रिलीज़ की एकल, सुरक्षित और प्रजनन योग्य पाइपलाइन का निर्माण करने की अनुमति देती हैं: पुन: प्रयोज्य/समग्र के माध्यम से पाइपलाइनों का मानकीकरण, अनुमोदन के साथ OIDC C C S/हस्तक लागू करना, प्रहेगा। प्रतिस्पर्धा। यह दृष्टिकोण iGaming उत्पाद की गति को तराशता है, गुणवत्ता रखता है और परिचालन जोखिमों को कम करता है।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।