Megosztás a következőn keresztül:


GitHub Actions és .NET

Ebben az áttekintésben megtudhatja, hogy a GitHub Actions milyen szerepet játszik a .NET-alkalmazások fejlesztésében. A GitHub Actions lehetővé teszi a forráskódtárak számára a folyamatos integráció (CI) és a folyamatos kézbesítés (CD) automatizálását. Ezen túlmenően a GitHub Actions speciálisabb forgatókönyveket is elérhetővé tesz– így a kódértékelésekkel, az ágkezeléssel és a problémák osztályozásával biztosítja az automatizáláshoz szükséges horgokat. A GitHub .NET-forráskódjával számos módon használhatja a GitHub Actionst.

GitHub Actions

A GitHub Actions önálló parancsokat jelöl, például:

  • műveletek/kivétel – Ez a művelet kijelentkezteti az adattárat a $GITHUB_WORKSPACEalatt, így a munkafolyamat hozzáférhet hozzá.
  • actions/setup-dotnet – Ez a művelet beállít egy .NET CLI-környezetet a műveletekhez való használatra.
  • dotnet/versionsweeper – Ez a művelet a .NET-adattárakat vizsgálja a nem támogatott célverziók után.

Bár ezek a parancsok egyetlen művelethez vannak elkülönítve, hatékonyak munkafolyamat-összeállítási. A munkafolyamat-összeállításban meghatározza a munkafolyamatot kiváltó eseményeket. Ha egy munkafolyamat fut, különböző feladatok végrehajtására van utasítva. Az egyes feladatok tetszőleges számú lépést határoznak meg. A lépések a GitHub Actionsre delegálnak, vagy parancssori szkripteket hívnak meg.

További információ: A GitHub Actionsbemutatása. A munkafolyamat-fájlokat olyan összeállításnak tekintheti, amely az alkalmazások létrehozásának, tesztelésének és/vagy közzétételének különböző lépéseit jelöli. Számos .NET CLI-parancs érhető el, amelyek többsége egy GitHub-művelet kontextusában használható.

Egyéni GitHub-műveletek

Bár rengeteg GitHub Actions érhető el a Marketplace, érdemes lehet sajátot létrehoznia. Létrehozhat .NET-alkalmazásokat futtató GitHub Actions-műveleteket. További információért lásd: Oktatóanyag: GitHub Action létrehozása .NET-tel.

Munkafolyamat-fájl

A GitHub Actions egy munkafolyamat-fájlon keresztül használható. A munkafolyamat-fájlnak az adattár .github/workflows könyvtárában kell lennie, és várhatóan YAML(*.yml vagy *.yaml). A munkafolyamat-fájlok határozzák meg a munkafolyamatok összeállítását. A munkafolyamat egy konfigurálható automatizált folyamat, amely egy vagy több feladatból áll. További információ: GitHub Actionsmunkafolyamat-szintaxisa.

Példa munkafolyamat-fájlokra

Számos példa található a .NET-munkafolyamatfájlokra, oktatóanyagok és rövid útmutatók. Íme néhány jó példa a munkafolyamat-fájlnevekre:

munkafolyamat-fájlnév

Leírás

Lefordítja (vagy összeállítja) a forráskódot. Ha a forráskód nem fordít le, ez sikertelen lesz.

Gyakorolja az egységteszteket az adattárban. A tesztek futtatásához először a forráskódot kell lefordítani – ez valójában egy buildelési és tesztelési munkafolyamat (felülírná a build-validation.yml munkafolyamatot). A sikertelen egységtesztek munkafolyamat-hibát okoznak.

A forráskód csomagolása és közzététele egy célhelyen történik.

Elemzi a kód biztonsági réseit és kódolási hibáit. A felderített biztonsági rések meghibásodást okozhatnak.

Titkosított titkok

Ha titkosított titkos kulcsokat szeretne használni a munkafolyamat-fájlokban, a munkafolyamat-kifejezés szintaxisának használatával hivatkozhat a secrets környezeti objektumból.

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

A titkos értékek soha nem lesznek kinyomtatva a naplókban. Ehelyett a nevüket egy csillaggal nyomtatják ki, amely az értékeiket jelöli. Például, ahogy minden lépés egy feladaton belül fut, az általa használt összes érték a naplóba kerül. A titkos kódok értékei az alábbiakhoz hasonlóan jelennek meg:

MY_SECRET_VALUE: ***

Fontos

A secrets környezet biztosítja a GitHub-hitelesítési jogkivonatot, amely az adattárra, az ágra és a műveletre terjed ki. A GitHub felhasználói beavatkozás nélkül biztosítja:

${{ secrets.GITHUB_TOKEN }}

További információ: Titkosított titkos kódok használata munkafolyamatban.

Események

A munkafolyamatokat számos különböző típusú esemény aktiválja. A leggyakoribb webhookesemények mellett vannak ütemezett és manuális események is.

Példa webhook eseményre

Az alábbi példa bemutatja, hogyan adhat meg webhookesemény-eseményindítót egy munkafolyamathoz:

name: code coverage

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

jobs:
  coverage:

    runs-on: ubuntu-latest

    # steps omitted for brevity

Az előző munkafolyamatban a push és pull_request események aktiválják a munkafolyamat futtatását.

Példa ütemezett eseményre

Az alábbi példa bemutatja, hogyan adható meg ütemezett (cron-feladat) eseményindító egy munkafolyamathoz:

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

jobs:
  build:
    runs-on: ubuntu-latest

    # steps omitted for brevity

Az előző munkafolyamatban a schedule esemény határozza meg a cron'0 0 1 * *'-jét, amely minden hónap első napján elindítja a munkafolyamatot. A munkafolyamatok ütemezés szerinti futtatása olyan munkafolyamatok esetében, amelyek hosszú ideig futnak, vagy olyan műveleteket hajtanak végre, amelyek ritkábban igényelnek figyelmet.

Példa manuális eseményre

Az alábbi példa bemutatja, hogyan adhat meg manuális eseményindítót egy munkafolyamathoz:

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

Az előző munkafolyamatban a workflow_dispatch esemény bemenetként reason igényel. A GitHub ezt és felhasználói felületét dinamikusan módosítva kéri a felhasználót, hogy adja meg a munkafolyamat manuális futtatásának okát. A steps kinyomtatja a felhasználó által megadott okot.

További információ: Munkafolyamatokat aktiváló események.

.NET CLI

A .NET parancssori felület (CLI) egy platformfüggetlen eszközlánc a .NET-alkalmazások fejlesztéséhez, létrehozásához, futtatásához és közzétételéhez. A .NET CLI-t egyéni run részeként használják egy munkafolyamat-fájlban steps. Gyakori parancsok a következők:

További információ: .NET CLI áttekintése.

Lásd még:

A GitHub Actions és a .NET részletesebb megtekintéséhez tekintse meg a következő erőforrásokat: