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


Python-alkalmazás létrehozása és közzététele

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Ebben a rövid útmutatóban létrehoz egy folyamatot, amely létrehoz és tesztel egy Python-alkalmazást. Megtudhatja, hogyan hozhat létre, tesztelhet és helyezhet üzembe Python-alkalmazásokat és szkripteket az Azure Pipelines használatával a folyamatos integrációs és folyamatos kézbesítési (CI/CD) rendszer részeként.

Előfeltételek

A Python előre telepítve van a Microsoft által üzemeltetett linuxos, macOS és Windows rendszerű ügynökökre . A Python-projektek létrehozásához nem kell további beállításokat beállítania. Annak megtekintéséhez, hogy mely Python-verziók vannak előre telepítve, olvassa el a Szoftver című témakört.

termék Követelmények
Azure DevOps - Egy Azure DevOps-projekt.
– Képes futtatni folyamatokat a Microsoft által üzemeltetett ügynökökön. Vásárolhat párhuzamos feladatot , vagy ingyenes szintet kérhet.
- A YAML és az Azure Pipelines alapszintű ismerete. További információért lásd Az első adatfolyam létrehozása.
- engedélyek:
     A folyamat létrehozásához a Közreműködők csoport tagjának kell lennie, és a csoportnak rendelkeznie kell a build folyamat létrehozása engedéllyel, amelynek beállítása "Engedélyezve". A Projektgazdák csoport tagjai kezelhetik a folyamatokat.
    - Szolgáltatáskapcsolatok létrehozásához: A szolgáltatáskapcsolatokhozrendszergazdai vagy létrehozói szerepkör szükséges.
GitHub - Egy GitHub--fiók.
- Egy GitHub-szolgáltatáskapcsolat az Azure Pipelines engedélyezéséhez.
termék Követelmények
Azure DevOps - Egy Azure DevOps-projekt.
- Egy saját üzemeltetésű ügynök, amelyen telepítve van a Python 3.12 vagy más Python-verzió. Egy létrehozásához tekintse meg a saját üzemeltetésű ügynököket.
- A YAML és az Azure Pipelines alapszintű ismerete. További információért lásd Az első adatfolyam létrehozása.
- engedélyek:
    A folyamat létrehozásához a Közreműködők csoport tagjának kell lennie, és a csoportnak rendelkeznie kell a build folyamat létrehozása engedéllyel, amelynek beállítása "Engedélyezve". A Projektgazdák csoport tagjai kezelhetik a folyamatokat.
    - Szolgáltatáskapcsolatok létrehozásához: A szolgáltatáskapcsolatokhozrendszergazdai vagy létrehozói szerepkör szükséges.
GitHub - Egy GitHub--fiók.
- Egy GitHub-szolgáltatáskapcsolat az Azure Pipelines engedélyezéséhez.

Fontos

A GitHub-eljárások megkövetelhetik, hogy a GitHubon hajtsa végre az alábbi műveletek egyikét:

  • Bejelentkezés.
  • Az Azure Pipelines engedélyezése.
  • Hitelesítés GitHub-szervezeteknek.
  • Telepítse az Azure Pipelines alkalmazást.

Kövesse az utasításokat a szükséges folyamatok elvégzéséhez. További információ: Hozzáférés a GitHub-adattárakhoz.

Készíts másolatot a mintakódból

A minta Python-adattár forkolása a GitHub-fiókodba.

  1. Nyissa meg a python-sample-vscode-flask-tutorial adattárat.
  2. Válassza az Elágazás lehetőséget a jobb felső sarokban.
  3. Győződjön meg arról, hogy a GitHub-fiók neve ki van jelölve a Tulajdonos területen, és válassza az Elágazás létrehozása lehetőséget. Az elágazás neve alapértelmezés szerint megegyezik a szülőadattár nevével, de más nevet is adhat neki.

