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 2022 – Azure DevOps Server 2019

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 Microsoft által üzemeltetett ügynök használata című témakört.

A mintakód elágazása

A minta Python-adattár elágazása a GitHub-fiókba.

  1. Nyissa meg a python-sample-vscode-flask-tutorial adattárat.
  2. Válassza az Elágazás lehetőséget a lap jobb felső sarkában.
  3. Válassza ki a GitHub-fiókját. Alapértelmezés szerint az elágazás neve megegyezik a szülőadattár nevével, de más nevet adhat neki.

Fontos

Az alábbi eljárások során előfordulhat, hogy a rendszer arra kéri, hogy hozzon létre egy GitHub-szolgáltatáskapcsolatot , vagy átirányítsa a GitHubra a bejelentkezéshez, az Azure Pipelines telepítéséhez vagy az Azure Pipelines engedélyezéséhez. A folyamat befejezéséhez kövesse a képernyőn megjelenő utasításokat. További információ: Access to GitHub-adattárak.

A folyamat létrehozása

  1. Az Azure DevOps-projektben válassza a Pipelines>Create Pipeline lehetőséget, majd válassza a GitHubot a forráskód helyeként.
  2. Az Adattár kiválasztása képernyőn válassza ki az elágazott mintaadattárat.
  3. A folyamat konfigurálása képernyőn válassza a Starter-folyamatot.

A folyamat 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:

  • Telepíti a szükséges Python-verziókat és függőségeket.
  • A csomagok összetevőket építenek egy ZIP-archívumba.
  • Közzéteszi az archívumot a folyamaton.
  • 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 azure-pipelines.yml testreszabása a projektkonfigurációnak megfelelően.

  • Ha másik ügynökkészlete van, módosítsa a készlet name paraméterét.
  • Szükség esetén módosítsa a Python-verziót 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 folyamat futtatása

Válassza a Mentés és futtatás, majd a Mentés és futtatás lehetőséget.

Az Összegzés lapon látható a folyamatfuttatás állapota.

A buildösszetevő megtekintéséhez válassza a közzétett hivatkozást az Összegzés lapon.

Képernyőkép a közzétett buildösszetevők 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 a befejezett Python-feladatró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ők hivatkozásáról.

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

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

Válassza a Futtatás lehetőséget.

A buildszám az oldal tetején jelenik meg. Válassza ki a build számát a build részleteinek megtekintéséhez.

Képernyőkép a folyamat buildelési hivatkozásáról.

Az Összegzés lapon látható a folyamatfuttatás állapota.

A buildösszetevő letöltéséhez válassza a legördülő hivatkozást a Közzétett összetevők összeállítása szakaszból.

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

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

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

A fölöslegessé vált elemek eltávolítása

A rövid útmutató befejezése után törölheti a létrehozott Azure DevOps-projektet.

  1. A projektben válassza a Projektbeállítások fogaskerék ikont a lap bal alsó sarkában.
  2. A Projekt áttekintése lap alján válassza a Törlés lehetőséget.
  3. Adja meg a projekt nevét, és válassza a Törlés lehetőséget.

Gratulálunk, 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 folyamatos integrációs és folyamatos kézbesítési (CI/CD) rendszer részeként.

Következő lépések