Bagikan melalui


Mulai cepat: Membuat alur kerja GitHub untuk menerbitkan aplikasi

Dalam mulai cepat ini, Anda akan mempelajari cara membuat alur kerja GitHub untuk menerbitkan aplikasi .NET Anda dari kode sumber. Secara otomatis menerbitkan aplikasi .NET Anda dari GitHub ke tujuan disebut sebagai penyebaran berkelanjutan (CD). Ada banyak tujuan yang mungkin untuk menerbitkan aplikasi, dalam mulai cepat ini Anda akan menerbitkan ke Azure.

Prasyarat

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

Menambahkan profil penerbitan

Untuk menerbitkan aplikasi ke Azure, buka portal Azure untuk instans App Service aplikasi. Di Gambaran Umum sumber daya, pilih Dapatkan profil publikasi dan simpan *. TerbitkanPengajuan file secara lokal.

Azure Portal, App Service resource: Get publish profile

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 / Settings / Secret: Add new repository secret

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:

  • menentukan name: publish nama, "terbitkan" akan muncul dalam lencana status alur kerja.

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

    on:
      push:
        branches: [ production ]
    
    • Dipicu ketika push terjadi pada production cabang.
  • 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-versionactions/setup-dotnet@v3 GitHub Action.
  • Simpul jobs menyusun langkah-langkah untuk diambil 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, 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 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: Create status badge

  4. Pilih tombol Salin markdown lencana status.

    GitHub: Copy status badge Markdown

  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

Lulus Gagal Tidak ada status
GitHub: publish passing badge GitHub: publish failing badge GitHub: publish no-status badge

Lihat juga

Langkah berikutnya