Skip to content
This repository has been archived by the owner on Sep 23, 2024. It is now read-only.

WIP: Initial Docker container #28

Closed
wants to merge 188 commits into from

Conversation

stefwalter
Copy link
Contributor

@stefwalter stefwalter commented Mar 23, 2018

Here's an initial container definition. It's pretty general purpose at this point and just allows running the various commands in a containerized fashion.

sm00th and others added 30 commits August 1, 2017 13:34
skt basic functionality:
- fetch/merge git branches
- build
- publish: cp/scp
- run bkr job based on a template
Remember commit ids for each branch used, so that we can publish it
along with the build to be able to later recreate the same tree.
Add timestamp to tgz before uploading and upload buildinfo as well.
Use timestamp as UID in beaker jobs to make whiteboard unique.
Change from millisecond representation to human readable timestamp
format.
Instead of relying on assumptions of where interesting data should be in
the output stream - actually parse it and find the parts we are
interested in.
Allow the __main__ function to properly trap on various errors,
like user exit.

Signed-off-by: Don Zickus <[email protected]>
Just code cleanup.

Signed-off-by: Don Zickus <[email protected]>
Makes it easier to parse configs later.  The returned
value is a dict cfg of available options.
Code cleanup.
GitPython brinfs a bunch of compatability issues between versions so
dropping it in favor of direct subprocess calls.
Add subcommands merge/build/publish/run/cleanup and 'all' which would
allow to execute separate steps of the process.
Add INSTALL_MOD_STRIP=1 to make execution so that we get smaller
tarballs
Add an option for skt to not exit until runner is done.
Do not require 'uid' argument for runner.run method, use the last part
of url as uid instead.
Add an option to save/read states on each step to provide a
communication method between steps.
Switch from using heads only to any refs allowing user to specify full
ref in 'refs/xxx/yyy' format or just use 'yyy' and rely on git to guess
full ref.

THIS IS NOT JUST A RENAME. This commit actually changes the way refs are
fetched.
Don't use userprovided refs for in local ref names. It might result in
ambigious and/or weird names and only clutters ref list. Use "master"
for base and "merge" for merge branches instead.
Allow switching jow owner for submitted job.
Doing so makes it easier to navigate local refs especially in case when
multiple branches from the same remote are used.
Make --state option actually mater, before this commit state would be
used whether this option was provided or not.
buildinfo and tarpkg might be deleted/moved by publishers, so silently
ignore unlink errors
change retcode based on test results
Beaker results are not binary, apart from pass/fail there is also
'cancelled' and 'aborted'. Logging those might be useful.
Instead of relying on bkr's "--wait" option implement own wait, that
would monitor separate recipes. This is needed for future failure
handling features.
major and others added 23 commits March 28, 2018 19:47
By default, kernels are built with debug symbols. This increases the
build time and the size of the resulting tarball.

  tar.gz with debug symbols: ~ 250MB
  tar.gz without debug symbols: ~ 75MB

If debug symbols are really needed for diagnosing a tough problem,
the user can specify `--enable-debuginfo` when calling `skt build`.

Closes cki-project#32.
This patch fixes flake8/pep8 issues in the codebase.

Signed-off-by: Major Hayden <[email protected]>
The variable used with save_state() was `head`, but that variable is
not defined. The `bhead` variable should be used instead.

Signed-off-by: Major Hayden <[email protected]>
This patch adds flake8 testing in the Travis job and also runs
the linting checks prior to the python tests. This should save
time.

Depends on cki-project#22 to merge first.
Fixes cki-project#24.

Signed-off-by: Major Hayden <[email protected]>
Fixes 0d3c31f.

Signed-off-by: Veronika Kabatova <[email protected]>
The test_parse_valid_patchwork_url attempts to contact the server in the
URL, which is not guaranteed to always be available, resulting in broken
tests. Removing it for now.
This patch adds documentation to the beakerrunner class.

Signed-off-by: Major Hayden <[email protected]>
This patch renames the Runner/BeakerRunner classes so they meet
pylint requirements for capitalization.

Signed-off-by: Major Hayden <[email protected]>
This patch updates the skt developer docs to include instructions
for installing skt into a virtualenv or within a user's home
directory.

Signed-off-by: Major Hayden <[email protected]>
Add vim's .swp and .swo files, together with egg-info created by
development installation.

Signed-off-by: Veronika Kabatova <[email protected]>
Make command templates always use placeholders, and examples always use
specific arguments, in README.md.
- make code more pythonic:
  - use `if x` or `if not x` instead of comparisons with 0 or None
  - `dict.get(key)` returns None in case key is not found so we can
    simplify the comparisons there as well
- add initialization of cfgurl - it is created conditionally so we'd get
  error in case the condition doesn't go through.
- get rid of `continue` statements

Signed-off-by: Veronika Kabatova <[email protected]>
* Log the command being executed.
* Refer to the "config" script by its full pathname, otherwise it cannot
  be found when building outside the source directory.
* Pass the "--file" option, pointing to the configuration, otherwise the
  script cannot find it when building outside the source directory.
* Pass "--disable" and "debug_info" as separate arguments, otherwise the
  option is not recognized by the script.
This patch adds the dependencies for skt into the `install_requires`
option so that pip can install dependencies automatically. The
Travis-CI configuration is adjusted to test this process as well.

Fixes cki-project#36.

Signed-off-by: Major Hayden <[email protected]>
Remove a bit of duplicated code
This allows us to set SKT_WORKDIR in a container and have it use
a default work directory for skt.
This is just basic good practice, not to mix your build artifacts
with your source code.

However in this case it has a concrete benefit, it allows a
container to work properly. A container can carry around the basic
kernel source code staged in its image, and still allow building
to happen in a throw away empty volume.

Later this can grow into work to have a possible prebuilt tree in
an additional volume or directory, thus likely speeding up the
build by only building the diff. We don't implement that yet with
this patch.
This allows us to set SKT_BASECONFIG in a containter and have it
use a default config for troubleshooting and development.
Here's an initial container definition. It's pretty general purpose
at this point and just allows running the various commands in a
containerized fashion.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants