GitHub Actions ve .NET

Bu genel bakışta GitHub Actions .NET uygulama geliştirmede hangi rolü oynadığını öğreneceksiniz. GitHub Actions, kaynak kod depolarınızın sürekli tümleştirmeyi (CI) ve sürekli teslimi (CD) otomatikleştirmesine olanak sağlar. Bunun ötesinde GitHub Actions, kod incelemeleri, dal yönetimi ve sorunu önceliklendirme ile otomasyona yönelik kancalar sağlayan daha gelişmiş senaryoları kullanıma sunar. GitHub'daki .NET kaynak kodunuzla GitHub Actions'dan birçok şekilde yararlanabilirsiniz.

GitHub Actions (GitHub İşlemleri)

GitHub Actions aşağıdakiler gibi tek başına komutları temsil eder:

  • eylemler/kullanıma alma - Bu eylem, iş akışınızın depoya erişebilmesi için $GITHUB_WORKSPACEaltında deponuzu kullanıma alır.
  • actions/setup-dotnet - Bu eylem eylemlerde kullanmak üzere bir .NET CLI ortamı ayarlar.
  • dotnet/versionsweeper - Bu eylem .NET depolarını .NET'in destek dışı hedef sürümleri için süpürür.

Bu komutlar tek bir eyleme yalıtılmış olsa da, iş akışı oluşturmaile güçlü olur. İş akışı oluşturmada, iş akışını tetikleyen olayları tanımlarsınız. Bir iş akışı çalıştırıldıktan sonra, gerçekleştirmesi çeşitli işleri vardır. Her iş herhangi bir sayıda adımtanımlar. adımları GitHub Actions'a temsilci veya alternatif olarak komut satırı betiklerini çağırmaktır.

Daha fazla bilgi için, GitHub Actions'a Giriş bölümünebakın. bir iş akışı dosyasını, bir uygulamayı derlemek, test etmek ve/veya yayımlamak için çeşitli adımları temsil eden bir oluşturma olarak düşünün. birçok .NET CLI komutu kullanılabilir ve bunların çoğu GitHub Eylemi bağlamında kullanılabilir.

Özel GitHub Actions

Pazar Yeribirçok GitHub Eylemi varken, kendi eyleminizi yazmak isteyebilirsiniz. .NET uygulamalarını çalıştıran GitHub Actions oluşturabilirsiniz. Daha fazla bilgi için bkz. Öğreticisi: .NETile GitHub Eylemi Oluşturma.

İş akışı dosyası

GitHub Actions bir iş akışı dosyası aracılığıyla kullanılır. İş akışı dosyası, deponun .github/workflows dizininde bulunmalıdır ve YAML (*.yml veya *.yaml) olması beklenir. İş akışı dosyalarıiş akışı bileşimini tanımlar. İş akışı, bir veya daha fazla işten oluşan yapılandırılabilir bir otomatik işlemdir. Daha fazla bilgi için bkz. GitHub Actionsiçin İş Akışı söz dizimi.

Örnek iş akışı dosyaları

ve hızlı başlangıçları öğretici olarak sağlanan .NET iş akışı dosyalarının birçok örneği vardır. İş akışı dosya adlarının birkaç iyi örneği aşağıda verilmiştir:

İş Akışı dosya adı

Açıklama

Kaynak kodu derler (veya oluştururlar). Kaynak kod derlenmiyorsa, bu başarısız olur.

Depo içindeki birim testlerini çalıştırır. Testleri çalıştırmak için önce kaynak kodun derlenmesi gerekir; bu hem derleme hem de test iş akışıdır (build-validation.yml iş akışının yerini alır). Birim testlerinin başarısız olmasının iş akışı hatasına neden olur.

Paketler ve kaynak kodu bir hedefe yayımlar.

Kodunuzu güvenlik açıkları ve kodlama hataları için analiz eder. Bulunan tüm güvenlik açıkları hataya neden olabilir.

Şifrelenmiş sırlar

