People

Agenda

  • Discuss and decide goals for this iteration.

Notes

  • This iteration is about changing the controller to run all pipelines for a project, sequentially. At the start of a build, a build graph will be constructed of all the actions that need to be taken for the build to be finished.

Roadmap until ALPHA-6

@startroadmap
alpha6:
  label: ALPHA-6
  depends:
    - alpha5
    - docs

alpha5:
  label: ALPHA-5
  depends:
    - notifications
    - build_graph
    - release_builds
    - cleanup

release_builds:
  label: |
    ick builds,
    publishes
    its own .debs
    (release builds
    from signed tags)
  depends:
  - cleanup
  - incremental

cleanup:
  label: |
    Fix ick to allow
    sensible project,
    pipeline specs
    (e.g., git, dput
    actions to avoid
    having to have an
    ssh key in 
    containers).

notifications:
  label: |
    ick has a
    rudimentary
    notification
    system

build_graph:
  label: |
    ick constructs a
    build graph from
    all pipelines at
    trigger time
  status: next

incremental:
  label: |
    ick can do
    incremental
    builds (reuse
    workspaces
    across builds)

docs:
  label: |
    there's sufficient
    docs for others to
    install ick for
    themselves
@endroadmap

Current projects

  • N/A

Tasks for this week

Tasks may be part of a project or be random small ones (max an hour) that just need doing.

what Who estimate(h)
Add a project build graph to build resource Lars 4
Change controller to trigger whole project Lars 1
Drop “pipeline instance” resource Lars 1
Change icktool to produce dot file for build graph Lars 4
Make release, deploy Lars 2
Refactor liw-ci to use nicer pipeline structrue Lars 4
Total Lars 16

Task descriptions

  • Add a project build graph to build resource: Add a build graph representation to the build resource, when a build starts. Construct the build graph from all the actions in all the pipelines in the project, sequentially. The build graph will thus be a linear list of actions. Mark each graph node with a state: ready, blocked, building, finished, failed. Add or update unit tests to test construction of build resource and build graph, and scheduling of actions from the build graph.

    Acceptance criteria: Unit tests pass.

  • Change controller to trigger whole project: Change the build trigger endpoint in the controller to apply for the whole project, instead of a pipeline. Change the controller to construct the whole build graph at that time, and to create the build resource. Update automated tests to use new wayt to trigger a build.

    Acceptance criteria: All automated tests pass.

  • Drop “pipeline instance” resource: The “pipeline instance” resource type should now be unnecessary. Drop it.

    Acceptance criteria: All automated tests pass.

  • Change icktool to produce dot file for build graph: Change icktool to get the build graph from a build ressource (for a specific build, or the latest build), and to output a .dot file representation of the build graph. Each node should have a suitable shape and colour. The .dot file should be input to the dot command to produce an SVG graph.

    Acceptance criteria: Manual testing shows a pretty graph is produced.

  • Make release, deploy: Make a release of ick and deploy it to Lars’s “ci-prod” cluster.

    Acceptance criteria: Manual testing shows all projects can still be built.

  • Refactor liw-ci to use nicer pipeline structure: Change the project and pipeline specifications in the “liw-ci” git repository to use cleaner pipelines, aimed at being re-useable.

    Acceptance criteria: Manual testing shows all projects can still be built.