2012-08-30 22 views
9

chúng tôi đang chạy máy chủ xây dựng Tre của Atlassian 4.1.2 trên máy tính Windows. Tôi đã tạo một tập tin thực thi được thực hiện trong một nhiệm vụ. Tập lệnh chỉ được tham chiếu trong tệp .bat không phải là nội tuyến trong tác vụ. (ví dụ: createimage.bat)Thay thế biến thể tre trong tệp hàng loạt

Trong vòng createimage.bat tôi muốn sử dụng các biến PLAN của Bamboo. Cú pháp biến thông thường không hoạt động, có nghĩa là không được thay thế. Một dòng trong kịch bản có thể là ví dụ:

goq-image - $ {} bamboo.INTERNALVERSION -SB $ {} bamboo.buildNumber

Bất kỳ ý tưởng?

Cảm ơn trước

Chris

+0

tôi tìm thấy bài viết này: https://answers.atlassian.com/questions/66109/accessing-build-specific-variables-from -script-without-have-to-use-môi trường-biến-box-on-script-config-page – Chris

Trả lời

13

Bạn đang sử dụng Bamboo variables cú pháp nội bộ, nhưng Script Task đi những thành môi trường kịch bản của hệ điều hành và họ cần phải được tham chiếu với cú pháp tương ứng cho phù hợp, ví dụ (Xin lưu ý các dấu gạch giữa các học kỳ):

  • Unix - goq-image-$bamboo_INTERNALVERSION-SB$bamboo_buildNumber
  • Windows - goq-image-%bamboo_INTERNALVERSION%-SB%bamboo_buildNumber%

Đáng ngạc nhiên, tôi không thể tìm thấy một tài liệu tham khảo chính thức cho sự thay đổi Windows, chỉ có Using variables in bash đúng bây giờ:

Biến tre được xuất dưới dạng biến bash shell. Tất cả các điểm dừng đầy đủ (dấu chấm) được chuyển thành dấu gạch dưới. Ví dụ: biến số bamboo.my.variable là $ bamboo_my_variable trong bash. Điều này liên quan đến Tác vụ Tập lệnh tệp (không phải tác vụ Inline Script).

Tuy nhiên, tôi đã tìm cú pháp Windows từ tài liệu Atlassian tại một số điểm, và thử nghiệm và sử dụng nó như tài liệu trong Bamboo Variable Substitution/Definition:

  • các biến này cũng có sẵn như là biến môi trường trong Tác vụ Kịch bản ví dụ, mặc dù được đặt tên hơi khác nhau, ví dụ: $ bamboo_custom_aws_cfn_stack_StringWithRegex (Unix) hoặc % bamboo_custom_aws_cfn_stack_StringWithRegex% (Windows)