İş akışı dosyalarınızda şifrelenmiş gizli bilgileri kullanmak için, bağlam nesnesinden iş akışı ifadesi söz dizimini kullanarak gizli bilgilere erişirsiniz.

${{ secrets.MY_SECRET_VALUE }} # The MY_SECRET_VALUE must exist in the repository as a secret

Gizli değerler hiçbir zaman günlüklere yazdırılmaz. Bunun yerine, adları değerlerini temsil eden bir yıldız işaretiyle yazdırılır. Örneğin, her adım bir iş kapsamında çalıştırıldığında, kullandığı tüm değerler eylem günlüğüne çıktı olarak kaydedilir. Gizli değerler aşağıdakine benzer şekilde görüntülenir:

MY_SECRET_VALUE: ***

Önemli

secrets bağlamı, kapsamı depo, dal ve eylem olarak belirlenmiş GitHub kimlik doğrulama belirtecini sağlar. GitHub tarafından kullanıcı müdahalesi olmadan sağlanır:

${{ secrets.GITHUB_TOKEN }}

Daha fazla bilgi için bkz. İş akışında şifrelenmiş gizli bilgileri kullanma.

Etkinlikler

İş akışları birçok farklı olay türü tarafından tetiklenir. En yaygın olan Web kancası olaylarına ek olarak zamanlanmış olaylar ve el ile gerçekleştirilen olaylar da vardır.

Örnek webhook etkinliği

Aşağıdaki örnekte, bir iş akışı için web kancası olay tetikleyicisinin nasıl belirtilmesi gösterilmektedir:

name: code coverage

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main, staging

jobs:
  coverage:

    runs-on: ubuntu-latest

    # steps omitted for brevity

Önceki iş akışında, push ve pull_request olayları iş akışının çalıştırılmasını tetikler.

Örnek zamanlanmış olay

Aşağıdaki örnek, bir iş akışı için cron işi tetikleyicisinin nasıl belirtileceğini göstermektedir.

name: scan
on:
  schedule:
  - cron: '0 0 1 * *'
  # additional events omitted for brevity

jobs:
  build:
    runs-on: ubuntu-latest

    # steps omitted for brevity

Önceki iş akışında, schedule olayı, iş akışının her ayın ilk gününde çalıştırılmasını tetikleyecek olan cron'i '0 0 1 * *''yi belirtir. İş akışlarını zamanlamaya göre çalıştırmak, çalıştırılması uzun süren veya daha az dikkat gerektiren eylemler gerçekleştiren iş akışları için harikadır.

Örnek manuel olay

Aşağıdaki örnekte, bir iş akışı için el ile olay tetikleyicisinin nasıl belirtilmesi gösterilmektedir:

name: build
on:
  workflow_dispatch:
    inputs:
      reason:
        description: 'The reason for running the workflow'
        required: true
        default: 'Manual run'
  # additional events omitted for brevity

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: 'Print manual run reason'
        if: ${{ github.event_name == 'workflow_dispatch' }}
        run: |
          echo 'Reason: ${{ github.event.inputs.reason }}'

    # additional steps omitted for brevity

Önceki iş akışında, workflow_dispatch olayı bir reason'i girdi olarak ister. GitHub bunu görür ve kullanıcı arabirimi dinamik olarak değiştirerek kullanıcıdan iş akışını el ile çalıştırma nedenini belirtmesini ister. steps, kullanıcıdan sağlanan nedeni yazdırır.

Daha fazla bilgi için bkz.iş akışlarını tetikleyen olaylar .

.NET CLI

.NET komut satırı arabirimi (CLI), .NET uygulamalarını geliştirmeye, oluşturmaya, çalıştırmaya ve yayımlamaya yönelik platformlar arası bir araç zinciridir. .NET CLI, bir iş akışı dosyasındaki tek tek run parçası olarak steps için kullanılır. Ortak komut şunlardır:

Daha fazla bilgi için bkz. .NET CLI'ya genel bakış.

Ayrıca bkz.

.NET ile GitHub Actions'a daha ayrıntılı bir bakış için aşağıdaki kaynakları göz önünde bulundurun: