2015-06-14 32 views
11

Tôi muốn tự động gắn thẻ một cam kết khi xây dựng thành công trên VSO build vNext. Tôi đã đọc tài liệu bao gồm trang này https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables và tôi đã thiết lập một tập lệnh PowerShell nhỏ. Trước hết, có vẻ như biến BUILD_REPOSITORY_AUTH_USERNAME (và mật khẩu bạn bè của nó) trống. Tôi đoán họ chỉ có sẵn với gits bên ngoài? Thứ hai, có vẻ như việc thanh toán cho xây dựng được thực hiện thông qua các tác vụ chạy LibGit2Sharp, do đó thông tin đăng nhập không được lưu trữ trong bất kỳ trình trợ giúp nào.Thẻ Git ở cuối xây dựng trên Visual Studio Online (Xây dựng vNext, lưu trữ nhóm)

Đây là kịch bản PowerShell tôi:

git tag $Env:BUILD_BUILDNUMBER 
git status 
git config -l 
git push --progress https://$Env:GITUSER:$Env:[email protected]/DefaultCollection/_git/myproject tag $Env:BUILD_BUILDNUMBER 
git status 
exit 

Nó hoạt động tốt trên máy tính của tôi, nhưng trên đại lý (hồ lưu trữ) nhưng có vẻ như để treo trên các đại lý tại các lệnh push (sau 1h, nó đã tự động bị giết bởi bộ điều khiển).

Dưới đây là nhật ký:

****************************************************************************** 
Starting task: Powershell: tools/GitCommands.ps1 
****************************************************************************** 
HEAD detached at 819e778 
nothing to commit, working directory clean 
core.symlinks=false 
core.autocrlf=true 
color.diff=auto 
color.status=auto 
color.branch=auto 
color.interactive=true 
pack.packsizelimit=2g 
help.format=html 
http.sslcainfo=/bin/curl-ca-bundle.crt 
sendemail.smtpserver=/bin/msmtp.exe 
diff.astextplain.textconv=astextplain 
rebase.autosquash=true 
core.bare=false 
core.filemode=false 
core.symlinks=false 
core.ignorecase=true 
core.logallrefupdates=true 
core.repositoryformatversion=0 
remote.origin.url=https://myrepo.visualstudio.com/DefaultCollection/_git/myproject 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 

****************************************************************************** 
Finishing task: PowerShell 
****************************************************************************** 

Như bạn thấy, không có log cho việc đẩy mạnh cũng không phải là lệnh trạng thái. Bất kỳ ý tưởng nào về cách đạt được điều này?

+0

Dường như không còn biến env BUILD_REPOSITORY_AUTH_USERNAME nữa. do đó, nó là một câu hỏi lớn làm thế nào để ủy quyền vào git. – Ilya

Trả lời

9

Để trả lời câu hỏi (hoặc tốt hơn tiêu đề của câu hỏi). Chỉ cần để cho vNext build làm điều đó.

enter image description here

Như đã đề cập trong các ý kiến, điều này không có sẵn cho các kho git bên ngoài.

+0

Tại sao điều này không được bỏ phiếu? Có vẻ tốt. Nó có sai không ?? –

+0

Bất kỳ ý tưởng làm thế nào bạn có thể có được một tùy chỉnh, trong kịch bản được xác định biến trong đó, chẳng hạn như đầu ra của GitVersion? – MytyMyky

+0

Đã tìm ra - bạn có thể cập nhật lệnh buildNumber bằng lệnh ghi nhật ký và sau đó sử dụng chiến lược ở trên! https://github.com/Microsoft/vso-agent-tasks/issues/375 – MytyMyky

0

Tôi đang tự trả lời những gì tôi đang cố gắng làm (thẻ git là một trong số ít tác vụ tôi muốn làm). Bây giờ có thể thực thi lệnh git trong các tập lệnh. Các tài liệu là ở đây: https://www.visualstudio.com/en-us/docs/build/scripts/git-commands

Đây là howto:

Enable script để chạy Git lệnh

quyền kiểm soát phiên bản Grant để xây dựng dịch vụ:

  • Go vào tab bảng điều khiển Phiên bản kiểm soát ▼
  • Trên t tab Version Control, chọn kho lưu trữ mà bạn muốn chạy lệnh Git, sau đó chọn Project Collection Build Service.
  • Cấp quyền cần thiết cho các lệnh Git bạn muốn chạy.

Thông thường bạn sẽ muốn cấp:

  • tạo chi nhánh: Cho phép
  • Đóng góp: Cho phép
  • đọc: Kế thừa cho phép tạo
  • Tag: di truyền cho phép

Khi bạn đã hoàn tất việc cấp quyền, hãy đảm bảo nhấp vào Lưu thay đổi.

Enable định nghĩa xây dựng của bạn để chạy Git.exe

Trên tab biến đặt biến này: system.prefergit để true

Trên tab tùy chọn chọn Allow scripts để truy cập mã thông báo OAuth.

+0

Trên 'git push origin * ref *' Tôi bị 'gây tử vong: không thể đọc Tên người dùng cho * URL *: Đối số không hợp lệ', bất kỳ đầu mối nào tôi có thể làm gì? Tôi có cần thêm thông tin đăng nhập vào máy chủ TFS (trên tiền tố) không? – Love

Các vấn đề liên quan