[OpenStack-Infra] [zuul] third-party CI for zuul-jobs

Tristan Cacqueray tdecacqu at redhat.com
Thu Nov 23 05:28:31 UTC 2017


Greetings,

We have discussed it in the past and I'd like to share my experience
trying to run third-party tests on zuul-jobs.
My goal is to ensure zuul-jobs can run on CentOS system outside
of the openstack-infra resources.

Please find bellow a step by step documentation of my setup.

# Create a new tenant to prevent conflicts with openstack-infra/zuul-jobs
```yaml
- tenant:
    name: openstack.org
    source:
      softwarefactory-project.io:
        config-projects:
          - third-party-ci-config
        untrusted-projects:
          - third-party-ci-jobs
      openstack.org:
        untrusted-projects:
          - openstack-infra/zuul-jobs:
              exclude:
                - project
                - project-template
                - pipeline
```

# Define base jobs and projects in third-party-ci-config
```yaml
- job:
    name: base
    parent: null
    description: The base job not using openstack-infra/zuul-jobs roles
    pre-run: playbooks/base/pre.yaml
    post-run:
      - playbooks/base/post.yaml

- job:
    name: upstream-base
    parent: null
    description: The upstream-base job using zuul-jobs roles
    pre-run: playbooks/upstream-base/pre.yaml
    post-run:
      - playbooks/upstream-base/post-logs.yaml
    roles:
      - zuul: openstack-infra/zuul-jobs

- project:
    name: openstack-infra/zuul-jobs
    third-party-check:
      jobs:
        - test-basic-roles
        - test-job-unittests
    third-party-post:
      jobs:
        - test-base
```

# Define jobs in third-party-ci-jobs
```yaml
- job:
    name: test-base
    description: A job to test base playbook
    parent: upstream-base
    run: playbooks/test-base.yaml

- job:
    name: test-basic-roles
    description: A job to test prepare-workspace and emit-ara role
    parent: base
    run: playbooks/test-basic-roles.yaml

- job:
    name: test-job-unittests
    description: A job to test the unittests job
    parent: unittests
    run: playbooks/noop.yaml
```

Here is how the results looks like:
https://review.openstack.org/522261
And here is how it fail when there is an error in prepare-workspace:
https://review.openstack.org/522438

This CI configuration is defined by these repositories:
(which you are welcome to contribute using git review)
* https://softwarefactory-project.io/r/config  for the tenant
* https://softwarefactory-project.io/r/third-party-ci-config for config
* https://softwarefactory-project.io/r/third-party-ci-jobs for the jobs

Note that the CI is currently disabled because the unittests job is
failing without:
https://review.openstack.org/522255 and https://review.openstack.org/522261

TL;DR; Is it alright if we re-enable this CI and report those tests on
       zuul-jobs patchsets?

Cheers,
-Tristan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-infra/attachments/20171123/734fed57/attachment.sig>


More information about the OpenStack-Infra mailing list