Bagikan melalui


Tindakan GitHub dan .NET

Dalam gambaran umum ini, Anda akan mempelajari peran apa yang dimainkan GitHub Actions dalam pengembangan aplikasi .NET. GitHub Actions memungkinkan repositori kode sumber Anda mengotomatiskan integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD). Di luar itu, GitHub Actions mengekspos skenario yang lebih canggih—menyediakan kait untuk otomatisasi dengan ulasan kode, manajemen cabang, dan triaging masalah. Dengan kode sumber .NET Anda di GitHub, Anda dapat memanfaatkan GitHub Actions dalam banyak cara.

GitHub Actions

Tindakan GitHub mewakili perintah mandiri, seperti:

  • actions/checkout - Tindakan ini memeriksa repositori Anda di bawah $GITHUB_WORKSPACE, sehingga alur kerja Anda dapat mengaksesnya.
  • actions/setup-dotnet - Tindakan ini menyiapkan lingkungan .NET CLI untuk digunakan dalam tindakan.
  • dotnet/versionsweeper - Tindakan ini menyapu repositori .NET untuk versi target .NET yang tidak didukung.

Meskipun perintah ini diisolasi ke satu tindakan, perintah ini kuat melalui komposisi alur kerja. Dalam komposisi alur kerja, Anda menentukan peristiwa yang memicu alur kerja. Setelah alur kerja berjalan, ada berbagai pekerjaan yang diinstruksikan untuk dilakukan. Setiap pekerjaan menentukan sejumlah langkah. Langkah-langkah mendelegasikan ke GitHub Actions, atau memanggil skrip baris perintah.

Untuk informasi selengkapnya, lihat Pengantar GitHub Actions. Anggaplah file alur kerja sebagai komposisi yang mewakili berbagai langkah untuk membangun, menguji, dan/atau menerbitkan aplikasi. Banyak perintah .NET CLI tersedia, yang sebagian besar dapat digunakan dalam konteks GitHub Action.

Tindakan GitHub Kustom

Meskipun ada banyak GitHub Actions yang tersedia di Marketplace, Anda mungkin ingin menulis sendiri. Anda dapat membuat GitHub Actions yang menjalankan aplikasi .NET. Untuk informasi selengkapnya, lihat Tutorial: Membuat GitHub Action dengan .NET

File alur kerja

GitHub Actions digunakan melalui file alur kerja. File alur kerja harus terletak di direktori .github/workflows repositori, dan diharapkan menjadi YAML (baik *.yml atau *.yaml). File alur kerja menentukan komposisi alur kerja. Alur kerja adalah proses otomatis yang dapat dikonfigurasi yang terdiri dari satu atau beberapa pekerjaan. Untuk informasi selengkapnya, lihat Sintaks alur kerja untuk Tindakan GitHub.

Contoh file alur kerja

Ada banyak contoh file alur kerja .NET yang disediakan sebagai tutorial dan mulai cepat. Berikut adalah beberapa contoh nama file alur kerja yang baik:

Nama file alur kerja

Keterangan

Mengkompilasi (atau membangun) kode sumber. Jika kode sumber tidak dikompilasi, ini akan gagal.

Menjalankan pengujian unit dalam repositori. Untuk menjalankan pengujian, kode sumber harus terlebih dahulu dikompilasi—ini benar-benar alur kerja build dan pengujian (ini akan menggantikan alur kerja build-validation.yml ). Pengujian unit yang gagal akan menyebabkan kegagalan alur kerja.

Paket, dan menerbitkan kode sumber ke tujuan.

Menganalisis kode Anda untuk kerentanan keamanan dan kesalahan pengodean. Setiap kerentanan yang ditemukan dapat menyebabkan kegagalan.

Rahasia terenkripsi

Untuk menggunakan rahasia terenkripsi dalam file alur kerja, Anda mereferensikan rahasia menggunakan sintaks ekspresi alur kerja dari secrets objek konteks.

${{ secrets.MY_SECRET_VALUE }} # The MY_SECRET_VALUE must exist in the repository as a secret

Nilai rahasia tidak pernah dicetak dalam log. Sebagai gantinya, nama mereka dicetak dengan tanda bintang yang mewakili nilainya. Misalnya, karena setiap langkah berjalan dalam pekerjaan, semua nilai yang digunakannya adalah output ke log tindakan. Nilai rahasia dirender mirip dengan yang berikut ini:

MY_SECRET_VALUE: ***

Penting

Konteks menyediakan secrets token autentikasi GitHub yang tercakup ke repositori, cabang, dan tindakan. Ini disediakan oleh GitHub tanpa intervensi pengguna:

${{ secrets.GITHUB_TOKEN }}

Untuk informasi selengkapnya, lihat Menggunakan rahasia terenkripsi dalam alur kerja.

Acara

Alur kerja dipicu oleh berbagai jenis peristiwa. Selain peristiwa Webhook, yang paling umum, ada juga peristiwa terjadwal dan peristiwa manual.

Contoh peristiwa webhook

Contoh berikut menunjukkan cara menentukan pemicu peristiwa webhook untuk alur kerja:

name: code coverage

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main, staging

jobs:
  coverage:

    runs-on: ubuntu-latest

    # steps omitted for brevity

Dalam alur kerja sebelumnya, push peristiwa dan pull_request akan memicu alur kerja berjalan.

Contoh peristiwa terjadwal

Contoh berikut menunjukkan cara menentukan pemicu peristiwa terjadwal (pekerjaan cron) untuk alur kerja:

name: scan
on:
  schedule:
  - cron: '0 0 1 * *'
  # additional events omitted for brevity

jobs:
  build:
    runs-on: ubuntu-latest

    # steps omitted for brevity

Dalam alur kerja sebelumnya, schedule peristiwa menentukan cron'0 0 1 * *' yang akan memicu alur kerja untuk berjalan pada hari pertama setiap bulan. Menjalankan alur kerja sesuai jadwal sangat bagus untuk alur kerja yang membutuhkan waktu lama untuk dijalankan, atau melakukan tindakan yang membutuhkan perhatian yang lebih jarang.

Contoh peristiwa manual

Contoh berikut menunjukkan cara menentukan pemicu peristiwa manual untuk alur kerja:

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

Dalam alur kerja sebelumnya, workflow_dispatch peristiwa memerlukan reason sebagai input. GitHub melihat ini dan UI-nya secara dinamis berubah untuk meminta pengguna memberikan alasan untuk menjalankan alur kerja secara manual. steps akan mencetak alasan yang disediakan dari pengguna.

Untuk informasi selengkapnya, lihat Peristiwa yang memicu alur kerja.

.NET CLI

Antarmuka baris perintah .NET (CLI) adalah toolchain lintas platform untuk mengembangkan, membangun, menjalankan, dan menerbitkan aplikasi .NET. .NET CLI digunakan sebagai run bagian dari individu steps dalam file alur kerja. Perintah umum meliputi:

Untuk informasi selengkapnya, lihat gambaran umum .NET CLI

Lihat juga

Untuk melihat lebih mendalam GitHub Actions dengan .NET, pertimbangkan sumber daya berikut: