public inbox for cip-dev@lists.cip-project.org
 help / color / mirror / Atom feed
* [cip-dev] [PATCH] Use local copy of kernel-ci if present
@ 2017-01-19 14:57 Daniel Wagner
  2017-01-19 15:14 ` Wolfgang Mauerer
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Wagner @ 2017-01-19 14:57 UTC (permalink / raw)
  To: cip-dev

In order to develop or debug the setup we should allow to a developer
to use local copy of the sources.

This is done by cloning all the remote repos to the project main
folder. This folder is shared with the VM. The intergration-scripts
are testing if those repos are in the shared folder than git clone
uses this as source.

To simplify the developer setup a simple setup-dev-env.sh script
is added. Note the current path should be the top folder of the
project.

Signed-off-by: Daniel Wagner <daniel.wagner@siemens.com>
---
Hi,

This helped me to quite a bit to get things tested in a more simpler
way. What do you think?

cheers,
daniel

 integration-scripts/install_backend.sh      |  8 +++++++-
 integration-scripts/install_build_script.sh |  9 ++++++++-
 integration-scripts/install_frontend.sh     |  8 +++++++-
 scripts/setup-dev-env.sh                    | 11 +++++++++++
 4 files changed, 33 insertions(+), 3 deletions(-)
 create mode 100644 scripts/setup-dev-env.sh

diff --git a/integration-scripts/install_backend.sh b/integration-scripts/install_backend.sh
index 72a974033a3c..157e7184e349 100755
--- a/integration-scripts/install_backend.sh
+++ b/integration-scripts/install_backend.sh
@@ -4,7 +4,13 @@
 # Install kernelci backend
 
 cd $HOME && mkdir git-repos && cd git-repos
-git clone https://github.com/kernelci/kernelci-backend-config.git kernelci-backend
+
+GIT_SRC="https://github.com/kernelci/kernelci-backend-config.git"
+if [ -d /vagrant/kernelci-backend-config ]; then
+    GIT_SRC=/vagrant/kernelci-backend-config
+fi
+git clone $GIT_SRC kernelci-backend
+
 cp /vagrant/config/secrets-backend.yml kernelci-backend/secrets.yml
 
 # Fixme: Don't let ansible try to create the file in the first place.
diff --git a/integration-scripts/install_build_script.sh b/integration-scripts/install_build_script.sh
index 322619317af6..879aaed01792 100755
--- a/integration-scripts/install_build_script.sh
+++ b/integration-scripts/install_build_script.sh
@@ -3,7 +3,14 @@
 # Copyright (C) 2016, Siemens AG, Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
 # SPDX-License-Identifier:	Apache-2.0
 
-cd $HOME && git clone https://github.com/kernelci/kernelci-build.git
+cd $HOME
+
+GIT_SRC="https://github.com/kernelci/kernelci-build.git"
+if [ -d /vagrant/kernelci-build ]; then
+    GIT_SRC=/vagrant/kernelci-build
+fi
+git clone $GIT_SRC
+
 cd kernelci-build
 
 MASTER_KEY=`cat $HOME/backend-admin-token.txt`
diff --git a/integration-scripts/install_frontend.sh b/integration-scripts/install_frontend.sh
index 48ab91ab83ce..251ef89d28f3 100755
--- a/integration-scripts/install_frontend.sh
+++ b/integration-scripts/install_frontend.sh
@@ -4,7 +4,13 @@
 # Install kernelci frontend
 
 cd $HOME/git-repos
-git clone https://github.com/kernelci/kernelci-frontend-config.git kernelci-frontend
+
+GIT_SRC="https://github.com/kernelci/kernelci-frontend-config.git"
+if [ -d /vagrant/kernelci-frontend-config ]; then
+    GIT_SRC=/vagrant/kernelci-frontend-config
+fi
+git clone $GIT_SRC kernelci-frontend
+
 sed -i kernelci-frontend/roles/install-app/tasks/main.yml \
     -e 's/kernelci\/kernelci-frontend.git/siemens\/kernelci-frontend.git/'
 
diff --git a/scripts/setup-dev-env.sh b/scripts/setup-dev-env.sh
new file mode 100644
index 000000000000..59c13b233065
--- /dev/null
+++ b/scripts/setup-dev-env.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+if [ ! -f "Vagrantfile" ]; then
+    echo "script is supposed to be run from the top folder where"
+    echo "the Vagrantfile is."
+    exit 1
+fi
+
+git clone https://github.com/kernelci/kernelci-backend-config.git
+git clone https://github.com/kernelci/kernelci-build.git
+git clone https://github.com/kernelci/kernelci-frontend-config.git
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [cip-dev] [PATCH] Use local copy of kernel-ci if present
  2017-01-19 14:57 [cip-dev] [PATCH] Use local copy of kernel-ci if present Daniel Wagner
@ 2017-01-19 15:14 ` Wolfgang Mauerer
  2017-01-20  9:34   ` Daniel Wagner
  0 siblings, 1 reply; 4+ messages in thread
From: Wolfgang Mauerer @ 2017-01-19 15:14 UTC (permalink / raw)
  To: cip-dev

Am 19/01/2017 um 15:57 schrieb Daniel Wagner:
> In order to develop or debug the setup we should allow to a developer
> to use local copy of the sources.
> 
> This is done by cloning all the remote repos to the project main
> folder. This folder is shared with the VM. The intergration-scripts
> are testing if those repos are in the shared folder than git clone
> uses this as source.
I've had to read the last sentence for a couple of times before
I could make sense of it. Perhaps something along the lines of

'The integration scripts test if the repos are present in the
shared folder. They are used as source for "git clone" in this case.'
> 
> To simplify the developer setup a simple setup-dev-env.sh script
> is added. Note the current path should be the top folder of the
> project.
> 
> Signed-off-by: Daniel Wagner <daniel.wagner@siemens.com>
> ---
> Hi,
> 
> This helped me to quite a bit to get things tested in a more simpler
> way. What do you think?

the patch as such seems most helpful to me -- struggling with
modifications that do not render any effect because sources are pulled
from a differnet source have bitten me quite a few times when working
with kernelci.

Thanks, Wolfgang
> 
> cheers,
> daniel
> 
>  integration-scripts/install_backend.sh      |  8 +++++++-
>  integration-scripts/install_build_script.sh |  9 ++++++++-
>  integration-scripts/install_frontend.sh     |  8 +++++++-
>  scripts/setup-dev-env.sh                    | 11 +++++++++++
>  4 files changed, 33 insertions(+), 3 deletions(-)
>  create mode 100644 scripts/setup-dev-env.sh
> 
> diff --git a/integration-scripts/install_backend.sh b/integration-scripts/install_backend.sh
> index 72a974033a3c..157e7184e349 100755
> --- a/integration-scripts/install_backend.sh
> +++ b/integration-scripts/install_backend.sh
> @@ -4,7 +4,13 @@
>  # Install kernelci backend
>  
>  cd $HOME && mkdir git-repos && cd git-repos
> -git clone https://github.com/kernelci/kernelci-backend-config.git kernelci-backend
> +
> +GIT_SRC="https://github.com/kernelci/kernelci-backend-config.git"
> +if [ -d /vagrant/kernelci-backend-config ]; then
> +    GIT_SRC=/vagrant/kernelci-backend-config
> +fi
> +git clone $GIT_SRC kernelci-backend
> +
>  cp /vagrant/config/secrets-backend.yml kernelci-backend/secrets.yml
>  
>  # Fixme: Don't let ansible try to create the file in the first place.
> diff --git a/integration-scripts/install_build_script.sh b/integration-scripts/install_build_script.sh
> index 322619317af6..879aaed01792 100755
> --- a/integration-scripts/install_build_script.sh
> +++ b/integration-scripts/install_build_script.sh
> @@ -3,7 +3,14 @@
>  # Copyright (C) 2016, Siemens AG, Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
>  # SPDX-License-Identifier:	Apache-2.0
>  
> -cd $HOME && git clone https://github.com/kernelci/kernelci-build.git
> +cd $HOME
> +
> +GIT_SRC="https://github.com/kernelci/kernelci-build.git"
> +if [ -d /vagrant/kernelci-build ]; then
> +    GIT_SRC=/vagrant/kernelci-build
> +fi
> +git clone $GIT_SRC
> +
>  cd kernelci-build
>  
>  MASTER_KEY=`cat $HOME/backend-admin-token.txt`
> diff --git a/integration-scripts/install_frontend.sh b/integration-scripts/install_frontend.sh
> index 48ab91ab83ce..251ef89d28f3 100755
> --- a/integration-scripts/install_frontend.sh
> +++ b/integration-scripts/install_frontend.sh
> @@ -4,7 +4,13 @@
>  # Install kernelci frontend
>  
>  cd $HOME/git-repos
> -git clone https://github.com/kernelci/kernelci-frontend-config.git kernelci-frontend
> +
> +GIT_SRC="https://github.com/kernelci/kernelci-frontend-config.git"
> +if [ -d /vagrant/kernelci-frontend-config ]; then
> +    GIT_SRC=/vagrant/kernelci-frontend-config
> +fi
> +git clone $GIT_SRC kernelci-frontend
> +
>  sed -i kernelci-frontend/roles/install-app/tasks/main.yml \
>      -e 's/kernelci\/kernelci-frontend.git/siemens\/kernelci-frontend.git/'
>  
> diff --git a/scripts/setup-dev-env.sh b/scripts/setup-dev-env.sh
> new file mode 100644
> index 000000000000..59c13b233065
> --- /dev/null
> +++ b/scripts/setup-dev-env.sh
> @@ -0,0 +1,11 @@
> +#!/bin/sh
> +
> +if [ ! -f "Vagrantfile" ]; then
> +    echo "script is supposed to be run from the top folder where"
> +    echo "the Vagrantfile is."
> +    exit 1
> +fi
> +
> +git clone https://github.com/kernelci/kernelci-backend-config.git
> +git clone https://github.com/kernelci/kernelci-build.git
> +git clone https://github.com/kernelci/kernelci-frontend-config.git
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [cip-dev] [PATCH] Use local copy of kernel-ci if present
  2017-01-19 15:14 ` Wolfgang Mauerer
