Как повторно игнорировать файлы, используя .artifactignore с PublishPipelineArtifacts@2 - PullRequest
1 голос
/ 31 января 2020

У меня есть .artifactignore в root моего репозитория, который выглядит следующим образом:

**/*
!**/bin/**/*
!**/obj/**/*

Я могу наблюдать, как .artifactignore оценивается в журналах, например:

Uploading pipeline artifact from d:\a\1\s for build #10471
Information, ApplicationInsightsTelemetrySender will correlate events with X-TFS-Session GUID
Information, DedupManifestArtifactClient will correlate http requests with X-TFS-Session GUID
Information, Using .artifactignore file located at: d:\a\1\s\.artifactignore for globbing
Information, Processing .artifactignore file surfaced 20721 files. Total files under source directory: 21471

Это правильно исключает все, кроме папок bin и obj. Я хотел бы расширить этот .artifactignore таким образом, чтобы он имел дополнительное поведение:

  • Игнорирует все файлы pdb независимо от их местоположения

Я пробовал несколько вариантов:

**/*
!**/bin/**/*
!**/obj/**/*
*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
.pdb
**/*
!**/bin/**/*
!**/obj/**/*
**/*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
!!*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
!!**/*.pdb
**/*
!**/bin/
!**/obj/
!!**/*.pdb

С некоторыми другими вариантами я уверен. Все они содержат все файлы .pdb, присутствующие в папках bin.

Как опубликовать sh все папки bin и obj без привлечения файлов .pdb?

1 Ответ

2 голосов
/ 03 февраля 2020

Как мне опубликовать sh все папки bin и obj без файлов .pdb?

Боюсь, что нет такого готового синтаксиса, который вы могли бы повторно включить файл, если исключен родительский каталог этого файла .

Это означает, что вы используете синтаксис !**/bin/**/* для исключения родительской папки bin из файла .artifactignore Вы не можете повторно использовать синтаксис *.pdb или любой другой для повторного включения файла .pdb.

В качестве состояния документа:

См. Руководство Git по синтаксису .gitignore, такой же синтаксис для .artifactignore такой же .

Для проверки подробной информации , вы можете сослаться на этот поток о синтаксисе .gitignore.

В качестве обходного пути для этой проблемы мы могли бы использовать следующий синтаксис для включения всех типов файлов, кроме файла .pdb:

**/*

!**/bin/**/*.dll
!**/bin/**/*.xml
!**/bin/**/*.config

!**/obj/**/*.dll
!**/obj/**/*.xml
!**/obj/**/*.config

Надеюсь, это поможет.

...