Как войти в систему Azure DevOps Artifact feed без токена
Так же, как вы пытались, использование $(System.AccessToken)
должно работать нормально. Просто поделитесь моими шагами и некоторыми ключевыми моментами, на которые вам следует обратить внимание.
Конфигурация :
Вот часть моего build.gradle
файла, и я применил $(System.AccessToken)
для публикации sh пакета в моем фиде:
publishing {
publications {
myPublication(MavenPublication) {
groupId 'com.microsoft.core'
artifactId 'mock='
version "${version}"
artifact "build/libs/mock-${version}.jar"
}
}
// Repositories *to* which Gradle can publish artifacts
repositories {
maven {
url 'https://pkgs.dev.azure.com/{org name}/_packaging/{project name}/{feed name}/v1'
credentials {
username "Azure DevOps Services"
//password System.getenv("AZURE_ARTIFACTS_ENV_ACCESS_TOKEN") != null ? System.getenv("AZURE_ARTIFACTS_ENV_ACCESS_TOKEN") : vstsMavenAccessToken
password System.getenv("SYSTEM_ACCESSTOKEN")
}
}
}
}
Часть YAML
определения:
- task: Gradle@2
displayName: Gradle Publish
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
tasks: 'publish'
condition: always()
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
Вы можете увидеть мой журнал publi sh и он опубликован успешно:
Кроме конфигурации скрипта выше, вы также конфигурируете настройку фида. Поскольку конвейер фактически использует учетную запись службы сбора / проекта для доступа и выполнения действий в ленте.
Пожалуйста, go настройку ленты, найдите и добавьте Project Collection Build Service ({org name})
и {Porject name} Build Service ({org name})
в эту настройку разрешений. И назначьте им Владелец роль.
Теперь перестройте свой конвейер, и вы увидите, что он может успешно получить доступ к каналу.