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.
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.
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 padaproduction
cabang.
- Dipicu ketika
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 nilaiDotNetWeb
. - Variabel
AZURE_WEBAPP_PACKAGE_PATH
lingkungan diberi nilai'.'
. - Variabel
DOTNET_VERSION
lingkungan diberi nilai'6.0.401'
. Variabel lingkungan kemudian dirujuk untuk menentukandotnet-version
actions/setup-dotnet@v3
GitHub Action.
- Variabel
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 dariDOTNET_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 diberikanpublish-profile
danpackage
.publish-profile
ditetapkan dariAZURE_PUBLISH_PROFILE
rahasia repositori.
- Ada satu pekerjaan, bernama
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:
Dari repositori GitHub pilih opsi navigasi Tindakan .
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.
Pilih opsi menu Buat lencana status.
Pilih tombol Salin markdown lencana status.
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 |
---|---|---|