Commit graph

96 commits

Author SHA1 Message Date
Vikram bir Singh
8d2e1ee546
Build and use gotestsum for running all tests
1. Dockerfile.Windows modified to build gotestsum.exe

2. Use gotestsum.exe in invoking the execution of:

   (a) Unit tests (run in containers),
   (b) Integration tests (run outside containers)
   (c) Integration-cli (run outside containers)

No changes made to other categories of tests (e.g.
LCOW).

3. Copy .xml files produced by gotestsum in
   appropriate paths where Jenkins can ingest them

4. Modify Jenkinsfile to mark results output as
   being jUnit "type" as well as to archive the
   .xml test result files as artifacts.

Signed-off-by: Vikram bir Singh <vikrambir.singh@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-12-19 20:31:22 +01:00
Sam Whited
d6a91ca71c Rename DCO check param in Jenkinsfile
Previously it was a negative parameter for skiping the DCO check, but
this is different from other checks. It was requested that I change this
in #40023 but I'm factoring it out as an unrelated change.

Signed-off-by: Sam Whited <sam@samwhited.com>
2019-10-31 11:56:35 -04:00
Sebastiaan van Stijn
684d0ba98a
Merge pull request #40089 from thaJeztah/fix_buildx_target
Fix various issues with the "make buildx" target
2019-10-22 02:07:05 +02:00
Sebastiaan van Stijn
c110283004
Jenkinsfile: use buildx on s390x and ppc64le
Commit 1be2cc2568 updated the
Makefile to force the use of BuildKit, if `USE_BUILDX` was
not set.

As a side-effect, Jenkins now started using BuildKit on
s390x and ppc64le as well, because it overwrote the
`DOCKER_BUILDKIT=0` that was set.

This commit forces the use of buildx on s390x and ppc64le.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-22 00:01:52 +02:00
Sebastiaan van Stijn
7c5fd83c22
Jenkinsfile: set repo and branch for DCO check as well
Commit 7019b60d0d added these
env-vars to other stages, but forgot to update the DCO stage,
which also does a diff to validate commits that are in a PR.

Also adding openssh-client, for situations where the upstream
needs to be accessed through an ssh connection.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-21 23:30:38 +02:00
Sebastiaan van Stijn
eda98ad00f
Jenkinsfile: aarch64: use new labels to select agents
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-08 18:47:59 +02:00
Sebastiaan van Stijn
a0d670e516
Jenkinsfile: aarch64: sync with latest changes
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-08 18:47:57 +02:00
Sebastiaan van Stijn
14ea1f62eb
Jenkinsfile: aarch64: don't restrict to packet workers only
Pick whatever is available; packet worker, or auto-scaling
a1.xlarge arm64 machines on AWS

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-08 18:47:55 +02:00
Sebastiaan van Stijn
9d5361de3f
Jenkinsfile: rename aarch64 to arm64
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-08 18:47:52 +02:00
Sebastiaan van Stijn
58d57c76b5
Jenkinsfile: aarch64: split into stages, add "print info" unit-tests
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-08 18:47:40 +02:00
Sebastiaan van Stijn
86e0c5a0d4
Jenkinsfile: aarch64: sync stage with other stages
Also switch aarch64 to use overlay2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-08 18:37:17 +02:00
Sebastiaan van Stijn
402c7b1b27
Jenkinsfile: aarch64: move stage inside parallel group
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-08 18:37:15 +02:00
Michael Zhao
af86580000
Test to enable CI on aarch64.
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-08 18:37:10 +02:00
Bertrand Roussel
bef0aca449 Jenkinsfile: fix typo buidx -> buildx
Addressing a small typo noticed in commit c04ea1133d

Signed-off-by: Bertrand Roussel <broussel@sierrawireless.com>
2019-10-06 10:26:55 -07:00
Brian Goff
c04ea1133d Jenkinsfile: Z/Power: use buildx
Z and Power does not currently work with buildkit so use buildx instead.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2019-10-03 14:07:00 -07:00
Sebastiaan van Stijn
7019b60d0d
Jenkinsfile: set repo and branch, to assist validate_diff()
This is a continuation of 2a08f33166247da9d4c09d4c6c72cbb8119bf8df;

When running CI in other repositories (e.g. Docker's downstream
docker/engine repository), or other branches, the validation
scripts were calculating the list of changes based on the wrong
information.

This lead to weird failures in CI in a branch where these values
were not updated ':-) (CI on a pull request failed because it detected
that new tests were added to the deprecated `integration-cli` test-suite,
but the pull request did not actually make changes in that area).

