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


CopyFiles@2 – Fájlok másolása v2 feladat

Ezzel a feladattal fájlokat másolhat egy forrásmappából egy célmappába egyezésminták használatával. (Az egyezési minták csak a fájl elérési útjaihoz fognak egyezni, a mappa elérési útjaihoz nem.

Szemantika

# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
  inputs:
    #SourceFolder: # string. Source Folder. 
    Contents: '**' # string. Required. Contents. Default: **.
    TargetFolder: # string. Required. Target Folder. 
  # Advanced
    #CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
    #OverWrite: false # boolean. Overwrite. Default: false.
    #flattenFolders: false # boolean. Flatten Folders. Default: false.
    #preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
    #retryCount: '0' # string. Retry count to copy the file. Default: 0.
    #delayBetweenRetries: '1000' # string. Delay between two retries. Default: 1000.
    #ignoreMakeDirErrors: false # boolean. Ignore errors during creation of target folder. Default: false.
# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
  inputs:
    #SourceFolder: # string. Source Folder. 
    Contents: '**' # string. Required. Contents. Default: **.
    TargetFolder: # string. Required. Target Folder. 
  # Advanced
    #CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
    #OverWrite: false # boolean. Overwrite. Default: false.
    #flattenFolders: false # boolean. Flatten Folders. Default: false.
    #preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.

Bemenetek

SourceFolder - Forrásmappa
string.

Opcionális. A másolni kívánt fájlokat tartalmazó mappa. Ha a mappa üres, akkor a feladat úgy másolja a fájlokat az adattár gyökérmappájából, mintha $(Build.SourcesDirectory) lett volna megadva.

Ha a build a forráskönyvtáron kívül hoz létre összetevőket, adja meg a $(Agent.BuildDirectory) a folyamathoz létrehozott könyvtár fájljainak másolásához.


Contents - Tartalom
string. Szükséges. Alapértelmezett érték: **.

A másolat részeként belefoglalandó fájlelérési utak. Ez a sztring több egyezésmintát támogat.

Például:

  • * a megadott forrásmappában lévő összes fájlt átmásolja.
  • ** a megadott forrásmappában lévő összes fájlt és az összes almappában lévő összes fájlt átmásolja.
  • **\bin\** az összes fájlt rekurzív módon másolja bármelyik tárolómappából.

A minta csak a fájl elérési útjaihoz használható, a mappa elérési útjaihoz nem. Adjon meg mintákat, például **\bin\****\binhelyett.

A [] speciális karaktereit tördelve feloldhatja a fájlnévben szereplő literális glob karaktereket. A hello[a-z] konstans fájlnév például hello[[]a-z]. További információ: Fájlmegfeleltetési minták hivatkozása.

Használja a buildügynök típusának megfelelő elérési útelválasztót. Például / linuxos ügynökökhöz kell használni. További példákat alább talál.


TargetFolder - Célmappa
string. Szükséges.

A másolt fájlokat tartalmazó célmappa vagy UNC-elérési út. Használhat változókat. Példa: $(build.artifactstagingdirectory).


CleanTargetFolder - Tiszta célmappa
boolean. Alapértelmezett érték: false.

Opcionális. A másolási folyamat előtt törli a célmappában lévő összes meglévő fájlt.


OverWrite - felülírás
boolean. Alapértelmezett érték: false.

Opcionális. Lecseréli a célmappában lévő meglévő fájlokat.


flattenFolders - Mappák simítása
boolean. Alapértelmezett érték: false.

Opcionális. Simítja a mappastruktúrát, és az összes fájlt a megadott célmappába másolja.


preserveTimestamp - Cél időbélyegző megőrzése
boolean. Alapértelmezett érték: false.

Megőrzi a célfájl időbélyegét az eredeti forrásfájl használatával.


retryCount - Újrapróbálkozások száma a fájl másolásához
string. Alapértelmezett érték: 0.

Megadja a fájl másolásához szükséges újrapróbálkozások számát. Ez a sztring időszakos problémákhoz, például távoli gazdagépen lévő UNC-célútvonalak esetén hasznos.


delayBetweenRetries - Késleltetés két újrapróbálkozás között.
string. Alapértelmezett érték: 1000.

Megadja a két újrapróbálkozás közötti késleltetést. Ez a sztring időszakos problémákhoz, például távoli gazdagépen lévő UNC-célútvonalak esetén hasznos.


ignoreMakeDirErrors - Hagyja figyelmen kívül a célmappa létrehozása során fellépő hibákat.
boolean. Alapértelmezett érték: false.

Figyelmen kívül hagyja a célmappa létrehozása során előforduló hibákat. Ez a karakterlánc hasznos a feladatok több ügynök által egy célmappán belüli párhuzamos végrehajtásával kapcsolatos problémák elkerüléséhez.


Feladatvezérlési lehetőségek

Minden feladathoz tartoznak vezérlési lehetőségek is a feladat bemenetei mellett. További információ: Vezérlők és gyakori feladattulajdonságok.

Kimeneti változók

Nincs.

Megjegyzések

Ha nem egyeznek a fájlok, a feladat továbbra is sikeres lesz.

  • Ha Overwrite van és false már létezik egyező fájl a célmappában, a feladat nem jelenti a hibát, hanem naplózza, hogy a fájl már létezik, és kihagyja.
  • Ha Overwrite is true és egy egyező fájl már létezik a célmappában, akkor az egyező fájl felülíródik.

Példák

Fájl másolása az összetevők átmeneti könyvtárába és közzététele

steps:
- task: CopyFiles@2
  inputs:
    contents: '_buildOutput/**'
    targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: $(Build.ArtifactStagingDirectory)
    artifactName: MyBuildOutputs

Végrehajtható fájlok és readme fájl másolása

Cél

Csak a readme fájlt és a C#-konzolalkalmazás futtatásához szükséges fájlokat szeretné másolni:

`-- ConsoleApplication1
    |-- ConsoleApplication1.sln
    |-- readme.txt
    `-- ClassLibrary1
        |-- ClassLibrary1.csproj
    `-- ClassLibrary2
        |-- ClassLibrary2.csproj
    `-- ConsoleApplication1
        |-- ConsoleApplication1.csproj

Megjegyzés:

ConsoleApplication1.sln tartalmaz egy bin mappát .dll és .exe fájlokkal, tekintse meg az alábbi eredményeket, hogy megtudja, mi kerül áthelyezésre!

A Változók lapon a következőre $(BuildConfiguration)van állítva: release .

Példa több egyezési mintára:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\ConsoleApplication1\bin\**\*.exe
      ConsoleApplication1\ConsoleApplication1\bin\**\*.dll
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Példa VAGY feltétellel:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Példa NEM feltétellel:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\**\bin\**\!(*.pdb|*.config)
      !ConsoleApplication1\**\ClassLibrary*\**
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Példa változókkal a tartalom szakaszban

- task: CopyFiles@2
  inputs:
    Contents: '$(Build.Repository.LocalPath)/**' 
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Eredmények

Ezeket a fájlokat a rendszer az átmeneti könyvtárba másolja:

`-- ConsoleApplication1
    |-- readme.txt
    `-- ConsoleApplication1
        `-- bin
            `-- Release
                | -- ClassLibrary1.dll
                | -- ClassLibrary2.dll
                | -- ConsoleApplication1.exe

Másoljon mindent a forráskönyvtárból, kivéve a .git mappát

Példa több egyezési mintára:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)'
    Contents: |
      **/*
      !.git/**/*
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Követelmények

Követelmény Leírás
Folyamattípusok YAML, klasszikus build
Futtatás bekapcsolva Ügynök, DeploymentGroup
Igények Egyik sem
Képességek Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek.
parancskorlátozások Ez a feladat a következő parancskorlátozásokkal fut: korlátozott
Változók beállítása Ez a feladat jogosult a következő változók beállítására: A változók beállítása le van tiltva
Ügynök verzió 2.182.1 vagy újabb
Tevékenységkategória Hasznosság
Követelmény Leírás
Folyamattípusok YAML, klasszikus build
Futtatás bekapcsolva Ügynök, DeploymentGroup
Igények Egyik sem
Képességek Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek.
parancskorlátozások Bármely
Változók beállítása Bármely
Ügynök verzió 1.91.0 vagy újabb
Tevékenységkategória Hasznosság

Lásd még