People

Agenda

  • Discuss and decide goals for this iteration.

Notes

  • This iteration is about cleaning things up and fixing small bugs that don't take a lot of effort.

Roadmap until ALPHA-6

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)
Write a deploy-and-test script Lars 4
Change APT to keep old versions Lars 1
Fix WM to fail if artifact upload fails Lars 1
Get systree name from parameter Lars 1
Fix WM to really set env vars Lars 1
Run actions with stdin from /dev/null Lars 1
Change the debmirror action to have a default mirror Lars 1
Remove unnecessary scripts from source Lars 1
Identify worker from token, not path Lars 1
Require an explicit where on all actions Lars 1
Add icktool show-latest-log command Lars 1
Add icktool delete command Lars 1
Change icktool make-it-so to accept filenames Lars 1
Total Lars 16

Task descriptions

  • Write a deploy-and-test script: Write a script that builds ick from a git commit, creates VMs, installs and configures ick, creates some representative projects, and verifies all of those can be built. This may take some time to write, but it will save time when testing changes.

    Acceptance criteria: Manual testing.

  • Change APT to keep old versions: The APT configuration currently set up does not keep old versions. It is sometimes useful to keep them. Change the reprepro configuation to keep old versions.

    Acceptance criteria: Set up an ick cluster, trigger a build twice. Check that both versions are in the package pool in the APT repository.

  • Fix WM to fail if artifact upload fails: Currently, it seems, when the worker-manager uploads an artifact (workspace) to the artifact store, with curl, and the upload fails, it doesn't fail the whole build. Fix.

    Acceptance criteria: Code review.

  • Get systree name from parameter: Change the populate_systree action to get the name of the systree artifact from the systree_name parameter, when not given one explicitly, or when it is given as auto.

    Acceptance criteria: Set up an ick cluster with a pipeline using the new feature, and check that the project builds.

  • Fix WM to really set env vars: The worker-manager tries, but fails, to set LC_ALL and DEBIAN_FRONTEND for all shell and python actions. Fix this.

    Acceptance criteria: Run a pipeline with shell and python actions that print the whole environment and check the variables are set.

  • Run actions with stdin from /dev/null: Change worker-manager to redirect stdin for all actions to be from /dev/null. This prevents (buggy) programs from blocking, when they try to read from "the terminal".

    Acceptance criteria: Set up an ick instance with my usual projects and pipelines, and check that everything builds.

  • Change the debmirror action to have a default mirror: The default mirror should be deb.debian.org.

    Acceptance criteria: Set up an ick cluster with a project that builds a systree, without specifying a mirror, and check that it works.

  • Remove unnecessary scripts from source: The source tree has some "helper" or "debug" scripts for Lars's use. Remove any obsolete ones.

    Acceptance criteria:

  • Identify worker from token, not path: When a worker requests work, it currently does GET /work/foo, where foo is the name of the worker. This is silly. Change things so the endpoint is just /work and the controller identifies the worker from the access token's aud claim.

    Acceptance criteria: Deploy a new ick cluster with my usual projects, verify that everything builds.

  • Require an explicit where on all actions: Change worker-manager to require an explicit where on each actions and to refuse a new pipeline where that isn't true.

    Acceptance criteria: Unit tests check for this and pass.

  • Add icktool show-latest-log command: This should take a list of project names as arguments, and output the latest build log for each.

    Acceptance criteria: Manual testing.

  • Add icktool delete command: This should take a list of resource paths (/projects/foo) and delete them. Should work for at least projects and pipelines.

    Acceptance criteria: Manual testing.

  • Change icktool make-it-so to accept filenames: Currently it reads from the standard input. Change it to accept number of filenames, and to read each as it currently reads from sdin.

    Acceptance criteria: Manual testing.