This patch uses environment variables set by Jenkins to sets the
correct target repository (and branch) to compare to.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-03 18:25:35 +02:00
Sebastiaan van Stijn
b323c6e9ae
Jenkinsfile: update references to repositories that were moved
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-26 11:59:13 +02:00
Tibor Vass
f3d8b8ae74 Jenkinsfile: move integration step cleanup to amd64 where it was intended to be
Signed-off-by: Tibor Vass <tibor@docker.com>
2019-09-25 00:02:55 +00:00
Sebastiaan van Stijn
9b07a3e0a5
Merge pull request #39917 from StefanScherer/windows-zap-fixed-subdir
Zap a fixed windows folder, add build number to folder inside
2019-09-23 13:12:29 +02:00
Brian Goff
0f18e434b5
Merge pull request #39911 from tiborvass/gotestsum-integration-cli
hack: have integration-cli use gotestsum codepath
2019-09-19 08:01:25 -07:00
Stefan Scherer
4866207543
Zap a fixed folder, add build number to folder inside
Signed-off-by: Stefan Scherer <stefan.scherer@docker.com>
2019-09-19 15:52:07 +02:00
Tibor Vass
f470698c2c Jenkinsfile: ensure all containers are cleaned up
By convention, containers spawned by jenkins jobs have the name:
docker-pr${BUILD_NUMBER}

That works fine for jobs with a single container. This commit cleans up
when multiple containers are spawned with the convention that their names
share the same "docker-pr${BUILD_NUMBER}-" prefix.

Signed-off-by: Tibor Vass <tibor@docker.com>
2019-09-18 21:48:01 +00:00
Tibor Vass
f1c1cd436a integration-cli: move each test suite to its own TestX testing function
Signed-off-by: Tibor Vass <tibor@docker.com>
2019-09-18 18:26:36 +00:00
Michael Crosby
92cc603036
Merge pull request #39932 from thaJeztah/remove_redundant_dockerfile
Jenkinsfile: remove redundant -f Dockerfile
2019-09-16 11:44:49 -04:00
Sebastiaan van Stijn
64b3d12686
Jenkinsfile: remove redundant -f Dockerfile
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-14 00:54:52 +02:00
Andrew Hsu
e653943e8b run integration-cli stages on s390x and ppc64le if not a PR check
Essentially, run on merge to target branch which may or may not be
master branch. Could be 19.03 branch, for example.

See: https://jenkins.io/doc/book/pipeline/syntax/

Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
2019-09-12 23:53:30 +00:00
Andrew Hsu
039eb05ac8 skip win-RS1 on PRs unless the checkbox is checked
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
2019-09-12 23:53:30 +00:00
Sebastiaan van Stijn
d723643dc3
Jenkinsfile: add TESTDEBUG
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-11 22:33:03 +02:00
Sebastiaan van Stijn
f3be6b346f
integration: use gotestsum to generate junit.xml and go-test-report.json
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-11 22:31:52 +02:00
Tibor Vass
553df774d4
Merge pull request #39802 from thaJeztah/integration_parallel_simplify
integration: simplify parallel run destination
2019-09-11 11:09:54 -07:00
Brian Goff
415bb9695b
Merge pull request #39893 from thaJeztah/jenkinsfile_shorten_names
Jenkinsfile: shorten stage names for consistency and to fit Jenkins UI
2019-09-11 08:47:13 -07:00
Sebastiaan van Stijn
3262a69be6
integration: simplify parallel run destination
'Namespace' parallel runs by bind-mounting a different directory
in the container, instead of making the tests running inside
the container aware of the namespaced location.

This makes it transparent to the tests, and slightly reduces
complexity.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-11 17:18:38 +02:00
Sebastiaan van Stijn
c18f793f40
Jenkinsfile: shorten stage names for consistency and to fit Jenkins UI
The Blue Ocean UI truncates names, which makes it possible to distinguish
which Windows stage is RS1 or RS5. This patch shortens those names so that they
fit in the Blue Ocean UI.

Other stages and parameters were renamed as well to better reflect what they're running;

Before             | After
-------------------|--------------------------------
janky              | amd64
power              | ppc64le
power-master       | ppc64le integration-cli
windowsRS1         | win-RS1
windowsRS5-process | win-RS5
z                  | s390x
z-master           | x390x integration-cli

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

WIP renames

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-10 10:11:00 +02:00
Tibor Vass
7491db3e92 Update Jenkinsfile
Signed-off-by: Tibor Vass <tibor@docker.com>
2019-09-09 21:09:57 +00:00
Tibor Vass
30166b9a4b
Merge pull request #39858 from thaJeztah/Jenkinsfile_windows_bundles
Jenkinsfile: create bundles for Windows stages
2019-09-05 11:19:56 -07:00
Peter Salvatore
85bcc524ea Jenkinsfile hack for auto-cancellation.
This change will cause Jenkins to only build the
latest HEAD of a PR branch, cancelling any
previous builds that may already be in progress.
This will decrease feedback time and help mitigate
resource contention.