@ 2017-01-20  9:34   ` Daniel Wagner
  2017-01-23  9:50     ` Daniel Wagner
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Wagner @ 2017-01-20  9:34 UTC (permalink / raw)
  To: cip-dev

On 01/19/2017 04:14 PM, Wolfgang Mauerer wrote:
> Am 19/01/2017 um 15:57 schrieb Daniel Wagner:
>> This is done by cloning all the remote repos to the project main
>> folder. This folder is shared with the VM. The intergration-scripts
>> are testing if those repos are in the shared folder than git clone
>> uses this as source.
> I've had to read the last sentence for a couple of times before
> I could make sense of it. Perhaps something along the lines of
> 
> 'The integration scripts test if the repos are present in the
> shared folder. They are used as source for "git clone" in this case.'

Good point. I lost myself in the depth of cloudy thoughts.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [cip-dev] [PATCH] Use local copy of kernel-ci if present
  2017-01-20  9:34   ` Daniel Wagner
@ 2017-01-23  9:50     ` Daniel Wagner
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel Wagner @ 2017-01-23  9:50 UTC (permalink / raw)
  To: cip-dev

Hi Don,

Over the weekend I had an idea to improve it even more:


GIT_SRC="https://github.com/kernelci/kernelci-backend-config.git"
if [ -d /vagrant/kernelci-backend-config ]; then
    GIT_SRC=/vagrant/kernelci-backend-config
fi
git clone $GIT_SRC kernelci-backend


If there is a repo available on /vagrant we clone from it. I 
think it would be even better just to copy the working
directory instead of cloning. That would allow to hack on the
files without committing all the time.

So this would change to:

if [ -d /vagrant/kernelci-backend-config ]; then
    cp -r /vagrant/kernelci-backend-config kernelci-backend
else
    git clone https://github.com/kernelci/kernelci-backend-config.git kernelci-backend
fi

What do you think about this?

And another idea I had: we should create a mirror of kernelci sources
clone from the mirror. I am pretty sure soon we have some patches
which need to be around to get our setup running which aren't 
available in the upstream repository. For example I had to do this here:


--- a/roles/install-deps/tasks/install-mongodb.yml
+++ b/roles/install-deps/tasks/install-mongodb.yml
@@ -2,7 +2,7 @@
 
 - name: Add MongoDB apt key (Ubuntu)
   apt_key:  id=7F0CEB10
-            keyserver=hkp://keyserver.ubuntu.com
+            keyserver=hkp://keyserver.ubuntu.com:80
   when: ansible_lsb.id == "Ubuntu"
   tags:
     - install
@@ -11,7 +11,7 @@
 
 - name: Add MongoDB apt key (Debian)
   apt_key:  id=EA312927
-            keyserver=hkp://keyserver.ubuntu.com
+            keyserver=hkp://keyserver.ubuntu.com:80
   when: ansible_lsb.id == "Debian"
   tags:
     - install

Thanks,
Daniel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-01-23  9:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-19 14:57 [cip-dev] [PATCH] Use local copy of kernel-ci if present Daniel Wagner
2017-01-19 15:14 ` Wolfgang Mauerer
2017-01-20  9:34   ` Daniel Wagner
2017-01-23  9:50     ` Daniel Wagner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox