2011-08-11 17 views
18

Trong TeamCity có cách nào dễ dàng để có được một biến cho ngày hiện tại ở định dạng MMdd (ví dụ 0811 cho 8-Aug)?TeamCity Current Date biến ở định dạng MMdd

Google-fu của tôi không bật plugin hiện có. Tôi nhìn vào viết một plugin, nhưng không có một jdk cài đặt, mà trông tốn thời gian.

Trả lời

7

Các Groovy Plugin cho TeamCity cung cấp xây dựng bất động sản bắt đầu ngày/giờ:

Cung cấp xây dựng bất động sản:

system.build.start.date/env.BUILD_START_DATE

system.build.start .time/env.BUILD_START_TIME

This blog post có cài đặt/cấu hình hướng dẫn cho plugin Groovy, cũng như một ví dụ về tùy chỉnh định dạng ngày/giờ.

+4

Liên kết blog bị hỏng. –

+0

@Bilal Bạn có thể tóm tắt cách tùy chỉnh định dạng ngày/giờ khi liên kết bị hỏng, tôi không thể tìm thấy thông tin đó ở bất cứ đâu – PeteN

+0

@pete Liên kết blog hoạt động hiện đã được thêm vào. –

1

Bạn cũng có thể dùng thử Date Build Number trình cắm. Nó povides bổ sung var trong định dạng số xây dựng chứ không phải là xây dựng tài sản.

33

này là khá dễ dàng để làm với một bước PowerShell xây dựng (không cần plugin) bằng cách sử dụng đoạn mã sau nguồn:

echo "##teamcity[setParameter name='env.BUILD_START_TIME' value='$([DateTime]::Now)']" 

hoặc (đối với UTC):

echo "##teamcity[setParameter name='env.BUILD_START_TIME' value='$([DateTime]::UtcNow)']" 

này sử dụng TeamCity của Service Message tính năng cho phép bạn tương tác với công cụ xây dựng tại thời điểm chạy ví dụ thiết lập các thông số xây dựng.

Sau đó bạn có thể tham khảo thông số xây dựng này từ những nơi khác trong TeamCity sử dụng cú pháp %env.BUILD_START_TIME%

Ưu điểm của phương pháp này là bạn không cần phải sử dụng một plugin. Bất lợi là bạn cần phải giới thiệu một bước xây dựng.

+7

Mẹo hay, Đây là định dạng với mili giây và đường dẫn thân thiện '[DateTime] :: Now.ToString (" yyyyMMdd_hhmmssff ")' – iraSenthil

+9

Bạn cũng phải xác định env.BUILD_START_TIME trong tệp buildAgent.properties của tác nhân. Nếu không TeamCity sẽ không phù hợp với một đại lý tương thích. – seldary

+0

@seldary, cảm ơn mẹo ở đây về việc xác định thuộc tính trong tác nhân tạo.Làm thế nào để tôi thực sự đảm bảo rằng giá trị powershell được đẩy tới tác nhân xây dựng, nếu tôi định nghĩa thuộc tính env, nó sẽ ghi đè giá trị máy chủ xây dựng? –

4

Đối với đại lý xây dựng dựa trên Unix Tôi đề nghị kịch bản tùy chỉnh kế tiếp là một trong những build lệnh:

export current_build_date_format="+%%Y.%%m.%%d" 
export current_build_date="$(date $current_build_date_format)" 
echo "##teamcity[setParameter name='env.current_build_date' value='$current_build_date']" 

Bạn phải chắc% dấu đôi để tránh giải thích cho date thực thi dòng lệnh lập luận FORMAT chuỗi (xem% Y.% m.% D) như biến TeamCity hiện có.

0

Để thêm thư mục ngày vào bản dựng của tôi trong TeamCity, tôi đã thêm phần sau vào tập lệnh tùy chỉnh của mình. Điều gì khiến tôi mắc kẹt là dấu% kép trong chuỗi ngày tháng. D'oh

TARGET_DIR=/Users/admin/build/daily 
TARGET=$(date "+%%Y-%%m-%%d") 

if [ ! -d ${TARGET_DIR} ]; then 
    mkdir -vp ${TARGET_DIR}/ 
fi 
mv -v build.dmg ${TARGET_DIR}/build_${TARGET}.dmg 
Các vấn đề liên quan