Gyakorlat – Az éles alkalmazáskép buildelése
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.
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
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.
A bal oldali panelen válassza az Új munkafolyamat lehetőséget.
A Munkafolyamat kiválasztása lapon válassza saját maga a munkafolyamat beállítását.
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.
A szerkesztőpanel felett nevezze át a fájlt a következőre
main.yml
build-production.yml
: .Módosítsa a kulcsot a
name
következőreCI
Build 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.
Távolítsa el a második triggert, és csak a
push
címkéket hagyja meg.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 av*
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
Az előző gyakorlathoz hasonlóan:
- Módosítsa a kulcsot a
jobs
következőreubuntu-latest
ubuntu-20.04
: . - Nevezze át a
build
kulcsot abuild_push_image
névre. steps
A kulcsban törölje az utolsó két példalépést a sablonból, és tartsa meg acheckout
lehetőséget.
- Módosítsa a kulcsot a
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.
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.
A Telepítés területen válassza a másolás ikont a használati YAML másolásához.
Illessze be a másolt YAML-et a
Fetch latest version
művelet alá.Adja hozzá a következő értékeket a
registry
,username
éspassword
a kulcshoz:registry
:${{ secrets.ACR_NAME }}
username
:${{ secrets.ACR_LOGIN }}
password
:${{ secrets.ACR_PASSWORD }}
Törölje a többi kulcsot, mert ebben a gyakorlatban nem használják őket.
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.
A Telepítés területen válassza a másolás ikont a használati YAML másolásához.
Illessze be a másolt YAML-et az utolsó kulcs alá a korábban másolt
docker-login
műveletből.Nevezze át a kulcsot a
name
következőreBuild and push Docker images
Build and push production images
: .Adja hozzá a következő értékeket a
context
,push
éstags
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álatasteps.
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ülisteps
folyamatban.Törölje a többi kulcsot, mert ebben a gyakorlatban nem használják őket.
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 acheckout
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.
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.
A bal oldali menü alján válassza a Fejlesztői beállítások lehetőséget .
Válassza ki a személyes hozzáférési jogkivonatok jogkivonatait>(klasszikus) a legördülő listából.
Válassza a Személyes hozzáférési jogkivonat létrehozása lehetőséget.
A Megjegyzés területen adja meg a PAT nevét, például a myPersonalAccessTokenLM nevet.
A Hatókörök kijelölése csoportban jelölje be a munkafolyamat melletti jelölőnégyzetet.
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.
Válassza a Lap alján található Token létrehozása lehetőséget.
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.
A címkeesemény aktiválása
Az Azure Cloud Shellben nyissa meg a klónozott adattárat, és futtassa
git pull
.Futtassa az alábbi parancsot:
git tag -a v2.0.0 -m 'My first tag'
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.
Válassza a Műveletek lapot, és ellenőrizze a futó folyamatot.
Ha a folyamat befejeződött, futtassa a következő parancsot a Cloud Shellben, és cserélje le
<ACR_NAME>
az ÖnétACR_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.