标签: azure-devops

将我的构建部署到 azure 时(我使用 Devops 管道,但我也尝试直接通过 Visual Studio 进行部署),我不断收到资源未找到 404

当我尝试将 .net core 2.2 webapi 发布到我的 azure 应用程序服务(通过使用 Azure 应用程序服务部署的 azure devops 或通过 Visual Studio 发布方法)时,我不断收到:“您正在查找的资源已被删除,其名称已被删除已更改,或暂时不可用。”

但是当我直接使用 Visual Studio 发布它(没有包或 zip 配置)时,它就可以工作了。(但我们不能继续这样做,因为我们需要它在 azure devops 管道上工作)。

我尝试使用 dotnet build/publish 和 vsbuild 以不同的方式构建项目。我还尝试使用不同的发布方法(zip、package、web 部署)。

我仔细检查了生成的 xml 文件(deploy.cmd、deploy-readme、parameters、setparametersa 和 sourcemanifest),检查是否存在错误的命名问题,或者文件夹结构是否不正确,但一切都正确匹配。我的项目所在的 zip 文件也与所有生成的 xml 文件(根)位于同一位置。

奇怪的是,它之前可以正常工作,而我们正在使用 terraform 来生成天蓝色资源。所以我们扔掉了手动制作的资源并使用 terraform 重新制作了它们,然后我们得到了错误。我们没有改变管道上的任何内容。

yaml 从管道构建代码​​:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true …
Run Code Online (Sandbox Code Playgroud)

msbuild webdeploy azure-web-app-service azure-devops terraform-provider-azure

1
推荐指数
1
解决办法
2662
查看次数

使用个人访问令牌进行 azure devops API 存储库操作

我已从 Azure Devops 用户界面生成了个人访问令牌,但无法使用它向 Devops API 发出请求。

我尝试了许多不同的标头字段,但我总是被重定向到登录页面,就好像我没有经过身份验证一样。

token = #Token generated on Devops project page
token_bytes = token.encode('utf-8')
token64 = base64.b64encode(token_bytes)
authorization_string = "basic " + str(token64)

repo_endpoint_url = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=5.1".format(organization=organization, project=project)

headers = {"Content-Type" : "application/json", "Authorization" : authorization_string}

response = requests.get(repo_endpoint_url, headers)
Run Code Online (Sandbox Code Playgroud)

响应始终为 203,登录页面为 HTML。如果标头中没有访问令牌,这就是我期望看到的内容。

我尝试过使用“Bearer”而不是“basic”,我尝试过添加 {username}:{token} 以及许多其他小调整。

我究竟做错了什么?

python request access-token azure-devops azure-devops-rest-api

1
推荐指数
1
解决办法
2756
查看次数

NPM 损坏类型错误:无法读取未定义的属性“已加载”

NPM 已通过 Azure DevOps 代理安装在我的 mac os Mojave v10.14.6 上。我可以访问 npm 但任何命令都会给出相同的错误。这是唯一有效的命令 sudo npm --version =6.12.0 sudo npm -p process.platform = darwin

这与我在任何其他命令中收到的错误消息相同:

错误:EISDIR:对目录进行非法操作,读取 TypeError:无法在退出时读取未定义的属性“加载”(/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:97:27) errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3) 位于 /usr/local/lib/node_modules/npm/bin/npm-cli.js:78:20在 cb (/usr/local/lib/node_modules/npm/lib/npm.js:225:22) 在 /usr/local/lib/node_modules/npm/lib/npm.js:263:24 在 /usr/local /lib/node_modules/npm/lib/config/core.js:81:7 at Array.forEach () at /usr/local/lib/node_modules/npm/lib/config/core.js:80:13 at f ( /usr/local/lib/node_modules/npm/node_modules/once/once.js:25:25)在最终确定(/usr/local/lib/node_modules/npm/lib/config/core.js:187:14)/ usr/local/lib/node_modules/npm/lib/utils/error-handler.js:97 var doExit = npm.config.loaded ?npm.config.get('_exit') : true