Hozza létre a pipeline-ját

  1. Az Azure DevOps-projektben válassza a folyamatok lehetőséget a bal oldali navigációs menüben, majd válassza az Új folyamat vagy a Folyamat létrehozása lehetőséget, ha ez a folyamat az első a projektben.
  2. A Kód helye képernyőn válassza a GitHubot a forráskód helyeként.
  3. Az Adattár kiválasztása képernyőn válassza ki az elágazott Python-mintaadattárat.
  4. A Folyamatvonal konfigurálása képernyőn válassza a Kezdő folyamatvonalat.

A csővezeték testreszabása

A folyamat YAML-jének áttekintése képernyőn cserélje le a létrehozott azure-pipelines.yml fájl tartalmát a következő kódra. A kód a Következő műveleteket hajtja végre a Python három különböző verzióján:

  1. Telepíti a szükséges Python-verziókat és függőségeket.
  2. A csomagok összetevőket építenek egy ZIP-archívumba.
  3. Közzéteszi az archívumot az Ön folyamatába.
  4. Teszteket futtat.
trigger:
- main

pool:
  vmImage: ubuntu-latest

strategy:
  matrix:
    Python310:
      python.version: '3.10'
    Python311:
      python.version: '3.11'
    Python312:
      python.version: '3.12'

steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '$(python.version)'
    displayName: 'Use Python $(python.version)'

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'

  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)-$(python.version).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

A folyamat YAML-jének áttekintése képernyőn cserélje le a létrehozott azure-pipelines.yml fájl tartalmát a következő kódra. A kód a következő műveleteket hajtja végre:

  1. Telepíti a szükséges Python-verziókat és függőségeket.
  2. A csomagok összetevőket építenek egy ZIP-archívumba.
  3. Közzéteszi az archívumot az Ön folyamatába.
  4. Teszteket futtat.

Igazítsa az azure-pipelines.yml-t a projekt konfigurációjához.

  • Ha más ügynökkészlettel rendelkezik, cserélje le a name helyőrzőt az ön ügynökkészletének nevére, vagy használja a default-t.
  • Szükség esetén módosítsa a Pythont versionSpec a saját üzemeltetésű ügynökén telepített verzióra.
  trigger:
  - main

  pool: 
    name: '<your-pool-name or default>'

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.12'
    displayName: 'Use Python 3.12'  

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'


  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

A pipeline futtatása

Válassza a Mentés és futtatás lehetőséget, majd ismét válassza a Mentés és futtatás lehetőséget. Az Összegzés képernyőn a Feladat lehetőséget választva megtekintheti a feladatot működés közben.

A feladat háromszor fut, minden megadott Python-verzióhoz egyszer. A három verzió párhuzamosan futtatható különböző ügynökökön.

Képernyőkép a befejezett Python-feladatról több verzióval.

Képernyőkép a befejezett egyetlen Python-feladatról.

Összetevők és teszteredmények megtekintése

A build-artifaktok megtekintéséhez válassza a [N] közzétett hivatkozást az Összefoglaló lapon.

Képernyőkép a közzétett build-eredmények hivatkozásáról.

Az Összetevők lapon láthatók a közzétett buildösszetevők.

Képernyőkép a közzétett buildösszetevőkről.

Képernyőkép egy feladat közzétett build-artefaktumairól.

A teszteredmények megtekintéséhez válassza a Tesztek lapot.

Képernyőkép a folyamatteszt eredményeiről.

Takarítás

Ha végzett a létrehozott pipeline-nal, törölheti azt.

  1. A projekt bal oldali navigációs menüjében válassza a Folyamatok lehetőséget.

  2. A folyamatlistában vigye az egérmutatót a létrehozott folyamat fölé, válassza a jobb oldalon a További műveletek ikont, majd válassza a Törlés lehetőséget.

    Vagy jelölje ki a folyamatot, majd a folyamat oldalán válassza a jobb felső sarokban található További műveletek ikont, majd válassza a Törlés lehetőséget.

  3. Adja meg a folyamat nevét, majd kattintson ismét a Törlés gombra.

Sikeresen létrehozott és futtatott egy folyamatot, amely létrehozott és tesztelt egy Python-alkalmazást. Mostantól az Azure Pipelines használatával Python-alkalmazásokat és szkripteket hozhat létre, tesztelhet és helyezhet üzembe a CI/CD-folyamat részeként.

Következő lépés