Есть ли способ напечатать вчерашнюю дату в конвейере Дженкинса? - PullRequest
0 голосов
/ 25 марта 2020

Мне нужно использовать вчерашнюю дату в одном из моих трубопроводов Дженкинса.

Есть ли способ напечатать вчерашнюю дату в сценарии конвейера jenkins.

def date = new date()
println date // this is printing the current date 

def date1 = date - 1 or date.minus(1)
println date 1 // This is also printing the current date.

Есть ли способ получить вчерашнюю дату в скрипте конвейера jenkins.

Ответы [ 2 ]

3 голосов
/ 25 марта 2020

Это будет работать.

def today = new Date()
def yesterday = today - 1
println today.format("MM/dd/yyyy")
println yesterday.format("MM/dd/yyyy")

Вывод:

03/25/2020 -- Today's date
03/24/2020 -- Yesterday's date

В то же время, если ниже указан ваш код,

def date = new Date()
println date
def date1 = date - 1
println date1

это будет печатайте так без формата.

Wed Mar 25 09:21:57 GMT 2020
Tue Mar 24 09:21:57 GMT 2020

Пример декларативного конвейера Jenkins:

#! groovy
pipeline {
  agent any
  stages {
    stage('Build') {
        steps {
            script {
                    def today = new Date()
                    def yesterday = today - 1
                    def daybeforeyesterday = yesterday.previous()
                    println "Today: " + today.format("MM/dd/yyyy") + " && Yesterday: " +
                    yesterday.format("MM/dd/yyyy") + " && The Day before yesterday: " +
                    daybeforeyesterday.format("MM/dd/yyyy")
                } 
            }
        }
    }
}

Вывод:

[Pipeline] Start of Pipeline
[Pipeline] node
Running on agent-j2sxm in /home/jenkins/workspace/
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
Today: 03/26/2020 && Yesterday: 03/25/2020 && The Day before yesterday: 03/24/2020
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
0 голосов
/ 25 марта 2020

Это будет работать:

Редактировать: Только что увидел, что я опоздал на несколько секунд, упомянутое решение еще лучше и элегантнее.

import java.time.Instant;
import java.time.temporal.*;

node(){
    Instant now = Instant.now();
    Instant yesterday = now.minus(1, ChronoUnit.DAYS);
    println(now);
    println(yesterday);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...