Gyakorlat – Az éles alkalmazáskép buildelése

Befejeződött

Az előző gyakorlatban elkészítette az előkészítési munkafolyamatot az alkalmazás lemezképének létrehozásához és közzétételéhez. Ebben a leckében egy éles munkafolyamatot hoz létre, amely a címkézett verzió eseményindítót használja.

Diagram that shows the procession from triggers, through three build steps, to the deploy steps in a pipeline.

Ebben a gyakorlatban a következőt kell elvégeznie:

  • Hozza létre a Műveletek munkafolyamatot.
  • Hozza létre az on tag eseményindítót.
  • Hozza létre és küldje el az éles rendszerképet.
  • Személyes hozzáférési jogkivonat (PAT) létrehozása.
  • Aktiválja a címkeeseményt.

A GitHub Actions munkafolyamatának létrehozása

  1. A folyamat létrehozásának megkezdéséhez nyissa meg a GitHub webhelyén található mintaadattár elágaztatását, és válassza a Műveletek lapot.

  2. A bal oldali panelen válassza az Új munkafolyamat lehetőséget.

    Screenshot that shows the New workflow button on the GitHub Actions page.

  3. A Munkafolyamat kiválasztása lapon válassza saját maga a munkafolyamat beállítását.

  4. Másolja és illessze be az alapszintű munkafolyamatot a szerkesztőablakba:

    # This is a basic workflow to help you get started with Actions
    
    name: CI
    
    # Controls when the action will run. Triggers the workflow on push or pull request
    # events but only for the main branch
    on:
      push:
        branches: [ main ]
      pull_request:
        branches: [ main ]
    
    # A workflow run is made up of one or more jobs that can run sequentially or in parallel
    jobs:
      # This workflow contains a single job called "build"
      build:
        # The type of runner that the job will run on
        runs-on: ubuntu-latest
    
        # Steps represent a sequence of tasks that will be executed as part of the job
        steps:
          # Checks out your repository under $GITHUB_WORKSPACE, so your job can access it
          - uses: actions/checkout@v2
    
          # Runs a single command using the runners shell
          - name: Run a one-line script
            run: echo Hello, world!
    
          # Runs a set of commands using the runners shell
          - name: Run a multi-line script
            run: |
              echo Add other actions to build,
              echo test, and deploy your project.
    
  5. A szerkesztőpanel felett nevezze át a fájlt a következőre main.ymlbuild-production.yml: .

  6. Módosítsa a kulcsot a name következőre CIBuild and push the tagged build to production: .

A "be" címke eseményindítójának létrehozása

Módosítsa az alapértelmezett triggereket az on kulcsban.

  1. Távolítsa el a második triggert, és csak a push címkéket hagyja meg.

  2. Cserélje le a branches kulcsot a következő tags kulcsra. Ez a kulcs azt jelenti, hogy a munkafolyamat csak adott címkéken fut. Ebben az esetben a munkafolyamat csak akkor fut, ha a címke követi a mintát, amely magában foglalja a v* következőket: v1.0.0.

    name: Build and push the tagged build to production
    
    on:
      push:
        tags:
          - 'v*'
    

