Sobes.tech
Middle

როგორ განვსაზღვროთ პაიპლაინის დაწყების პარამეტრები Git-ში გარკვეული რესურსების რედაქტირებისას?

sobes.tech AI

პასუხი AI-სგან

CI/CD ტრიგერების გამოყენებით, რომლებიც დაკავშირებულია კონკრეტული ფაილების ან დირექტორიების ცვლილებებთან.

მაგალითად, GitLab CI:

# .gitlab-ci.yml

საფეხურები:
  - მშენებლობა
  - ტესტი

build_job:
  საფეხური: მშენებლობა
  სკრიპტი:
    - echo "აპლიკაციის მშენებლობა..."
  # ამ ეტაპის გაშვება მხოლოდ მაშინ, თუ ცვლილებები მოხდა app/ დირექტორიაში
  only:
    changes:
      - app/**/*

test_job:
  საფეხური: ტესტი
  სკრიპტი:
    - echo "ტესტების ჩატარება..."
  # ამ ეტაპის გაშვება მხოლოდ მაშინ, თუ ცვლილებები მოხდა test/ დირექტორიაში
  only:
    changes:
      - test/**/*

Jenkinsfile-ში Maven და triggers დირექტივით:

// Jenkinsfile (დეკლარაციული პაიპლაინი)

პაიპლაინი {
    აგენტი ნებისმიერი
    საფეხურები {
        საფეხური('მშენებლობა') {
            ნაბიჯები {
                echo 'მშენებლობა...'
            }
        }
        საფეხური('ტესტი') {
            ნაბიჯები {
                echo 'ტესტირება...'
            }
        }
    }
    // გაშვება კონკრეტული დირექტორიის ცვლილებისას (საჭიროა SCM API და Job DSL პლაგინები)
    triggers {
        pollSCM('H * * * *') // ყოველ წუთში გამოკითხვა
    }
    ვარიანტები {
        skipChanges() // თუ ცვლილებები არ არის, ტრიგერები გამოტოვე
    }
}

GitHub Actions-ის გამოყენებით:

# .github/workflows/ci.yml

სახელი: CI პაიპლაინი

მოწყობა:
  push:
    # გაშვება კონკრეტული გზების ცვლილებისას
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # იგნორირება docs/ დირექტორიაში ცვლილებების

სამუშაოები:
  მშენებლობა-და-ტესტი:
    მუშაობს-ზოლაზე: ubuntu-latest
    ნაბიჯები:
      - სახელი: კოდის გადამოწმება
        გამოიყენება: actions/checkout@v3
      - სახელი: მშენებლობა
        გაშვება: echo "მშენებლობა..."
      - სახელი: ტესტი
        გაშვება: echo "ტესტირება..."

ეს საშუალებას აძლევს გაშვათ მხოლოდ საჭირო ნაწილები პაიპლაინის ან მთელი პაიპლაინის სრული გაშვება, რაც ხარჯავს გამოთვლით რესურსებს და დროს. ზუსტი სინტაქსი და შესაძლებლობები დამოკიდებულია კონკრეტულ CI/CD სისტემაზე.