Commit graph

112 commits

Author SHA1 Message Date
Sebastiaan van Stijn
a80884126b
Jenkinsfile: add workaround for CVE-2022-24765
git published an advisory Yesterday, which (as a counter-measure)
requires the git repository's directory to be owned by the current
user, and otherwise produce an error:

    fatal: unsafe repository ('/workspace' is owned by someone else)
    To add an exception for this directory, call:

        git config --global --add safe.directory /workspace

The DCO check is run within a container, which is running as `root`
(to allow packages to be installed), but because of this, the user
does not match the files that are bind-mounted from the host (as they
are checked out by Jenkins, using a different user).

To work around this issue, this patch configures git to consider the
`/workspace` directory as "safe". We configure it in the `--system`
configuration so that it takes effect for "all users" inside the
container.

More details on the advisory can be found on GitHub's blog:
https://github.blog/2022-04-12-git-security-vulnerability-announced/

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit efe03aa2d8)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-04-13 16:07:32 +02:00
Sebastiaan van Stijn
ad21bcd94e
Jenkinsfile: remove Windows RS1 as it reached end of support
It was already disabled by default, but removing it now that it reached
end of the line.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 9326ea5b99)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 10:14:29 +01:00
Stefan Scherer
618f6a79ab
Run s390x tests on Ubuntu 20.04
Signed-off-by: Stefan Scherer <stefan.scherer@docker.com>
(cherry picked from commit 7a6cac2b23)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-07-02 14:41:13 +02:00
Sebastiaan van Stijn
523f8b397c
Jenkinsfile: skip ppc64le and s390x by default on pull requests
This changes CI to skip these platforms by default. The ppc64le and s390x
machines are "pet machines", configuration may be outdated, and these
machines are known to be flaky.

Building and verifying packages for these platforms is being handed
over to the IBM team.

We can still run these platforms for specific pull requests by selecting
the checkboxes.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 82c7e906ea)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-10 14:05:07 +02:00
Stefan Scherer
f2c0b3688a
Pin arm64 machines to a specific Ubuntu version
Signed-off-by: Stefan Scherer <stefan.scherer@docker.com>
(cherry picked from commit b7c3548c82)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-04-06 18:55:24 +02:00
Akihiro Suda
d31b2141ae
Jenkinsfile: add cgroup2
Thanks to Stefan Scherer for setting up the Jenkins nodes.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
(cherry picked from commit c23b99f4db)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-02-16 09:22:30 +01:00
Sebastiaan van Stijn
b4b902b88f
Jenkinsfile: remove e2e image stage
The image that's built is not pushed anywhere, and is just
building the same as the main image already builds, so didn't
add value.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-11-10 18:42:13 +01:00
Olli Janatuinen
82b5ff8026 Windows CI: Make sure that CI fails on any error
- If unit tests fails
- If intergration tests fails

Signed-off-by: Olli Janatuinen <olli.janatuinen@gmail.com>
2020-09-17 08:59:49 +03:00
Tibor Vass
b280ea114f hack: add more debugging to understand exit codepath
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-05-27 23:40:11 +00:00
Akihiro Suda
d1304a8c74 Jenkinsfile: remove redundant DOCKER_EXPERIMENTAL
DOCKER_EXPERIMENTAL is already set in the head of the file.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2020-04-07 00:59:15 +09:00
Stefan Scherer
c239bbbcb2
Switch to s390x Ubuntu 18.04
Signed-off-by: Stefan Scherer <stefan.scherer@docker.com>
2020-03-11 20:05:23 +01:00
Akihiro Suda
5bf33adba2 hack: support $DOCKER_ROOTLESS for testing rootless
```
$ DOCKER_EXPERIMENTAL=1 DOCKER_ROOTLESS=1 TEST_SKIP_INTEGRATION_CLI=1 \
 make test-integration
```

test-integration-cli is unsupported currently.
Also, tests that spawn custom daemon (testutil/daemon) are skipped.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2020-03-10 05:49:45 +09:00
Sebastiaan van Stijn
8a52139a0f
Revert "Jenkinsfile: temporarily pin windows image to 10.0.17763.973"
This reverts commit fa2417984b.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-13 11:42:56 +01:00
Sebastiaan van Stijn
fa2417984b
Jenkinsfile: temporarily pin windows image to 10.0.17763.973
The latest `ltsc2019` image (`10.0.17763.1039`) appear to be broken,
and even a `RUN Write-Host hello` hangs.

Temporarily switching back to an older version so that CI doesn't fail.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-12 14:41:34 +01:00
Sebastiaan van Stijn
bbcabf69c8
Merge pull request #40050 from thaJeztah/ci_force_validate
Jenkinsfile: force validate on master, and some fixes/improvements
2019-12-23 13:39:43 +01:00
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
Sebastiaan van Stijn
cd094422a7
Jenkinsfile: force validate steps on master and backports
On master ("non-pull-request"), force running some validation checks
(such as vendor, swagger), even if no files were changed. This allows
catching problems caused by pull-requests that were merged out-of-sequence.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-12-19 18:05:18 +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