Giter Site home page Giter Site logo

Comments (8)

adarazs avatar adarazs commented on July 28, 2024

Looks like we need to handle 3 types of testing

  • manual (we can ask the user to provide a list)
  • Zuul based (ZUUL_HOST + ZUUL_CHANGES variable contains all required changes already)
  • Jenkins (GERRIT_* variables and Depends-On in the commit message)

I think we can autodetect the type by looking for the specific env variables.

The manual mode seems simple, I imagine we could have something like this:

artg_change_list:
    - host: ...
      project: ...
      branch: ...
      refspec: ...
    - ...

The rest of the modes could parse the changes into the same format.

Parsing the ZUUL_CHANGES looks simple, it has this format: ZUUL_CHANGES="project1:branch1:refspec1^project2:branch2:refspec2:^..."

Parsing Depends-On is more involved, but we already have a fairly similar functionality implemented in khaleesi, so we could start out from that and return the result as a list of dictionaries.

from ansible-role-tripleo-gate.

trown avatar trown commented on July 28, 2024

I like this approach. I think we would be able to integrate #1 into this quite easily by adding an extra task that has a when: item.packaging_host is defined, and then for packaging changes we would just add on to the artg_change_list like:

artg_change_list:
  - host: ...
    project: ...
    branch: ...
    refspec: ...
    packaging_host: ...
    packaging_branch: ...
    packaging_refspec: ...
  - ...

We could make code changes optional by making the git clone task for code chages have a when: item.host is defined as well, but this is not a requirement. I have been just setting the refspec to the branch (ie "master") to get the same behavior.

from ansible-role-tripleo-gate.

adarazs avatar adarazs commented on July 28, 2024

Looks quite simple, I like the solution. I'll make WIP change without the packaging part first and add this functionality when that works.

from ansible-role-tripleo-gate.

adarazs avatar adarazs commented on July 28, 2024

Added the basic functionality with a statically defined change list: https://review.gerrithub.io/277358

from ansible-role-tripleo-gate.

adarazs avatar adarazs commented on July 28, 2024

Added Zuul change parsing to the review. Tested locally with a manually crafted ZUUL_CHANGES variable, it seemed to work fine.

from ansible-role-tripleo-gate.

adarazs avatar adarazs commented on July 28, 2024

The change is feature complete (though it fails with certain packages like puppet-tripleo, because it doesn't have that hacked out install part from DLRN).

I tested all three methods manually (by adding env vars) and it worked even in complex dependency situations (with Jenkins), though I didn't test it with dependencies on different Gerrit servers.

from ansible-role-tripleo-gate.

adarazs avatar adarazs commented on July 28, 2024

After converting the dependency resolvers to Ansible modules, and adding the "multiple changes with the same Change-Id" improvement, this should be really ready. Please review.

from ansible-role-tripleo-gate.

adarazs avatar adarazs commented on July 28, 2024

The functionality merged: https://review.gerrithub.io/277358

from ansible-role-tripleo-gate.

Related Issues (2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.