Ortam Değişkenleri ve Sırlar

Machine Learning için CI/CD

Ravi Bhadauria

Machine Learning Engineer

Bağlamlar

  • Ön tanımlı değişkenler ve veriler hakkında bilgiye erişin
    • iş akışı çalışmaları
    • değişkenler
    • runner ortamları
    • işler ve adımlar
  • Bağlamlara ${{ context.XXX }} ifade söz dizimiyle erişilir
  • Bu derste kullanılan bağlamlar
    • github: iş akışı çalışması bilgileri
    • env: iş akışında ayarlanan değişkenler
    • secrets: iş akışına sunulan adlar ve değerler
    • job: geçerli iş bilgileri
    • runner: makine bilgileri
1 https://docs.github.com/en/actions/learn-github-actions/contexts
Machine Learning için CI/CD

Değişkenler

  • Hassas olmayan bilgileri düz metin olarak saklayın
    • derleyici bayrakları, kullanıcı adları, dosya yolları
  • env anahtarında değer olarak tanımlanır
  • Kapsam, tanımlandığı seviyeye göre küresel/yerel olur
  • env bağlamından ${{ env.ENV_VAR }} ile erişilir
name: Greeting on variable day
# Global env
env:
  Greeting: Hello

jobs: greeting_job: runs-on: ubuntu-latest # Local env: scoped to greeting_job env: First_Name: Ravi
steps: - run: | echo "${{ env.Greeting }} \ ${{ env.First_Name }}."
Machine Learning için CI/CD

Sırlar

  • Hassas bilgileri şifrelenmiş şekilde saklayın
    • parolalar, API anahtarları
  • Değerlere secrets bağlamıyla erişin
    • ${{ secrets.SuperSecret }}
  • Girdi veya ortam değişkeni olarak saklanabilir
steps:
  - name: Hello world action
    env: # Sırrı bir ortam değişkeni olarak ayarla
      super_secret: ${{ secrets.SuperSecret }}

with: # Ya da girdi olarak super_secret: ${{ secrets.SuperSecret }}
  • Sırrı yazdırma

    steps:
    - name: Print secret
      run: |
        echo "my secret is \
        ${{ secrets.SuperSecret }}"
    
  • Çıktı

İş akışı günlüğünde gerçek değer yerine *** yazdırıldığını gösteren görsel

Machine Learning için CI/CD

Gizli anahtarları ayarlama

Depo açılış sayfasındaki ayarlar sekmesini gösteren görsel

  • Security > Secrets and Variables > Actions yoluna gidin

Gizli anahtar sekmesinin nasıl seçileceğini gösteren görsel

Machine Learning için CI/CD

Gizli anahtarları ayarlama

Gizli anahtar adı ve değerinin nasıl ayarlanacağını gösteren görsel

Machine Learning için CI/CD

GITHUB_TOKEN gizli anahtarı

  • GitHub Actions tarafından sağlanan yerleşik gizli anahtar
  • İş akışı eylemleri için kullanılır
    • Depoyu klonlama ve kodu getirme
    • Issue ve pull request açma/kapatma
    • Issue ve pull request’lere yorum yapma
  • Her GitHub Actions iş akışında otomatik olarak bulunur
    • ${{ secrets.GITHUB_TOKEN }} ile erişilir
  • İzinler uygun düzeyde ayarlanabilir
Machine Learning için CI/CD

Örnek: pull request’e yorum yapma

  • PR’lerde yorum yazma izni verin
permissions: 
  pull-requests: write
  • Yetkilendirme için GITHUB_TOKEN kullanın
permissions: 
  pull-requests: write 
steps:
  - name: Comment PR
    uses: thollander/actions-comment-pull-request@v2
    with:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      message: |
        Hello world ! :wave:

Pull request sayfasında github-actions botunun otomatik yorumunu gösteren kesit

1 https://gist.github.com/rbhadauria29/6d7fc51944b4fb48425c3c307fec77c6
Machine Learning için CI/CD

Haydi pratik yapalım!

Machine Learning için CI/CD

Preparing Video For Download...