[Spice-devel] [RFC spice-common] ci: Automatically test integration with spice-common users

Frediano Ziglio fziglio at redhat.com
Thu Dec 8 18:44:14 UTC 2016


> 
> Add .gitlab-ci.yml to check if the latest spice-gtk and spice server
> are compatible with latest spice-common changes.
> ---
> Hi,
> 
> recent changes in spice-common made me come up with this patch for checking
> integration of spice-common submodule with its users (spice-gtk, spice
> server).
> 
> This commit adds support for the GitLab CI to check if spice-common itself
> is buildable and then it checks if spice-gtk/spice server can be compiled
> with it.
> 
> Current state: https://gitlab.com/xerus/spice-common/pipelines/5314188
> 
> Pavel
> ---
>  .gitlab-ci.yml | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>  create mode 100644 .gitlab-ci.yml
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> new file mode 100644
> index 0000000..57d37ff
> --- /dev/null
> +++ b/.gitlab-ci.yml
> @@ -0,0 +1,42 @@
> +image: fedora:latest
> +
> +before_script:
> +  - dnf install 'dnf-command(copr)' git libtool make perl-Text-CSV -y
> +  - dnf copr enable @spice/nightly -y
> +  - dnf builddep spice spice-gtk -y
> +  - export LATEST_HASH=`git rev-parse --verify HEAD`
> +  - export GIT_DIR_URL=`dirname $(git remote get-url origin)`
> +  - git config --global user.email "spice-devel at lists.freedesktop.org"
> +  - git config --global user.name "GitLab CI"
> +
> +makecheck:
> +  stage: build
> +  script:
> +  - ./autogen.sh
> +  - make check
> +

I agree on this first part. I would split the patch.

> +client:
> +  stage: test
> +  script:
> +  - git clone $GIT_DIR_URL/spice-gtk
> +  - cd spice-gtk
> +  - git submodule update --init --recursive
> +  - cd spice-common
> +  - git checkout $LATEST_HASH
> +  - cd ..
> +  - git commit -a -m "Update submodule"
> +  - ./autogen.sh
> +  - make
> +
> +server:
> +  stage: test
> +  script:
> +  - git clone $GIT_DIR_URL/spice
> +  - cd spice
> +  - git submodule update --init --recursive
> +  - cd spice-common
> +  - git checkout $LATEST_HASH
> +  - cd ..
> +  - git commit -a -m "Update submodule"
> +  - ./autogen.sh
> +  - make

This looks like an attempt to have a more stable ABI/API or push
developers to update spice-server/spice-gtk if ABI/API breaks which
is opposite of submodule idea.
Probably is up to how many people looks at CI but usually the idea
is that should break only on regressions (or system/network build failures).
>From the link you sent seems that the build is broken for spice-common
while is from the user prospective completely alright.
Not again the patch, just a consideration. 

Frediano


More information about the Spice-devel mailing list