From 4956977a4dbd7e55e3c3b714e3788d9fc56e8a38 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Tue, 30 Nov 2021 17:04:38 -0500 Subject: [PATCH 1/2] Adding test of serial form of `program.dat` including pickles --- Jenkinsfile | 2 +- pom.xml | 13 ++ .../plugins/workflow/cps/SerialFormTest.java | 100 +++++++++++++ .../persistence-workspace/p/running | 0 .../p@tmp/durable-dae459c1/jenkins-log.txt | 133 ++++++++++++++++++ .../p@tmp/durable-dae459c1/jenkins-result.txt | 1 + .../p@tmp/durable-dae459c1/script.sh | 1 + .../persistence/jobs/p/builds/1/build.xml | 50 +++++++ .../persistence/jobs/p/builds/1/log | 10 ++ .../persistence/jobs/p/builds/1/log-index | 4 + .../persistence/jobs/p/builds/1/program.dat | Bin 0 -> 8172 bytes .../jobs/p/builds/1/workflow/2.xml | 12 ++ .../jobs/p/builds/1/workflow/3.xml | 34 +++++ .../jobs/p/builds/1/workflow/4.xml | 16 +++ .../jobs/p/builds/1/workflow/5.xml | 26 ++++ .../persistence/jobs/p/builds/legacyIds | 0 .../persistence/jobs/p/builds/permalinks | 1 + .../persistence/jobs/p/config.xml | 11 ++ .../persistence/jobs/p/nextBuildNumber | 1 + .../persistence/nodes/remote/config.xml | 17 +++ ...lugins.workflow.flow.FlowExecutionList.xml | 7 + ...nkins.slaves.JnlpSlaveAgentProtocol.secret | Bin 0 -> 48 bytes .../persistence/secrets/master.key | 1 + 23 files changed, 439 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/jenkinsci/plugins/workflow/cps/SerialFormTest.java create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p/running create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/jenkins-log.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/jenkins-result.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/script.sh create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/build.xml create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/log create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/log-index create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/program.dat create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/2.xml create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/3.xml create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/4.xml create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/5.xml create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/legacyIds create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/permalinks create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/config.xml create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/nextBuildNumber create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/nodes/remote/config.xml create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/org.jenkinsci.plugins.workflow.flow.FlowExecutionList.xml create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/secrets/jenkins.slaves.JnlpSlaveAgentProtocol.secret create mode 100644 src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/secrets/master.key diff --git a/Jenkinsfile b/Jenkinsfile index b94810a26..0f35d2714 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,5 @@ buildPlugin(useContainerAgent: true, configurations: [ - [ platform: "linux", jdk: "8" ], + [ platform: "docker", jdk: "8" ], [ platform: "windows", jdk: "8" ], [ platform: "linux", jdk: "11" ] ]) diff --git a/pom.xml b/pom.xml index 81c2e1bed..465c4940e 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,7 @@ jenkinsci/${project.artifactId}-plugin 2.222.4 8 + 1660.v6473eba99a2c false 1.32 12.19.0 @@ -253,6 +254,18 @@ pipeline-stage-step test + + org.testcontainers + testcontainers + 1.16.2 + test + + + org.slf4j + slf4j-api + + + diff --git a/src/test/java/org/jenkinsci/plugins/workflow/cps/SerialFormTest.java b/src/test/java/org/jenkinsci/plugins/workflow/cps/SerialFormTest.java new file mode 100644 index 000000000..abfb7a436 --- /dev/null +++ b/src/test/java/org/jenkinsci/plugins/workflow/cps/SerialFormTest.java @@ -0,0 +1,100 @@ +/* + * The MIT License + * + * Copyright 2021 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package org.jenkinsci.plugins.workflow.cps; + +import hudson.model.Node; +import hudson.model.Slave; +import hudson.slaves.SlaveComputer; +import java.net.URL; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import org.jenkinsci.plugins.workflow.job.WorkflowJob; +import org.jenkinsci.plugins.workflow.job.WorkflowRun; +import org.jenkinsci.plugins.workflow.pickles.Pickle; +import org.junit.AfterClass; +import org.junit.Test; +import org.junit.Assume; +import org.junit.BeforeClass; +import org.junit.Rule; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.RealJenkinsRule; +import org.jvnet.hudson.test.recipes.LocalData; +import org.testcontainers.DockerClientFactory; +import org.testcontainers.Testcontainers; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.utility.MountableFile; + +/** + * Test compatibility of the format of {@code program.dat} as well as various {@link Pickle}s. + */ +public class SerialFormTest { + + private static final String AGENT_NAME = "remote"; + private static final String AGENT_SECRET = "defebc83e8736659464a172801f43de376f751891e69cb6ece89e856d6cc3b48"; + + private static GenericContainer agentContainer; + + @BeforeClass public static void dockerCheck() throws Exception { + try { + DockerClientFactory.instance().client(); + } catch (Exception x) { + Assume.assumeNoException("does not look like Docker is available", x); + } + } + + @AfterClass public static void terminateContainer() throws Exception { + if (agentContainer != null && agentContainer.isRunning()) { + agentContainer.stop(); + } + } + + @Rule public RealJenkinsRule rr = new RealJenkinsRule(); + + @LocalData + @Test public void persistence() throws Throwable { + rr.startJenkins(); + URL u = rr.getUrl(); + Testcontainers.exposeHostPorts(u.getPort()); + agentContainer = new GenericContainer<>("jenkins/inbound-agent"). + withEnv("JENKINS_URL", new URL(u.getProtocol(), "host.testcontainers.internal", u.getPort(), u.getFile()).toString()). + withEnv("JENKINS_AGENT_NAME", AGENT_NAME). + withEnv("JENKINS_SECRET", AGENT_SECRET). + withEnv("JENKINS_WEB_SOCKET", "true"); + agentContainer.start(); + agentContainer.copyFileToContainer(MountableFile.forClasspathResource(SerialFormTest.class.getName().replace('.', '/') + "/persistence-workspace"), "/home/jenkins/agent/workspace"); + rr.runRemotely(SerialFormTest::_persistence); + } + private static void _persistence(JenkinsRule r) throws Throwable { + Node agent = r.jenkins.getNode(AGENT_NAME); + assertThat(agent, notNullValue()); + assertThat(((SlaveComputer) agent.toComputer()).getJnlpMac(), is(AGENT_SECRET)); + r.waitOnline((Slave) agent); + WorkflowJob p = r.jenkins.getItemByFullName("p", WorkflowJob.class); + WorkflowRun b = p.getBuildByNumber(1); + r.assertBuildStatusSuccess(r.waitForCompletion(b)); + } + +} diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p/running b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p/running new file mode 100644 index 000000000..e69de29bb diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/jenkins-log.txt b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/jenkins-log.txt new file mode 100644 index 000000000..2ff834680 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/jenkins-log.txt @@ -0,0 +1,133 @@ ++ touch running ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 ++ [ -f running ] ++ sleep 1 diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/jenkins-result.txt b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/jenkins-result.txt new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/jenkins-result.txt @@ -0,0 +1 @@ +0 diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/script.sh b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/script.sh new file mode 100644 index 000000000..aeddacc3d --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence-workspace/p@tmp/durable-dae459c1/script.sh @@ -0,0 +1 @@ +touch running; while [ -f running ]; do sleep 1; done \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/build.xml b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/build.xml new file mode 100644 index 000000000..a97210dfd --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/build.xml @@ -0,0 +1,50 @@ + + + + + 34 + + + 1 + 1638308102618 + 1638308102633 + 0 + UTF-8 + false + + SUCCESS + + + MAX_SURVIVABILITY + + + flowNode + 71664725 + + + classLoad + 503032612 + + + run + 2013078534 + + + parse + 634788612 + + + saveProgram + 157243273 + + + true + 5 + 1:5 + 2 + false + false + + false + + \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/log b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/log new file mode 100644 index 000000000..edecede66 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/log @@ -0,0 +1,10 @@ +Started +Running in Durability level: MAX_SURVIVABILITY +ha:////4C4s8GpgRgC7jL1Vc6+MQZUhj5+pxM2y2IilVjG9e5RaAAAAoh+LCAAAAAAAAP9tjTEOwjAQBM8BClpKHuFItIiK1krDC0x8GCfWnbEdkooX8TX+gCESFVvtrLSa5wtWKcKBo5UdUu8otU4GP9jS5Mixv3geZcdn2TIl9igbHBs2eJyx4YwwR1SwULBGaj0nRzbDRnX6rmuvydanHMu2V1A5c4MHCFXMWcf8hSnC9jqYxPTz/BXAFEIGsfuclm8zQVqFvQAAAA==[Pipeline] Start of Pipeline +ha:////4MwOmZDnQUlX3FPa62Hf2kYUe6i49FlqM4oh1HuXCGDxAAAApR+LCAAAAAAAAP9tjTEOwjAUQ3+KOrAycohUghExsUZZOEFIQkgb/d8mKe3EibgadyBQiQlLlmxL1nu+oE4RjhQdby12HpP2vA+jK4lPFLtroIm3dOGaMFGwXNpJkrGnpUrKFhaxClYC1hZ1oOTRZdiIVt1VExS65pxj2Q4CKm8GeAAThZxVzN8yR9jeRpMIf5y/AJj7DGxXvP/86jduZBmjwAAAAA==[Pipeline] node +Running on ha:////4CLaJebQ3Knjt6rAddxf+RuWnS4i436VjAMYkt3tHTz2AAAAnB+LCAAAAAAAAP9b85aBtbiIQTGjNKU4P08vOT+vOD8nVc83PyU1x6OyILUoJzMv2y+/JJUBAhiZGBgqihhk0NSjKDWzXb3RdlLBUSYGJk8GtpzUvPSSDB8G5tKinBIGIZ+sxLJE/ZzEvHT94JKizLx0a6BxUmjGOUNodHsLgAy2EgZB/eT83ILSktQi/aLUXKAafQAiQtsUxgAAAA==remote in /home/jenkins/agent/workspace/p +ha:////4DkY9lqEYg4baTEkb2FhC5+BuwytGxWEN+/Kps71hDEwAAAApR+LCAAAAAAAAP9tjTEOwjAUQ3+KOrAycoh0gA0xsUZZOEFIQkgb/d8mKe3EibgadyBQiQlLlmxL1nu+oE4RjhQdby12HpP2vA+jK4lPFLtroIm3dOGaMFGwXNpJkrGnpUrKFhaxClYC1hZ1oOTRZdiIVt1VExS65pxj2Q4CKm8GeAAThZxVzN8yR9jeRpMIf5y/AJj7DGxXvP/86jfoP95RwAAAAA==[Pipeline] { +ha:////4N75xltGAcmBKGhiYVX84T5NICPl/mFx9RvMgEd8+nJ1AAAAoh+LCAAAAAAAAP9tjTEOAiEURD9rLGwtPQTbaGWsbAmNJ0AWEZb8zwLrbuWJvJp3kLiJlZNMMm+a93rDOic4UbLcG+wdZu14DKOti0+U+lugiXu6ck2YKRguzSSpM+cFJRUDS1gDKwEbgzpQdmgLbIVXD9UGhba9lFS/o4DGdQM8gYlqLiqVL8wJdvexy4Q/z18BzLEA29ce4gdpL1fxvAAAAA==[Pipeline] sh ++ touch running ++ [ -f running ] ++ sleep 1 diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/log-index b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/log-index new file mode 100644 index 000000000..e8fcd855c --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/log-index @@ -0,0 +1,4 @@ +670 3 +998 +1595 5 +1638 diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/program.dat b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/program.dat new file mode 100644 index 0000000000000000000000000000000000000000..c2f7bd86436e1b21026b2d2f214cc7ceb42fe5d8 GIT binary patch literal 8172 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 + + + + 2 + + + + 1638308103597 + + + \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/3.xml b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/3.xml new file mode 100644 index 000000000..750bb2cd2 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/3.xml @@ -0,0 +1,34 @@ + + + + + 2 + + 3 + org.jenkinsci.plugins.workflow.support.steps.ExecutorStep + + + + + + + label + remote + + + + true + + + 1638308103856 + + + 2 + + + remote + /home/jenkins/agent/workspace/p + + + + \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/4.xml b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/4.xml new file mode 100644 index 000000000..8f2898ba9 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/4.xml @@ -0,0 +1,16 @@ + + + + + 3 + + 4 + org.jenkinsci.plugins.workflow.support.steps.ExecutorStep + + + + + 1638308104322 + + + \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/5.xml b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/5.xml new file mode 100644 index 000000000..bcabf1c18 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/1/workflow/5.xml @@ -0,0 +1,26 @@ + + + + + 4 + + 5 + org.jenkinsci.plugins.workflow.steps.durable_task.ShellStep + + + + + + script + touch running; while [ -f running ]; do sleep 1; done + + + + true + + + 1638308104356 + + + + \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/legacyIds b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/legacyIds new file mode 100644 index 000000000..e69de29bb diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/permalinks b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/permalinks new file mode 100644 index 000000000..48ab9e852 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/builds/permalinks @@ -0,0 +1 @@ +lastSuccessfulBuild -1 diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/config.xml b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/config.xml new file mode 100644 index 000000000..cdfb4633d --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/config.xml @@ -0,0 +1,11 @@ + + + false + + + + true + + + false + \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/nextBuildNumber b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/nextBuildNumber new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/jobs/p/nextBuildNumber @@ -0,0 +1 @@ +2 diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/nodes/remote/config.xml b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/nodes/remote/config.xml new file mode 100644 index 000000000..b38e35d27 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/nodes/remote/config.xml @@ -0,0 +1,17 @@ + + + remote + /home/jenkins/agent + 2 + NORMAL + + + true + remoting + false + + true + + + + \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/org.jenkinsci.plugins.workflow.flow.FlowExecutionList.xml b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/org.jenkinsci.plugins.workflow.flow.FlowExecutionList.xml new file mode 100644 index 000000000..5cbe3329f --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/org.jenkinsci.plugins.workflow.flow.FlowExecutionList.xml @@ -0,0 +1,7 @@ + + + + p + 1 + + \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/secrets/jenkins.slaves.JnlpSlaveAgentProtocol.secret b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/secrets/jenkins.slaves.JnlpSlaveAgentProtocol.secret new file mode 100644 index 0000000000000000000000000000000000000000..f7415e3b0d1413938b6df6c27858d4b26dced837 GIT binary patch literal 48 zcmV-00MGvjrGPt3<}obYL>1$OWMV`1B6nR~k%#zVQyi6|Z2%6QAn|we-*zD&s!&8~ GaK>r^NELDb literal 0 HcmV?d00001 diff --git a/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/secrets/master.key b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/secrets/master.key new file mode 100644 index 000000000..6bad667ce --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/workflow/cps/SerialFormTest/persistence/secrets/master.key @@ -0,0 +1 @@ +de023160e466f84ce8792091eca4f2b76b8ca5a81aa8c7b3819eef35a24c6e4b35d933d1307b0e344d0154cde8438a30ccaf748b04630ef188ffbf1198064aad993519ec802d83573436878ff7dbd8f555283a983b309309142ff46638162302c4a628d0b10488a102d8abb05db5b84f97374ec5daab6fbd33dbd7a44f84bac1 \ No newline at end of file From 97ff6eef5d692e77e0b8db395b68d03af4c843da Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 1 Dec 2021 15:53:43 -0500 Subject: [PATCH 2/2] https://github.com/jenkinsci/jenkins-test-harness/pull/352 released --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 465c4940e..4b3bdc778 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ jenkinsci/${project.artifactId}-plugin 2.222.4 8 - 1660.v6473eba99a2c + 1661.vca80dbae839b false 1.32 12.19.0