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_WORKSPACE
altı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
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
Ö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ı
Örnek iş akışı dosyaları
ve
İş 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ş
${{ 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:
- dotnet iş yükü yükleme
- dotnet restore
- dotnet derleme
- dotnet test
- dotnet publish
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:
Hızlı Başlangıç:
- Hızlı Başlangıç: Derleme doğrulaması oluşturma GitHub Action
- Hızlı Başlangıç: GitHub Eylem test doğrulaması oluşturma
- Hızlı Başlangıç: Yayımlama uygulaması oluşturma GitHub Action
- Hızlı Başlangıç: GitHub Action güvenlik taraması oluşturma
Öğretici(ler):