Signed-off-by: Peter Salvatore <peter@psftw.com>
2019-09-03 15:26:21 -04:00
Sebastiaan van Stijn
1fbadd76b7
Jenkinsfile: Windows: enabled debug-mode for daemon under test
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-03 18:48:30 +02:00
Sebastiaan van Stijn
6ee61f5493
Jenkinsfile: create bundles for Windows stages
CI already stores the logs of the test daemon, so we might as well
store them as artifacts

```
[2019-09-03T12:49:39.835Z] INFO: Tidying up at end of run
[2019-09-03T12:49:39.835Z] INFO: Saving daemon under test log (d:\CI-2\CI-3593e7622\dut.out) to C:\windows\TEMP\CIDUT.out
[2019-09-03T12:49:39.835Z] INFO: Saving daemon under test log (d:\CI-2\CI-3593e7622\dut.err) to C:\windows\TEMP\CIDUT.err
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-03 18:48:27 +02:00
Sebastiaan van Stijn
ca1e7a3b4a
Jenkinsfile: fix invalid expression in bundles script
This was introduced in a76ff632a4:

    + find bundles -path */root/*overlay2 -prune -o -type f ( -o -name *.log -o -name *.prof ) -print
    find: invalid expression; you have used a binary operator '-o' with nothing before it.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-28 02:16:40 +02:00
Sebastiaan van Stijn
001b78bffe
Merge pull request #39790 from thaJeztah/jenkinsfile_linting_and_skipping
integration: fix some linting issues, and don't fail build on artifact uploads
2019-08-27 15:34:04 +02:00
Sebastiaan van Stijn
a76ff632a4
Jenkinsfile: don't mark build failed when failing to create bundles
Failing to archive the bundles should not mark the build as failed.
This can happen if a build is terminated early, or if (to be implemented)
an optional build-stage is skipped / failed;

```
2019-08-24T10:53:09.354Z] + bundleName=janky
[2019-08-24T10:53:09.354Z] + echo Creating janky-bundles.tar.gz
[2019-08-24T10:53:09.354Z] Creating janky-bundles.tar.gz
[2019-08-24T10:53:09.354Z] + xargs tar -czf janky-bundles.tar.gz
[2019-08-24T10:53:09.354Z] + find bundles -path */root/*overlay2 -prune -o -type f ( -name *-report.json -o -name *.log -o -name *.prof -o -name *-report.xml ) -print
[2019-08-24T10:53:09.354Z] find: bundles: No such file or directory
[2019-08-24T10:53:09.354Z] tar: Cowardly refusing to create an empty archive
[2019-08-24T10:53:09.354Z] Try 'tar --help' or 'tar --usage' for more information.
Error when executing always post condition:
hudson.AbortException: script returned exit code 123
	at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.handleExit(DurableTaskStep.java:569)
	at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.check(DurableTaskStep.java:515)
	at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.run(DurableTaskStep.java:461)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-25 17:19:47 +02:00
Sebastiaan van Stijn
8b65e058be
Jenkinsfile: use wildcards for artifacts, and don't fail on missing ones
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-25 17:18:01 +02:00
Stefan Scherer
ca3e230b77
Use new windows labels
Signed-off-by: Stefan Scherer <stefan.scherer@docker.com>
2019-08-21 13:12:52 +02:00
Sebastiaan van Stijn
8b7f1452c0
Merge pull request #39721 from thaJeztah/run_dco_first
Jenkinsfile: run DCO check before everything else
2019-08-20 19:02:03 +02:00
Sebastiaan van Stijn
8b6da9d82f
Jenkinsfile: save docker-py artifacts
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-15 02:52:37 +02:00
Sebastiaan van Stijn
4ddb40ee8a
Jenkinsfile: build dynamic binary for docker-py, to match makefile
This also makes sure that we can test all functionality of the
daemon, because some features are not available on static binaries.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-15 02:45:04 +02:00
Sebastiaan van Stijn
5969bbee79
docker-py: output junit.xml for test-results
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-15 02:45:02 +02:00
Sebastiaan van Stijn
d6f7909c76
Jenkinsfile: run DCO check before everything else
This will run the DCO check in a lightweight alpine container, before
running other stages, and before building the development image/container
(which can take a long time).

A Jenkins parameter was added to optionally skip the DCO check (skip_dco)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-14 00:57:36 +02:00
Sebastiaan van Stijn
e2f5b78e78
Jenkinsfile: collect junit.xml for all architectures
Jenkins groups them per stage, so collecting them for all architectures
is possible (without them conflicting or becoming ambiguous)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-13 19:58:45 +02:00
Sebastiaan van Stijn
7f9328ad2e
Jenkinsfile: send junit.xml in the stage that produced it
This will send the results directly after the tests complete,
and make the stage more atomic.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-08-13 19:58:41 +02:00