Sdílet prostřednictvím


GitHub Actions a .NET

V tomto přehledu se dozvíte, jakou roli GitHub Actions hrát při vývoji aplikací .NET. GitHub Actions umožňuje úložištím zdrojového kódu automatizovat kontinuální integraci (CI) a průběžné doručování (CD). Kromě toho GitHub Actions zpřístupňuje pokročilejší scénáře – poskytuje háky pro automatizaci pomocí kontrol kódu, správy větví a třídění problémů. Pomocí zdrojového kódu .NET na GitHubu můžete gitHub Actions využívat mnoha způsoby.

Akce na GitHubu

GitHub Actions představují samostatné příkazy, například:

  • akcí/checkout – tato akce checkoutuje vaše úložiště pod $GITHUB_WORKSPACE, aby k němu mohl váš pracovní postup přistupovat.
  • action/setup-dotnet – Tento action nastavuje prostředí .NET CLI pro použití v akcích.
  • dotnet/versionsweeper – tato akce prochází úložiště .NET a hledá nepodporované cílové verze rozhraní .NET.

I když jsou tyto příkazy izolované na jednu akci, jsou výkonné prostřednictvím složení pracovního postupu. Při sestavování pracovního postupu definujete události, které aktivují pracovní postup. Po spuštění pracovního postupu existují různé úlohy, které má vykonávat. Každá úloha definuje libovolný počet kroků. Kroky delegovat na GitHub Actions nebo případně volat skripty příkazového řádku.

Další informace najdete v tématu Úvod do GitHub Actions. Soubor pracovního postupu si můžete představit jako složení, které představuje různé kroky pro sestavení, testování nebo publikování aplikace. K dispozici je mnoho příkazů .NET CLI, z nichž většina se dá použít v kontextu akce GitHubu.

Vlastní Akce GitHubu

Namarketplace Marketplace je k dispozici spousta akcí GitHub Actions, ale možná budete chtít vytvořit vlastní. Můžete vytvořit GitHub Actions, které spouštějí aplikace .NET. Další informace najdete v tématu Kurz: Vytvoření akce GitHubu pomocí rozhraní .NET.

Soubor pracovního postupu

GitHub Actions se využívají prostřednictvím workflow souboru. Soubor pracovního postupu musí být umístěný v adresáři .github/workflows úložiště a očekává se, že bude YAML (*.yml nebo *.yaml). Soubory pracovního postupu definují složení pracovního postupu. Pracovní postup je konfigurovatelný automatizovaný proces tvořený jednou nebo více úlohami. Další informace najdete v tématu Syntaxe pracovního postupu pro GitHub Actions.

Příklady souborů pracovního postupu

Najdete mnoho příkladů souborů pracovních postupů .NET ve formě kurzů a rychlých startů. Tady je několik dobrých příkladů názvů souborů pracovního postupu:

název souboru pracovního postupu

popis

Zkompiluje (nebo sestaví) zdrojový kód. Pokud se zdrojový kód nekompiluje, dojde k selhání.

Vykonává jednotkové testy v úložišti. Aby bylo možné spouštět testy, musí se nejprve zkompilovat zdrojový kód – to je skutečně sestavení i testovací pracovní postup (nahrazuje pracovní postup build-validation.yml). Neúspěšné testy jednotek způsobí selhání pracovního postupu.

Zabalí a publikuje zdrojový kód do určeného místa.

Analyzuje kód z hlediska ohrožení zabezpečení a chyb kódování. Všechna zjištěná ohrožení zabezpečení můžou způsobit selhání.

Šifrované tajné kódy

Pokud chcete v souborech pracovního postupu používat šifrované tajné kódy, odkazujete na tajné kódy pomocí syntaxe výrazu pracovního postupu z objektu kontextu secrets.

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

Tajné hodnoty se v protokolech nikdy nevytisknou. Místo toho se jejich názvy vytisknou hvězdičkou představující jejich hodnoty. Například při každém spuštění jednotlivých kroků v rámci úlohy jsou všechny hodnoty, které používá, výstupem protokolu akcí. Tajné hodnoty se zobrazují podobně jako následující:

MY_SECRET_VALUE: ***

Důležitý

Kontext secrets poskytuje ověřovací token GitHubu, který je vymezený na úložiště, větev a akci. Poskytuje ho GitHub bez zásahu uživatele:

${{ secrets.GITHUB_TOKEN }}

Další informace najdete v tématu Použití šifrovaných tajných kódů v pracovním postupu.

Dění

Pracovní postupy se aktivují mnoha různými typy událostí. Kromě událostí webhooku, které jsou nejběžnější, existují také naplánované události a ruční události.

Příklad události webhooku

Následující příklad ukazuje, jak zadat trigger události webhooku pro pracovní postup:

name: code coverage

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

jobs:
  coverage:

    runs-on: ubuntu-latest

    # steps omitted for brevity

V předchozím pracovním postupu se události push a pull_request aktivují spuštění pracovního postupu.

Příklad naplánované události

Následující příklad ukazuje, jak zadat spouštěč události pro naplánovanou úlohu (cron job) pro pracovní postup:

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

jobs:
  build:
    runs-on: ubuntu-latest

    # steps omitted for brevity

V předchozím pracovním postupu lze díky události schedulecron'0 0 1 * *' aktivovat pracovní postup, který se spustí prvního dne každého měsíce. Spouštění pracovních postupů podle plánu je skvělé pro pracovní postupy, které dlouho trvá, nebo provádějí akce, které vyžadují méně častou pozornost.

Příklad ruční události

Následující příklad ukazuje, jak zadat ruční aktivační událost pro pracovní postup:

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

Událost workflow_dispatch v předchozím pracovním postupu vyžaduje reason jako vstup. GitHub to a jeho uživatelské rozhraní dynamicky mění, aby uživateli zobrazil výzvu k zadání důvodu ručního spuštění pracovního postupu. steps zobrazí zadaný důvod od uživatele.

Další informace naleznete v tématu Události, které aktivují pracovní postupy.

.NET CLI

Rozhraní příkazového řádku .NET (CLI) je sada nástrojů pro různé platformy pro vývoj, vytváření, spouštění a publikování aplikací .NET. Příkazový řádek .NET se používá k run v rámci jednotlivých steps v souboru pracovního postupu. Mezi běžné příkazy patří:

Další informace najdete v přehledu rozhraní příkazového řádku .NET CLI .

Viz také

Podrobnější informace o GitHub Actions s .NET najdete v následujících zdrojích informací: