Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez cette tâche pour copier des fichiers d’un dossier source vers un dossier cible à l’aide de modèles de correspondance. (Les modèles de correspondance correspondent uniquement aux chemins d’accès aux fichiers, et non aux chemins d’accès aux dossiers).
Syntaxe
# 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.
Données d'entrée
SourceFolder
-
dossier source
string
.
Optionnel. Dossier qui contient les fichiers que vous souhaitez copier. Si le dossier est vide, la tâche copie les fichiers du dossier racine du référentiel comme si $(Build.SourcesDirectory)
a été spécifié.
Si votre build produit des artefacts en dehors du répertoire sources, spécifiez $(Agent.BuildDirectory)
pour copier des fichiers à partir du répertoire créé pour le pipeline.
Contents
-
contenu
string
. Obligatoire. Valeur par défaut : **
.
Chemins d’accès aux fichiers à inclure dans le cadre de la copie. Cette chaîne prend en charge plusieurs lignes de modèles de correspondance.
Par exemple:
-
*
copie tous les fichiers dans le dossier source spécifié. -
**
copie tous les fichiers dans le dossier source spécifié et tous les fichiers de tous les sous-dossiers. -
**\bin\**
copie tous les fichiers de manière récursive à partir de n’importe quel dossier bin.
Le modèle est utilisé pour faire correspondre uniquement les chemins d’accès aux fichiers, et non aux chemins d’accès aux dossiers. Spécifiez des modèles, tels que **\bin\**
au lieu de **\bin
.
L’habillage de caractères spéciaux dans []
peut être utilisé pour échapper des caractères glob littérals dans un nom de fichier. Par exemple, le nom de fichier littéral hello[a-z]
peut être échappé en tant que hello[[]a-z]
. Pour plus d’informations, consultez informations de référence sur les modèles de correspondance de fichiers.
Utilisez le séparateur de chemin qui correspond à votre type d’agent de build. Par exemple, /
doit être utilisé pour les agents Linux. Vous trouverez ci-dessous d’autres exemples.
TargetFolder
-
dossier cible
string
. Obligatoire.
Dossier cible ou chemin UNC qui contiendra les fichiers copiés. Vous pouvez utiliser des variables . Exemple : $(build.artifactstagingdirectory)
.
CleanTargetFolder
-
dossier cible propre
boolean
. Valeur par défaut : false
.
Optionnel. Supprime tous les fichiers existants dans le dossier cible avant le processus de copie.
OverWrite
-
remplacer
boolean
. Valeur par défaut : false
.
Optionnel. Remplace les fichiers existants dans le dossier cible.
flattenFolders
-
aplatir les dossiers
boolean
. Valeur par défaut : false
.
Optionnel. Aplatit la structure du dossier et copie tous les fichiers dans le dossier cible spécifié.
preserveTimestamp
-
Conserver l’horodatage cible
boolean
. Valeur par défaut : false
.
Conserve l’horodatage du fichier cible à l’aide du fichier source d’origine.
retryCount
-
Réessayez de copier le fichier
string
. Valeur par défaut : 0
.
Spécifie le nombre de nouvelles tentatives pour copier le fichier. Cette chaîne est utile pour les problèmes intermittents, tels que les chemins d’accès cibles UNC sur un hôte distant.
delayBetweenRetries
-
Délai entre deux tentatives.
string
. Valeur par défaut : 1000
.
Spécifie le délai entre deux tentatives. Cette chaîne est utile pour les problèmes intermittents, tels que les chemins d’accès cibles UNC sur un hôte distant.
ignoreMakeDirErrors
-
Ignorez les erreurs lors de la création du dossier cible.
boolean
. Valeur par défaut : false
.
Ignore les erreurs qui se produisent lors de la création du dossier cible. Cette chaîne est utile pour éviter les problèmes liés à l’exécution parallèle de tâches par plusieurs agents au sein d’un même dossier cible.
Options de contrôle de tâche
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Remarques
Si aucun fichier ne correspond, la tâche signale toujours la réussite.
- Si
Overwrite
estfalse
et qu’un fichier correspondant existe déjà dans le dossier cible, la tâche ne signale pas l’échec, mais consigne que le fichier existe déjà et l’ignore. - Si
Overwrite
esttrue
et qu’un fichier correspondant existe déjà dans le dossier cible, le fichier correspondant sera écrasé.
Exemples
Copiez le fichier dans le répertoire de staging des artefacts et publiez-le
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Copier les exécutables et un fichier readme
Objectif
Vous souhaitez copier uniquement le fichier readme et les fichiers nécessaires à l’exécution de cette application console C# :
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Remarque
ConsoleApplication1.sln contient un dossier bin avec des fichiers .dll et .exe, consultez les résultats ci-dessous pour voir ce qui est déplacé !
Dans l’onglet Variables, $(BuildConfiguration)
est défini sur release
.
Exemple avec plusieurs modèles de correspondance :
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)'
Exemple avec la condition OR :
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Exemple avec la condition NOT :
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\**\bin\**\!(*.pdb|*.config)
!ConsoleApplication1\**\ClassLibrary*\**
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Exemple avec des variables dans la section de contenu
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Résultats
Les fichiers suivants sont copiés dans le répertoire de transfert :
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Copiez tout ce qui se trouve dans le répertoire source, à l’exception du dossier .git.
Exemple avec plusieurs modèles de correspondance :
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Spécifications
Besoin | Descriptif |
---|---|
Types de pipelines | YAML, build classique |
Exécutions sur | Agent, DeploymentGroup |
demandes | Aucun |
Capacités | Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail. |
restrictions de commande | Cette tâche s’exécute à l’aide des restrictions de commande suivantes: restreint |
variables settables | Cette tâche est autorisée à définir les variables suivantes: la définition des variables est désactivée |
Version de l’agent | 2.182.1 ou version ultérieure |
Catégorie de tâche | Utilité |
Besoin | Descriptif |
---|---|
Types de pipelines | YAML, build classique |
Exécutions sur | Agent, DeploymentGroup |
demandes | Aucun |
Capacités | Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail. |
restrictions de commande | N'importe lequel |
variables settables | N'importe lequel |
Version de l’agent | 1.91.0 ou version ultérieure |
Catégorie de tâche | Utilité |