Bagikan melalui


Mulai cepat: Membuat alur kerja GitHub untuk menerbitkan aplikasi

Dalam panduan singkat ini, Anda akan mempelajari cara membuat rangkaian kerja GitHub untuk mengunggah aplikasi .NET Anda dari kode sumber. Secara otomatis menerbitkan aplikasi .NET Anda dari GitHub ke tujuan disebut sebagai penyebaran berkelanjutan (CD). Ada banyak kemungkinan tujuan untuk menerbitkan sebuah aplikasi, dalam panduan memulai cepat ini Anda akan menerbitkannya ke Azure.

Prasyarat

  • Akun GitHub.
  • Repositori kode sumber .NET.
  • Sebuah akun Azure dengan langganan aktif. Buat akun secara gratis.
  • Aplikasi web ASP.NET Core.
  • Sumber daya Azure App Service.

Tambahkan profil publikasi

Untuk menerbitkan aplikasi ke Azure, buka portal Microsoft Azure untuk instans App Service aplikasi. Pada halaman Gambaran Umum sumber daya, pilih Dapatkan profil publikasi dan simpan file .PublishSetting secara lokal.

Portal Microsoft Azure, sumber daya App Service: Dapatkan profil penerbitan

Peringatan

Profil penerbitan berisi informasi sensitif, seperti kredensial untuk mengakses sumber daya Azure App Service Anda. Informasi ini harus selalu diperlakukan dengan sangat hati-hati.

Di repositori GitHub, navigasikan ke Pengaturan dan pilih Rahasia dari menu navigasi kiri. Pilih Rahasia repositori baru, untuk menambahkan rahasia baru.

GitHub / Pengaturan / Rahasia: Tambahkan rahasia repositori baru

Masukkan AZURE_PUBLISH_PROFILE sebagai Nama, dan tempelkan konten XML dari profil terbitkan ke dalam area teks Nilai . Pilih Tambahkan rahasia. Untuk informasi selengkapnya, lihat Rahasia terenkripsi.

Membuat file alur kerja

Di repositori GitHub, tambahkan file YAML baru ke direktori .github/workflows . Pilih nama file yang bermakna, sesuatu yang akan dengan jelas menunjukkan apa yang dimaksudkan alur kerja. Untuk informasi selengkapnya, lihat File alur kerja.

Penting

GitHub mengharuskan file komposisi alur kerja ditempatkan dalam direktori .github/workflows .

File alur kerja biasanya menentukan komposisi satu atau beberapa GitHub Action melalui jobs.<job_id>/steps[*]. Untuk informasi selengkapnya, lihat Sintaks alur kerja untuk Tindakan GitHub.

Buat file baru bernama publish-app.yml, salin dan tempel konten YML berikut ke dalamnya:

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'

Dalam komposisi alur kerja sebelumnya:

  • Mendefinisikan name: publish nama, "publikasi" akan terlihat pada lencana status alur kerja.

    name: publish
    
  • Simpul on menandakan peristiwa yang memicu alur kerja:

    on:
      push:
        branches: [ production ]
    
    • Dipicu ketika push terjadi di cabang production.
  • Simpul env mendefinisikan variabel lingkungan bernama (env var).

    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
    
    • Variabel AZURE_WEBAPP_NAME lingkungan diberi nilai DotNetWeb.
    • Variabel AZURE_WEBAPP_PACKAGE_PATH lingkungan diberi nilai '.'.
    • Variabel DOTNET_VERSION lingkungan diberi nilai '6.0.401'. Variabel lingkungan kemudian dirujuk untuk menentukan dotnet-version dari actions/setup-dotnet@v3 GitHub Action.
  • Node jobs membangun langkah-langkah yang diperlukan untuk diambil oleh alur kerja.

    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'
    
    • Ada satu pekerjaan tunggal, bernama publish yang akan berjalan pada versi terbaru Ubuntu.
    • actions/setup-dotnet@v3 GitHub Action digunakan untuk menyiapkan .NET SDK dengan versi yang ditentukan dari DOTNET_VERSION variabel lingkungan.
    • Perintah dotnet restore dipanggil.
    • Perintah dotnet build dipanggil.
    • Perintah dotnet publish dipanggil.
    • Perintah dotnet test dipanggil.
    • azure/webapps-deploy@v2 GitHub Action menyebarkan aplikasi dengan parameter yang diberikan publish-profile dan package.
      • publish-profile ditetapkan dari AZURE_PUBLISH_PROFILE rahasia repositori.

Membuat lencana status alur kerja

Nomenklatur umum bagi repositori GitHub untuk memiliki file README.md di akar direktori repositori. Demikian juga, ada baiknya untuk melaporkan status terbaru untuk berbagai alur kerja. Semua alur kerja dapat menghasilkan lencana status, yang menarik secara visual dalam file README.md . Untuk menambahkan lencana status alur kerja:

  1. Dari repositori GitHub pilih opsi navigasi Tindakan .

  2. Semua alur kerja repositori ditampilkan di sisi kiri, pilih alur kerja yang diinginkan dan tombol elipsis (...).

    • Tombol elipsis (...) memperluas opsi menu untuk alur kerja yang dipilih.
  3. Pilih opsi menu Buat lencana status .

    GitHub: Membuat lencana status

  4. Pilih tombol Salin markdown lencana status .

    GitHub: Salin markdown lencana status

  5. Tempelkan Markdown ke dalam file README.md , simpan file, terapkan, dan dorong perubahan.

Untuk informasi selengkapnya, lihat Menambahkan lencana status alur kerja.

Contoh lencana status alur kerja penerbitan

Penerusan Gagal Tidak ada status
GitHub: menerbitkan lencana passing GitHub: menerbitkan lencana kegagalan GitHub: menerbitkan lencana tanpa status

Lihat juga

Langkah selanjutnya