Aracılığıyla paylaş


Hızlı Başlangıç: Derleme doğrulama GitHub iş akışı oluşturma

Bu hızlı başlangıçta, .NET kaynak kodunuzun GitHub'da derlenmesini doğrulamak için GitHub iş akışı oluşturmayı öğreneceksiniz. .NET kodunuzu derlemek, kodunuzda güncelleştirmelerin kalitesini sağlamaya yardımcı olmak için atabileceğiniz en temel doğrulama adımlarından biridir. Kod derlenmiyorsa (veya derlenmiyorsa), bu kolay bir caydırıcıdır ve kodun düzeltilmesi gerektiğinin net bir işareti olmalıdır.

Önkoşullar

  • Bir GitHub hesabı.
  • .NET kaynak kodu deposu.

İş akışı dosyası oluşturma

GitHub deposunda,.github/workflows dizinine yeni bir YAML dosyası ekleyin. İş akışının amacını açıkça gösterecek anlamlı bir dosya adı seçin. Daha fazla bilgi için bkz . İş akışı dosyası.

Önemli

GitHub, iş akışı oluşturma dosyalarının .github/workflows dizinine yerleştirilmesini gerektirir.

İş akışı dosyaları genellikle aracılığıyla bir veya daha fazla GitHub Eyleminin bileşimini jobs.<job_id>/steps[*]tanımlar. Daha fazla bilgi için bkz . GitHub Actions için iş akışı söz dizimi.

build-validation.yml adlı yeni bir dosya oluşturun, aşağıdaki YML içeriğini kopyalayıp içine yapıştırın:

name: build

on:
  push:
  pull_request:
    branches: [ main ]
    paths:
    - '**.cs'
    - '**.csproj'

env:
  DOTNET_VERSION: '6.0.401' # The .NET SDK version to use

jobs:
  build:

    name: build-${{matrix.os}}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macOS-latest]

    steps:
    - uses: actions/checkout@v3
    - name: Setup .NET Core
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: ${{ env.DOTNET_VERSION }}

    - name: Install dependencies
      run: dotnet restore
      
    - name: Build
      run: dotnet build --configuration Release --no-restore

Önceki iş akışı bileşiminde:

  • name: build adı tanımlar, "derleme" iş akışı durumu rozetlerinde görünür.

    name: build
    
  • Düğüm, on iş akışını tetikleyen olayları gösterir:

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • .cs veya .csproj dosya uzantılarıylabiten dosyaların değiştiği dalda main veya pusholuştuğunda tetiklenen.pull_request
  • Düğüm, env adlandırılmış ortam değişkenlerini (env var) tanımlar.

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • Ortam değişkenine DOTNET_VERSION değeri '6.0.401'atanır. Ortam değişkenine daha sonra GitHub Eyleminin dotnet-versionactions/setup-dotnet@v3 belirtilmesi için başvurulur.
  • Düğüm, jobs iş akışının atılması gereken adımları oluşturur.

    jobs:
      build:
    
        name: build-${{matrix.os}}
        runs-on: ${{ matrix.os }}
        strategy:
          matrix:
            os: [ubuntu-latest, windows-latest, macOS-latest]
    
        steps:
        - uses: actions/checkout@v3
        - name: Setup .NET Core
          uses: actions/setup-dotnet@v3
          with:
            dotnet-version: ${{ env.DOTNET_VERSION }}
    
        - name: Install dependencies
          run: dotnet restore
          
        - name: Build
          run: dotnet build --configuration Release --no-restore
    
    • adlı tek bir iş build-<os> vardır ve burada <os> işletim sistemi adıdır strategy/matrix. name ve runs-on öğeleri içindeki her değer için dinamiktirmatrix/os. Bu, Ubuntu, Windows ve macOS'un en son sürümlerinde çalışır.

    • .NET SDK'sını actions/setup-dotnet@v3 ortam değişkeninden DOTNET_VERSION belirtilen sürümle ayarlamak için GitHub Eylemi gereklidir.

    • (İsteğe bağlı olarak) .NET iş yükünüze bağlı olarak ek adımlar gerekebilir. Bunlar bu örnekten çıkarılır, ancak uygulamalarınızı oluşturmak için ek araçların yüklenmesi gerekebilir.

      • Örneğin, Önceden Derleme (AoT) derlemesiyle bir ASP.NET Core Blazor WebAssembly uygulaması oluştururken, geri yükleme/derleme/yayımlama işlemlerini çalıştırmadan önce ilgili iş yükünü yüklersiniz.
      - name: Install WASM Tools Workload
        run: dotnet workload install wasm-tools
      

      .NET iş yükleri hakkında daha fazla bilgi için bkz dotnet workload install. .

    • dotnet restore komutu çağrılır.

    • dotnet build komutu çağrılır.

Bu durumda, bir iş akışı dosyasını, uygulama oluşturmanın çeşitli adımlarını temsil eden bir oluşturma olarak düşünün. Çoğu GitHub Eylemi bağlamında kullanılabilen birçok .NET CLI komutu vardır.

İş akışı durumu oluşturma rozeti

GitHub depolarının, depo dizininin kökünde bir README.md dosyası olması yaygın bir sıfattır. Benzer şekilde, çeşitli iş akışları için en son durumu bildirmek de güzeldir. Tüm iş akışları, README.md dosyasında görsel olarak çekici olan bir durum rozeti oluşturabilir. İş akışı durumu rozetini eklemek için:

  1. GitHub deposundan Eylemler gezinti seçeneğini belirleyin.

  2. Tüm depo iş akışları sol tarafta görüntülenir, istediğiniz iş akışını ve üç nokta (...) düğmesini seçin.

    • Üç nokta (...) düğmesi, seçili iş akışı için menü seçeneklerini genişletir.
  3. Durum oluştur rozet menü seçeneğini belirleyin.

    GitHub: Create status badge

  4. Durumu kopyala rozeti Markdown düğmesini seçin.

    GitHub: Copy status badge Markdown

  5. Markdown'ı README.md dosyasına yapıştırın, dosyayı kaydedin, işleyin ve değişiklikleri gönderin.

Daha fazla bilgi için bkz . İş akışı durumu ekleme rozeti.

Örnek derleme iş akışı durumu rozeti

Geçir -erek Başarısız Durum yok
GitHub: build passing badge GitHub: build failing badge GitHub: build no-status badge

Ayrıca bkz.

Sonraki adımlar