我已经从nodejs.org下载了最新版本的节点版本,但这没有帮助。我相信问题是它缺少 .npmrc 但我可能是错的。我运行了locate命令,以下是deb/myagent下的所有结果,都是用于构建应用程序的azure devops拉取源:

Mac-mini:/sedev$ 定位 .npmrc

/Applications/Xcode.app/Contents/Developer/usr/share/xcs/xcsd/node_modules/nsp/node_modules/npmconf/test/fixtures/.npmrc
/Applications/Xcode.app/Contents/Developer/usr/share/xcs/xcsd/node_modules/nsp/node_modules/silent-npm-registry-client/node_modules/npm-registry-client/node_modules/npmlog/.npmrc
/Users/sedev/.npmrc
/Users/sedev/myagent/_work/10/s/app.WebUi/wwwroot/bower_components/vaadin-checkbox/.npmrc
/Users/sedev/myagent/_work/10/s/app.WebUi/wwwroot/bower_components/vaadin-control-state-mixin/.npmrc
/Users/sedev/myagent/_work/10/s/app.WebUi/wwwroot/bower_components/vaadin-element-mixin/.npmrc
/Users/sedev/myagent/_work/10/s/app.WebUi/wwwroot/bower_components/vaadin-grid/.npmrc
/Users/sedev/myagent/_work/10/s/app.WebUi/wwwroot/bower_components/vaadin-grid-5.0.0-alpha6/.npmrc
/Users/sedev/myagent/_work/10/s/app.WebUi/wwwroot/bower_components/vaadin-icons/.npmrc
/Users/sedev/myagent/_work/10/s/app.WebUi/wwwroot/bower_components/vaadin-text-field/.npmrc
/Users/sedev/myagent/_work/10/s/app.WebUi/wwwroot/bower_components/vaadin-themable-mixin/.npmrc
Mac-mini:/ sedev$ 
Run Code Online (Sandbox Code Playgroud)

macos npm azure-devops

1
推荐指数
1
解决办法
8617
查看次数

Azure DevOps 在 bash 任务内生成密码

我想在 bash 任务中生成一个密码。我想出了以下几点:

- task: Bash@3
    displayName: 'Bash generate password'
    inputs:
      targetType: 'inline'
      script: |
        password=$(cat /dev/urandom | tr -dc 'A-Za-z0-9_!@#$%^&*()\-+=' | fold -w 32 | head -n 1)

        echo "##vso[task.setvariable variable=password]$password"
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎不起作用,因为任务会永远运行。代理是Linux机器。

bash azure azure-devops

1
推荐指数
1
解决办法
1641
查看次数

Azure DevOps 不会从 ZIP Deploy 发布 Web 应用程序,而是将其作为只读 ZIP 包运行

我们有一个 Azure DevOps Pipeline,它以 ZIP 包https://learn.microsoft.com/en-us/azure/app-service/deploy-run-package的形式运行我们的应用程序 ,而不是 ZIP Deploy。因此,我们无法通过 SFTP 进入我们的 Web 应用程序并进行更改。为什么 Pipeline 将我们的应用程序作为 ZIP 包运行,我们如何更改它?这是管道:

trigger: none

pool:
  vmImage: 'windows-latest'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: 'Solution1.sln'

- task: VSBuild@1
  inputs:
    solution: '$(agent.builddirectory)\s\Folder\Project.csproj'
    msbuildArgs: '/p:OutputPath="$(build.binariesDirectory)\Folder\bin" /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:SkipInvalidConfigurations=true /p:publishUrl="$(build.artifactStagingDirectory)\ProjectTempFolder"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: CopyFiles@2
  inputs:
    SourceFolder: '$(build.artifactStagingDirectory)\ProjectTempFolder'
    Contents: |
      **
    TargetFolder: '$(build.ArtifactStagingDirectory)\ProjectArtifacts'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(build.ArtifactStagingDirectory)\ProjectArtifacts'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(build.ArtifactStagingDirectory)\Project.zip'
    replaceExistingArchive: true

- task: PublishBuildArtifacts@1
  inputs: …
Run Code Online (Sandbox Code Playgroud)

azure azure-web-app-service azure-devops

1
推荐指数
1
解决办法
5568
查看次数

ng build --prod 无法在 Azure CICD 管道中工作

我正在 Azure 中设置应用程序 CI/CD,但我不明白为什么它在构建过程中仍然失败。

这是我的 yaml

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '8.x'
  displayName: 'Install Node.js'

- script: |
    npm install
  displayName: 'npm install'

- script: |
    npm uninstall -g angular-cli
    npm cache clean or npm cache verify #(if npm > 5)
    npm install -g @angular/cli@7.1.4
  displayName: 'npm install @angular/cli'

- script: |
    ng build --prod
  displayName: 'npm build'
- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '/src/app/dist/my-app'
    includeRootFolder: true
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
    replaceExistingArchive: true
Run Code Online (Sandbox Code Playgroud)

我以为是 …

azure-devops angular

1
推荐指数
1
解决办法
4510
查看次数

Azure管道在拉取请求分支上运行构建

有什么方法可以运行具有稳定分支的功能分支更改的管道吗?

1)我有 2 个分支,分别称为 developfeature

develop2)我正在尝试在分支与分支之间执行拉取请求feature

3)我已经在开发分支策略下进行了配置以运​​行成功的管道。使用了以下文档

4)当我们运行拉取请求时,它会合并并在分支更改的develop分支上运行管道feature还是仅在develop分支上运行管道?


坦率地说,我的问题是,当启动 PR 时,它会处理子分支与源分支的新更改并在源分支上运行管道吗?

谢谢!

git azure-devops azure-pipelines

1
推荐指数
1
解决办法
1200
查看次数

基于触发器的相同 Azure Pipeline 的不同代理池或需​​求

我有一个用 YAML 编写的 Azure Pipeline,只要对分支进行更改,它就会从 CI 触发器运行master。它还可以从拉取请求或由用户针对任何分支手动触发。

由于使用了许多许可组件,因此构建master需要在特定代理上运行。其他版本则不然,事实上我宁愿它们在其他代理上运行。

所以我的问题是,有没有办法根据触发构建的内容或构建正在构建的分支来在 YAML 管道中指定不同的代理/池?我希望这是在管道中永久配置的行为,而不是要求用户在他们希望在其他地方构建的每个分支上更新 YAML。

我在有关池/需求/条件关键字的文档部分中看不到任何明显的内容。

azure-devops azure-pipelines

1
推荐指数
1
解决办法
5974
查看次数

在Azure模板存储库中,有没有办法提及azure任务“pythonScript”的filePath参数的存储库?

我有一个用于构建管道的模板存储库,名为“azure-templates-repo”,我有 python 任务模板,如下所述:

steps:
- task: PythonScript@0
  inputs:
    scriptSource: 'filepath'
    scriptPath: 'python_test.yml' #this is located on repo: 'azure-templates-repo'
Run Code Online (Sandbox Code Playgroud)

azure-pipeline.yml我的问题是关于 scriptPath,当我在存储库的构建管道中使用此模板时,azure 尝试在文件真正所在的位置my-great-app查找该文件。my-great-appazure-templates-repo

那么,有没有办法提及 azure 任务“pythonScript”的 filePath 参数的存储库?

azure azure-devops azure-pipelines

1
推荐指数
1
解决办法
480
查看次数

当构建管道中存在相同的任务时,发布管道的目的是什么?

我正在使用天蓝色的构建和发布管道。据我了解,构建管道会生成可供发布管道使用的工件,并且部署可以组织成多个阶段,并提供部署/重新部署阶段的选项。

但是,我还注意到发布管道中可用的所有任务也可以在构建管道中使用。构建管道的文档还指出它可用于构建、测试和部署。那么使用发布管道到底有什么好处呢?

azure azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline

1
推荐指数
2
解决办法
3431
查看次数