Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, .NET uygulamanızı kaynak koddan yayımlamak için GitHub iş akışı oluşturmayı öğreneceksiniz. .NET uygulamanızı GitHub'dan bir hedefe otomatik olarak yayımlamak, sürekli dağıtım (CD) olarak adlandırılır. Bir uygulamayı yayımlamak için birçok olası hedef vardır, bu hızlı başlangıçta Azure'da yayımlayacaksınız.
Önkoşullar
- Bir GitHub hesabı.
- .NET kaynak kodu deposu.
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- bir ASP.NET Core web uygulaması.
- Azure App Service kaynağı.
Yayımlama profili ekle
Uygulamayı Azure'da yayımlamak için uygulamanın App Service örneğinin Azure portalını açın. Kaynak bölümünde Genel Bakış'a gidin, Yayımlama profilini al'ı seçin ve .PublishSetting dosyasını yerel olarak kaydedin.
Uyarı
Yayımlama profili, Azure App Service kaynağınıza erişmek için kullanılan kimlik bilgileri gibi hassas bilgiler içerir. Bu bilgiler her zaman çok dikkatli bir şekilde ele alınmalıdır.
GitHub deposunda Ayarlar'a gidin ve sol gezinti menüsünden Gizli Diziler'i seçin. Yeni bir gizli dizi eklemek için Yeni depo gizli dizisini seçin.
AZURE_PUBLISH_PROFILE alanına Ad olarak girin ve yayımlama profilindeki XML içeriğini Değer metin alanına yapıştırın.
Add secret öğesini seçin. Daha fazla bilgi için bkz Şifrelenmiş sırlar.
İş 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ı, bir veya daha fazla GitHub Eylemi bileşimini jobs.<job_id>/steps[*] aracılığıyla tanımlar. Daha fazla bilgi için bkz. GitHub Actions için iş akışı söz dizimi.
publish-app.yml adlı yeni bir dosya oluşturun, aşağıdaki YML içeriğini kopyalayıp içine yapıştırın:
name: publish
on:
push:
branches: [ production ]
env:
AZURE_WEBAPP_NAME: DotNetWeb
AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
publish:
runs-on: ubuntu-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: |
cd DotNet.WebApp
dotnet build --configuration Release --no-restore
dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true
- name: Test
run: |
cd DotNet.WebApp.Tests
dotnet test --no-restore --verbosity normal
- uses: azure/webapps-deploy@v2
name: Deploy
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
Önceki iş akışı bileşiminde:
name: publishadı tanımlar, "yayımla" iş akışı durumu rozetlerinde görünür.name: publishDüğüm,
oniş akışını tetikleyen olayları belirtir:on: push: branches: [ production ]-
pushdalında birproductionoluştuğunda tetiklenir.
-
Düğüm,
envadlandırılmış ortam değişkenlerini (env var) tanımlar.env: AZURE_WEBAPP_NAME: DotNetWeb AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use- Ortam değişkenine
AZURE_WEBAPP_NAMEdeğeriDotNetWebatanır. - Ortam değişkenine
AZURE_WEBAPP_PACKAGE_PATHdeğeri'.'atanır. - Ortam değişkenine
DOTNET_VERSIONdeğeri'6.0.401'atanır. Ortam değişkenine daha sonra GitHub Eyleminindotnet-versionactions/setup-dotnet@v3belirtilmesi için başvurulur.
- Ortam değişkenine
Düğüm,
jobsiş akışının atılması gereken adımları oluşturur.jobs: publish: runs-on: ubuntu-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: | cd DotNet.WebApp dotnet build --configuration Release --no-restore dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true - name: Test run: | cd DotNet.WebApp.Tests dotnet test --no-restore --verbosity normal - uses: azure/webapps-deploy@v2 name: Deploy with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'- Ubuntu'nun en son sürümünde çalışacak,
publishadlı tek bir iş vardır. -
actions/setup-dotnet@v3GitHub Eylemi, .NET SDK'sını ortam değişkenindenDOTNET_VERSIONbelirtilen sürümle ayarlamak için kullanılır. -
dotnet restorekomutu çağrılır. -
dotnet buildkomutu çağrılır. -
dotnet publishkomutu çağrılır. -
dotnet testkomutu çağrılır. -
azure/webapps-deploy@v2GitHub Eylemi, uygulamayı verilenpublish-profilevepackageile dağıtır.-
publish-profile, depo sırrındanAZURE_PUBLISH_PROFILEatanır.
-
- Ubuntu'nun en son sürümünde çalışacak,
İş akışı durumu rozeti oluşturma
GitHub depolarında, depo dizininin kökünde README.md dosyasının bulunması yaygın bir uygulamadı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:
GitHub deposundan Eylemler gezinti seçeneğini belirleyin.
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.
Durum oluştur rozet menü seçeneğini belirleyin.
Kopyalama durumu rozeti Markdown düğmesini seçin.
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 yayımlama iş akışı durumu rozeti
| Geçici | Başarısız | Durum yok |
|---|---|---|
|
|
|
|