A kivételi lépés konfigurálása

  1. Az előző gyakorlathoz hasonlóan:

    • Módosítsa a kulcsot a jobs következőre ubuntu-latestubuntu-20.04: .
    • Nevezze át a build kulcsot a build_push_image névre.
    • steps A kulcsban törölje az utolsó két példalépést a sablonból, és tartsa meg a checkout lehetőséget.
  2. Hozzon létre egy új lépést, amely összegyűjti a szükséges verzióadatokat. Ezt a lépést a ::set-output belső parancs használatával hozhatja létre. Adja hozzá a következő sorokat a kifizetési művelet alatt:

    - name: Fetch latest version
      id: fetch_version
      run: echo ::set-output name=TAG::${GITHUB_REF#refs/tags/}
    

    A YAML-fájlnak a megjegyzések nélkül a következő példához hasonlóan kell kinéznie:

    name: Build and push the tagged build to production
    
    on:
      push:
        tags:
          - 'v*'
    
    jobs:
      build_push_image:
        runs-on: ubuntu-20.04
    
        steps:
          - uses: actions/checkout@v2
    
          - name: Fetch latest version
            id: fetch_version
            run: echo ::set-output name=TAG::${GITHUB_REF#refs/tags/}
    

Docker-lépések hozzáadása

Az előkészítési munkafolyamathoz hasonlóan adja hozzá a lépéseket és Build and push Docker images a Docker Login lépéseket.

  1. A jobb oldali panelen keresse meg a Docker-bejelentkezést. Jelölje ki az első eredményt, amelynek a Docker a közzétevője.

  2. A Telepítés területen válassza a másolás ikont a használati YAML másolásához.

  3. Illessze be a másolt YAML-et a Fetch latest version művelet alá.

  4. Adja hozzá a következő értékeket a registry, usernameés password a kulcshoz:

    • registry: ${{ secrets.ACR_NAME }}
    • username: ${{ secrets.ACR_LOGIN }}
    • password: ${{ secrets.ACR_PASSWORD }}
  5. Törölje a többi kulcsot, mert ebben a gyakorlatban nem használják őket.

  6. A Marketplace jobb oldali paneljén keressen build- és leküldéses Docker-rendszerképeket, és válassza ki a Docker által közzétett első találatot.

  7. A Telepítés területen válassza a másolás ikont a használati YAML másolásához.

  8. Illessze be a másolt YAML-et az utolsó kulcs alá a korábban másolt docker-login műveletből.

  9. Nevezze át a kulcsot a name következőre Build and push Docker imagesBuild and push production images: .

  10. Adja hozzá a következő értékeket a context, pushés tags a kulcshoz:

    • context: .
    • push: true
    • tags: ${{secrets.ACR_NAME}}/contoso-website:latest,${{secrets.ACR_NAME}}/contoso-website:${{ steps.fetch_version.outputs.TAG }}

    Figyelje meg, hogy a tags kulcs értéke miben különbözik az előkészítési munkafolyamattól. A YAML használata steps. gyakori eljárás a folyamat korábbi lépéseire való hivatkozáshoz. Amikor a lépésben használjaset-output, a lépés kimenetét a változó értékére állítjaGITHUB_REF.fetch_version Ez a kimenet már elérhető az objektumon belüli steps folyamatban.

  11. Törölje a többi kulcsot, mert ebben a gyakorlatban nem használják őket.

  12. Adjon hozzá egy másik, a pénztár művelet és a bejelentkezési művelet között hívott docker/setup-buildx-action műveletet, hogy beállítsa a Docker buildmotorjának használatát. Másolja ki a következő kódrészletet, és illessze be a checkout műveletek közé login .

    - name: Set up Buildx
      uses: docker/setup-buildx-action@v3.0.0
    

    A YAML-fájlnak a megjegyzések nélkül a következő példához hasonlóan kell kinéznie:

    name: Build and push the tagged build to production
    
    on:
      push:
        tags:
          - 'v*'
    
    jobs:
      build_push_image:
        runs-on: ubuntu-20.04
    
        steps:
          - uses: actions/checkout@v2
    
          - name: Fetch latest version
            id: fetch_version
            run: echo ::set-output name=TAG::${GITHUB_REF#refs/tags/}
    
          - name: Set up Buildx
            uses: docker/setup-buildx-action@v3.0.0
    
          - name: Docker Login
            uses: docker/login-action@v3.0.0
            with:
              registry: ${{ secrets.ACR_NAME }}
              username: ${{ secrets.ACR_LOGIN }}
              password: ${{ secrets.ACR_PASSWORD }}
    
          - name: Build and push production images
            uses: docker/build-push-action@v5.0.0
            with:
              context: .
              tags: ${{secrets.ACR_NAME}}/contoso-website:latest,${{secrets.ACR_NAME}}/contoso-website:${{ steps.fetch_version.outputs.TAG }}
              push: true
    

A módosítások véglegesítése

A módosítások véglegesítéséhez válassza a módosítások véglegesítése gombot a jobb felső sarokban. Adja meg a véglegesítés leírását, majd válassza a Véglegesítési módosítások lehetőséget.

Ezúttal az éles művelet nem aktiválódik, mert nem adott le új címkét, hanem a korábbi előkészítési művelet aktiválódik, és új latest rendszerképet hoz létre.

Személyes hozzáférési jogkivonat (PAT) létrehozása

A következő lépésben le kell küldenie a címkéket, és le kell futtatnia az üzembe helyezési szkriptet egy későbbi leckében.

  1. Nyissa meg a mintaadattár elágazását a GitHub webhelyén. A jobb felső sarokban válassza ki a profilképét, majd válassza a Gépház.

  2. A bal oldali menü alján válassza a Fejlesztői beállítások lehetőséget .

  3. Válassza ki a személyes hozzáférési jogkivonatok jogkivonatait>(klasszikus) a legördülő listából.

  4. Válassza a Személyes hozzáférési jogkivonat létrehozása lehetőséget.

  5. A Megjegyzés területen adja meg a PAT nevét, például a myPersonalAccessTokenLM nevet.

  6. A Hatókörök kijelölése csoportban jelölje be a munkafolyamat melletti jelölőnégyzetet.

    Screenshot that shows the personal access tokens page.

    Feljegyzés

    A munkafolyamat-hatókör rendszergazdai adattár-hozzáférést biztosít a GitHub-műveletekhez. A következő lépésben leküldheti a címkéket, és egy későbbi leckében futtathatja az üzembe helyezési szkriptet.

  7. Válassza a Lap alján található Token létrehozása lehetőséget.

  8. Válassza a másolás ikont a PAT másolásához. Mentse a PAT-t a későbbi lépésekben való használathoz.

    Screenshot that shows the personal access token after it's created.

A címkeesemény aktiválása

  1. Az Azure Cloud Shellben nyissa meg a klónozott adattárat, és futtassagit pull.

  2. Futtassa az alábbi parancsot:

    git tag -a v2.0.0 -m 'My first tag'
    
  3. Futtassa az alábbi parancsot. Amikor a rendszer kéri, adja meg a PAT-t jelszóként.

    git push --tags
    

    Fontos

    Az eredeti adattár az 1.0.0-s verziót használja, ezért más címkét kell leküldnie, mert az ismétlődések nem létezhetnek.

  4. Válassza a Műveletek lapot, és ellenőrizze a futó folyamatot.

  5. Ha a folyamat befejeződött, futtassa a következő parancsot a Cloud Shellben, és cserélje le <ACR_NAME> az Önét ACR_NAME, hogy ellenőrizze, hogy két címke szerepel-e az eredmények között.

    az acr repository show-tags --repository contoso-website --name <ACR_NAME> -o table
    

A következő leckében megismerheti a Helm, a Kubernetes-alkalmazások csomagolóeszközének használatát a folyamat automatizálásához.