mirror of
https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git
synced 2025-07-13 03:19:47 +03:00
pmbootstrap ci: new command
Add a new command that makes running CI scripts easy. The user goes to the git repository of choice, which has CI scripts written in a certain format, and then runs 'pmbootstrap ci' to get an interactive selection of which of the available scripts to run (or "all"). Specifying one or multiple scripts on the command-line is also possible, e.g. $ pmbootstrap ci flake8 $ pmbootstrap ci shellcheck flake8 pytest $ pmbootstrap ci --all pmbootstrap then either runs the selected scripts in a chroot (and installs dependencies as defined at the beginning of the CI scripts), or natively (with checks inside the scripts for having dependencies installed). Running natively is needed for .ci/pytest.sh in this pmbootstrap.git repository, as pmbootstrap can't run inside pmbootstrap. Running natively or in chroot is defined in an "# Options: " comment inside the script file. Documentation for this command and how script files look like: https://postmarketos.org/pmb-ci
This commit is contained in:
parent
6ac39d17e7
commit
0bcd58765c
5 changed files with 228 additions and 0 deletions
|
@ -246,3 +246,10 @@ def is_outdated(path):
|
|||
|
||||
date_outdated = time.time() - pmb.config.git_repo_outdated
|
||||
return date_head <= date_outdated
|
||||
|
||||
|
||||
def get_topdir(args, path):
|
||||
""" :returns: a string with the top dir of the git repository, or an
|
||||
empty string if it's not a git repository. """
|
||||
return pmb.helpers.run.user(args, ["git", "rev-parse", "--show-toplevel"],
|
||||
path, output_return=True, check=False).rstrip()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue