如何使用PowerShell在Azure DevOps管道中运行git push ?



我正在从Azure DevOps管道更改存储库中的文件。我能够添加和提交这些更改,但是,我在运行git push命令时遇到了问题。我在一个叫做develop的分支工作,我所有的文件都在根目录下。

azure-pipelines.yml

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
        git config --global user.email "user@email.com"
        git config --global user.name "User Name"
        git add .
        git commit -m "Updated README"
        git push origin HEAD:develop

这给了我错误:[detached HEAD d646d26]更新自述文件1个文件被修改,3个插入(+),3个删除(-)fatal:无法读取"https://@dev.azure.com"的密码:终端提示被禁用##[错误]PowerShell退出代码'1'.

这是一个权限问题,还是我推到开发分支不正确?还有,是否有更好/更简单的方法来做到这一点?

我认为这是因为您需要持久化您的凭据,我这样做了,但这将取决于您需要管理的分支:

stages:
- stage: create_file
  jobs:
  - job: copy_vm_template
    steps:
    - checkout: self  
      persistCredentials: true
    - script: |
        git checkout -b main
        echo Creating directory
        mkdir ./linuxvm/$(echo ${{parameters.vm_name}})
        echo Creating vm file
        cp ./linuxvm/template/vm.tf ./linuxvm/$(echo ${{parameters.vm_name}})/$(echo ${{parameters.vm_name}}).tf
        git config --global user.email "your_mail@test.com"
        git config --global user.name "your_user"
        git status
        git add linuxvm/$(echo ${{parameters.vm_name}})
        git commit -m "Your message"
        git push origin main
# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://learn.microsoft.com/azure/devops/pipelines/languages/javascript
trigger:
  - master
  - azure-pipelines
pr: none
pool:
  vmImage: "macos-latest"
jobs:
  - job: Perform_Commit_From_CI
    steps:
      - checkout: self
        persistCredentials: true #Important - Persist creds to run further git command
        clean: true
      - task: NodeTool@0
        inputs:
          versionSpec: "16.13.2"
        displayName: "Install Node.js"
      - script: |
          git config --global user.email test@gmail.com
          git config --global user.name "Test User"
        displayName: Configure git
      - script: |
          yarn install
          yarn start NAME_OF_THE_SCRIPT_YOU_WANT_TO_EXECUTE
          git add -A
          git commit -m 'Test commit [skip ci]'
          git push origin HEAD:your-branch-name-here 
        displayName: "Test Script"

如果没有PAT

最新更新