Coder Social home page Coder Social logo

bundle-cwr-ci's People

Contributors

jhobbs avatar johnsca avatar ktsakalozos avatar kwmonroe avatar merlijn-sebrechts avatar paulgear avatar pengale avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

bundle-cwr-ci's Issues

Readme Updates for Developer Workflow Usability

Suggest to add the following to improve the usability of cwr-ci in the developer workflow:

  • charm-subdir action parameter: If a user has their charm embedded into a larger repository inform the user how to specify where the charm lives. Ensure cwr-ci only is invoked on charm change in sub-dir "mode."
  • mention that cwr is a poll, every 5 minutes.
  • Be explicit about where artifacts are put /srv/artifacts
  • Be explicit on how to view CWR report
  • Mention best practice for a reference bundle. For example, put a "test bundle" in a recommended bundle that can be specifically for testing by all. Also be more specific that folks and upload their own customer reference bundle -- good in the context of OpenStack which will always have a reference bundle.
  • Put a note on how to track running jobs. Should folks ssh into Jenkins?
  • Recommendations on how to use resources

For tool componentry add links to:

Tests create and destroy reference bundle too fast!

cwr-ci sets a reference bundle. Bundletester deploys this bundle but having no tests it immediately destroys it. The jenkins charm departs even before the cwr charm has finished installing. So cwr charm complains for not finding the /var/lib/jenkins/plugins dir.

2017-02-09 13:08:19 INFO juju-log jenkins:0: Invoking reactive handler: reactive/cwr.py:81:install_jenkins_jobs
2017-02-09 13:08:25 INFO juju-log jenkins:0: Installing plugin github. Restart required: False
2017-02-09 13:08:25 INFO jenkins-relation-changed Traceback (most recent call last):
2017-02-09 13:08:25 INFO jenkins-relation-changed   File "/var/lib/juju/agents/unit-cwr-0/charm/hooks/jenkins-relation-changed", line 19, in <module>
2017-02-09 13:08:25 INFO jenkins-relation-changed     main()
2017-02-09 13:08:25 INFO jenkins-relation-changed   File "/var/lib/juju/agents/unit-cwr-0/.venv/lib/python3.5/site-packages/charms/reactive/__init__.py", line 78, in main
2017-02-09 13:08:25 INFO jenkins-relation-changed     bus.dispatch()
2017-02-09 13:08:25 INFO jenkins-relation-changed   File "/var/lib/juju/agents/unit-cwr-0/.venv/lib/python3.5/site-packages/charms/reactive/bus.py", line 434, in dispatch
2017-02-09 13:08:25 INFO jenkins-relation-changed     _invoke(other_handlers)
2017-02-09 13:08:25 INFO jenkins-relation-changed   File "/var/lib/juju/agents/unit-cwr-0/.venv/lib/python3.5/site-packages/charms/reactive/bus.py", line 417, in _invoke
2017-02-09 13:08:25 INFO jenkins-relation-changed     handler.invoke()
2017-02-09 13:08:25 INFO jenkins-relation-changed   File "/var/lib/juju/agents/unit-cwr-0/.venv/lib/python3.5/site-packages/charms/reactive/bus.py", line 291, in invoke
2017-02-09 13:08:25 INFO jenkins-relation-changed     self._action(*args)
2017-02-09 13:08:25 INFO jenkins-relation-changed   File "/var/lib/juju/agents/unit-cwr-0/charm/reactive/cwr.py", line 106, in install_jenkins_jobs
2017-02-09 13:08:25 INFO jenkins-relation-changed     installed = wait_for_plugin(plugin)
2017-02-09 13:08:25 INFO jenkins-relation-changed   File "/var/lib/juju/agents/unit-cwr-0/charm/reactive/cwr.py", line 214, in wait_for_plugin
2017-02-09 13:08:25 INFO jenkins-relation-changed     all_plugins = os.listdir("/var/lib/jenkins/plugins")
2017-02-09 13:08:25 INFO jenkins-relation-changed FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/jenkins/plugins'
2017-02-09 13:08:25 ERROR juju.worker.uniter.operation runhook.go:107 hook "jenkins-relation-changed" failed: exit status 1
Unit        Workload    Agent      Machine  Public address  Ports     Message                                                                                               
jenkins/0*  terminated  executing  0        10.173.130.209  8080/tcp  (stop)                                                                                                
  cwr/0*    error       idle                10.173.130.209            hook failed: "jenkins-relation-changed" for cwr:jenkins

Better error messages

Hi

The current Jenkins build output is quite hard to debug. An example: if a charm is using a layer that is not on interfaces.juju.solutions, you get the following error.

Fatal: could not read username for 'https //github.com' device not configured

Is it possible to maybe do some post-processing when an error occurs to guide the user to where the issue lies?

The bundle-build job never runs

I ran the bundle-build action on cwr-ci and I see the job created in jenkins. The job looks to be scheduled to run every 10 minutes but does not ever seem to run.

$ juju run-action cwr/0 build-bundle repo=http://github.com/juju-solutions/bundle-kubernetes-e2e bundle-name=kubernetes-e2e
Action queued with id: 2d798c50-0487-419b-8e0a-15f2e6ec6a21
$ juju show-action-output --wait 0 2d798c50-0487-419b-8e0a-15f2e6ec6a21                              
status: completed
timing:
  completed: 2017-02-14 22:20:59 +0000 UTC
  enqueued: 2017-02-14 22:20:57 +0000 UTC
  started: 2017-02-14 22:20:58 +0000 UTC

I watched the jenkins job for the first 10 minute increment and it passed without attempting to run the job. Here is the relevant information from the Schedule section of the build-bundle-kuberentes-e2e job.

Would last have run at Tuesday, February 14, 2017 10:40:28 PM UTC; would next run at Tuesday, February 14, 2017 10:50:28 PM UTC.

Matrix borks

CWR tests run fine. Matrix borks. I have no idea how to proceed.

Job:

juju run-action cwr/0 cwr-charm-commit \
    repo=http://github.com/tengu-team/layer-limeds \
    charm-name=limeds \
    push-to-channel=stable \
    namespace=tengu-team \
    reference-bundle=cs:~tengu-team/limeds-core

Errors:

2017-03-09 14:13:14 DEBUG matrix:464:add_model: Creating model -matrix-large-kit
2017-03-09 14:13:14 DEBUG matrix:380:run: Error adding model: failed to create config: creating config from values failed: "-matrix-large-kit" is not a valid name: model names may only contain lowercase letters, digits and hyphens
2017-03-09 14:13:14 DEBUG ------------------------------------------------------------------------------
2017-03-09 14:13:14 DEBUG matrix:431:cleanup: Error while running crashdump.
2017-03-09 14:13:14 DEBUG Traceback (most recent call last):
2017-03-09 14:13:14 DEBUG   File "/usr/local/lib/python3.5/dist-packages/matrix/rules.py", line 421, in cleanup
2017-03-09 14:13:14 DEBUG     model_name = context.juju_model.info.name
2017-03-09 14:13:14 DEBUG AttributeError: 'Attribute' object has no attribute 'info'
2017-03-09 14:13:14 DEBUG matrix:439:cleanup: Error destroying model: 'Attribute' object has no attribute 'info'
2017-03-09 14:13:14 DEBUG Traceback (most recent call last):
2017-03-09 14:13:14 DEBUG   File "/usr/local/lib/python3.5/dist-packages/matrix/rules.py", line 436, in cleanup
2017-03-09 14:13:14 DEBUG     await self.destroy_model(context)
2017-03-09 14:13:14 DEBUG   File "/usr/local/lib/python3.5/dist-packages/matrix/rules.py", line 500, in destroy_model
2017-03-09 14:13:46 DEBUG RuntimeError: Event loop is closed
2017-03-09 14:13:46 DEBUG Exception ignored in: <generator object Queue.get at 0x7fc269e7ae08>
2017-03-09 14:13:46 DEBUG Traceback (most recent call last):
2017-03-09 14:13:46 DEBUG   File "/usr/lib/python3.5/asyncio/queues.py", line 170, in get
2017-03-09 14:13:46 DEBUG     getter.cancel()  # Just in case getter is not done yet.
2017-03-09 14:13:46 DEBUG   File "/usr/lib/python3.5/asyncio/futures.py", line 227, in cancel
2017-03-09 14:13:46 DEBUG     self._schedule_callbacks()
2017-03-09 14:13:46 DEBUG   File "/usr/lib/python3.5/asyncio/futures.py", line 242, in _schedule_callbacks
2017-03-09 14:13:46 DEBUG     self._loop.call_soon(callback, self)
2017-03-09 14:13:46 DEBUG   File "/usr/lib/python3.5/asyncio/base_events.py", line 497, in call_soon
2017-03-09 14:13:46 DEBUG     handle = self._call_soon(callback, args)
2017-03-09 14:13:46 DEBUG   File "/usr/lib/python3.5/asyncio/base_events.py", line 506, in _call_soon
2017-03-09 14:13:46 DEBUG     self._check_closed()
2017-03-09 14:13:46 DEBUG   File "/usr/lib/python3.5/asyncio/base_events.py", line 334, in _check_closed
2017-03-09 14:13:46 DEBUG     raise RuntimeError('Event loop is closed')
2017-03-09 14:13:46 DEBUG RuntimeError: Event loop is closed
2017-03-09 14:13:46 DEBUG Exit Code: 200

Full log: http://pastebin.ubuntu.com/24146234/

Update README with correct commands to get started.

I tried deploying cwr-ci in my environment but was unable to follow the instructions in the readme.

$ juju deploy cwr-ci
ERROR cannot resolve URL "cs:cwr-ci": charm or bundle not found

I don't know why this didn't work so I went to jujucharms.com and searched for cwr-ci and found the bundle name was cs:~juju-solutions/bundle/cwr-ci and that worked.

At the time I was not logged in to the charm store:

$ juju whoami
Controller:  localhost-localhost
Model:       default
User:        admin
$ charm whoami
not logged into https://api.jujucharms.com/charmstore
$ juju version
2.1-beta5-xenial-amd64

I have not tried it after logging in.

Please let me know if you need any other information

Can't delete or change job

I've mis-typed the name of my controller. Is there a way for me to fix this mistake? Either by removing the job and re-adding it, or changing it?

Edit: Deleting the job in Jenkins seems to do the trick

The jenkins job names should have a prefix

I deployed cwr-ci bundle to a model that already had jenkins installed. Juju correctly skipped deploying a new jenkins unit. The charm registered new jobs that mixed in with the other jobs I already had on the system.

We should consider prefixing the job names so they are grouped together. A prefix would also help with name collisions which are unlikely but possible.

Provide instructions for manually registering controller

The setup documentation has this step:
juju run-action cwr/0 register-controller name=<controller-name> token=<registration-token>
Juju registration tokens are a one-shot mechanism, and if they're not available any more, say because (hypothetically) my laptop crashed before I got a chance to save that token, or (more likely) I accidentally closed the terminal containing same, we need a way of registering the controller regardless. Could the manual steps for this be documented somewhere, please?

Accessing test deployment

Test deployments are done under the ciuser. Is there a way to access those models? Maybe jobs should have an additional parameter that specifies which users the model should be shared with?

bundle URL has invalid form: "/tmp/builds/docker"

I get the error: bundle URL has invalid form: "/tmp/builds/docker".

How I added the charm:

Note: I'm not sure why I need to specify a "reference bundle". The Charm tests deploy the needed charms themselves.

juju run-action cwr/0 build-on-commit \
  repo=https://github.com/IBCNServices/layer-docker \
  charm-name=docker \
  reference-bundle=cs:~tengu-team/limeds-core \
  push-to-channel=edge \
  lp-id=tengu-team \
  controller=msebrechts-amazon

Relevant lines in log

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html>
        <head>
            <title>Error: 406 Not Acceptable</title>
            <style type="text/css">
              html {background-color: #eee; font-family: sans;}
              body {background-color: #fff; border: 1px solid #ddd;
                    padding: 15px; margin: 15px;}
              pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;}
            </style>
        </head>
        <body>
            <h1>Error: 406 Not Acceptable</h1>
            <p>Sorry, the requested URL <tt>&#039;http://svg.juju.solutions/&#039;</tt>
               caused an error:</p>
            <pre>/usr/local/bin/python-jujusvg /tmp/tmpxSV5x9: 2017/01/19 16:07:46 FAIL: Error generating canvas: cannot parse charm &quot;/tmp/builds/docker&quot;: charm or bundle URL has invalid form: &quot;/tmp/builds/docker&quot;

</pre>
        </body>
    </html>

bundle.yaml:
machines:
  '0': {constraints: arch=amd64 cpu-cores=1 cpu-power=100 mem=1740 root-disk=8192,
    series: xenial}
relations:
- ['limeds:dockerhost', 'docker:dockerhost']
series: xenial
services:
  docker:
    annotations: {gui-x: 700, gui-y: 300}
    charm: /tmp/builds/docker
    num_units: 1
    to: ['0']
  limeds:
    annotations: {gui-x: 400, gui-y: 300}
    charm: cs:~tengu-team/limeds-0
    num_units: 1
    to: ['0']

Complete log

Started by user admin
Building in workspace /var/lib/jenkins/jobs/charm-docker/workspace
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/IBCNServices/layer-docker # timeout=10
Fetching upstream changes from https://github.com/IBCNServices/layer-docker
 > git --version # timeout=10
 > git fetch --tags --progress https://github.com/IBCNServices/layer-docker +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision dadcbcad4d68ad7a353ad2928fb3ace157cb035d (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f dadcbcad4d68ad7a353ad2928fb3ace157cb035d
 > git rev-list dadcbcad4d68ad7a353ad2928fb3ace157cb035d # timeout=10
[workspace] $ /bin/bash /tmp/hudson4606823355749867228.sh
+ '[' '!' -f first-run.lock ']'
+ export JUJU_REPOSITORY=/tmp/
+ JUJU_REPOSITORY=/tmp/
+ OUTPUT_DIR=builds
+ SERIES_FLAG=
+ '[' '!' -z '' ']'
+ charm build ''
build: Composing into /tmp/
build: Destination charm directory: /tmp/builds/docker
build: Processing layer: layer:basic
build: Processing layer: layer:apt
build: Processing layer: docker
build: Processing interface: docker-image-host
proof: OK!
+ CONTROLLERS=
+ MODELS_TO_TEST=
+ '[' -z msebrechts-amazon ']'
+ CONTROLLERS=msebrechts-amazon
+ for controller in '$CONTROLLERS'
+ juju switch msebrechts-amazon
msebrechts-amazon (controller) (no change)
++ juju add-model wont-be-added --credential invalid-credential
++ sed -e 's/.*cloud "\?\([^ "]*\)"\?.*/\1/'
+ cloud=aws
+ credential_arg=
+ [[ aws != localhost* ]]
+ [[ aws != lxd ]]
+ juju credentials --format=json
+ grep -q aws
++ juju credentials --format=json
++ jq -r '.credentials.aws."cloud-credentials" | keys[0]'
+ credential=amazon-merlijn
+ credential_arg=--credential=amazon-merlijn
+ juju add-model test-docker-2 --credential=amazon-merlijn
Uploading credential 'aws/ciuser/amazon-merlijn' to controller
Added 'test-docker-2' model on aws/us-east-1 with credential 'amazon-merlijn' for user 'ciuser'
+ MODELS_TO_TEST+='msebrechts-amazon:test-docker-2 '
+ eval 'function cleanup_msebrechts-amazon_model() { juju destroy-model msebrechts-amazon:test-docker-2 -y; }'
++ trap -p EXIT
++ awk '-F'\''' '{print $2}'
+ old_trap=
+ new_trap='cleanup_msebrechts-amazon_model;'
+ trap 'cleanup_msebrechts-amazon_model;' EXIT
+ '[' -e /tmp/bundles ']'
+ mkdir /tmp/bundles
+ rm -rf /tmp/bundles/cs__tengu_team_limeds_core
+ charm pull 'cs:~tengu-team/limeds-core' /tmp/bundles/cs__tengu_team_limeds_core
cs:~tengu-team/bundle/limeds-core-0
++ update_bundle
++ cat
+ python3 -c 'import yaml
with open('\''/tmp/bundles/cs__tengu_team_limeds_core/bundle.yaml'\'', '\''r'\'') as fp:
    bundle = yaml.safe_load(fp)
app = bundle.get('\''applications'\'', bundle.get('\''services'\'', {}))['\''docker'\'']
app['\''charm'\''] = '\''/tmp/builds/docker'\''
with open('\''/tmp/bundles/cs__tengu_team_limeds_core/bundle.yaml'\'', '\''w'\'') as fp:
    yaml.dump(bundle, fp)'
+ rm -f totest.yaml
+ echo 'bundle: /tmp/bundles/cs__tengu_team_limeds_core'
+ echo 'bundle_name: docker_in_cs__tengu_team_limeds_core'
+ echo 'bundle_file: bundle.yaml'
+ eval 'function transform_results() { python3 /var/lib/juju/agents/unit-cwr-1/charm/scripts/json2junit.py /srv/artifacts/ hadoop_client_in_cs_hadoop_processing 2  > /var/lib/jenkins/jobs/charm-docker/workspace/report.xml; }'
++ trap -p EXIT
++ awk '-F'\''' '{print $2}'
+ old_trap='cleanup_msebrechts-amazon_model;'
+ new_trap='transform_results; cleanup_msebrechts-amazon_model;'
+ trap 'transform_results; cleanup_msebrechts-amazon_model;' EXIT
+ ARTIFACTS_DIR=/srv/artifacts/docker_in_cs__tengu_team_limeds_core/2
+ mkdir -p /srv/artifacts/docker_in_cs__tengu_team_limeds_core/2
+ ln -s /srv/artifacts/docker_in_cs__tengu_team_limeds_core/2 /var/lib/jenkins/jobs/charm-docker/builds/2/archive
+ env MATRIX_OUTPUT_DIR=/srv/artifacts/docker_in_cs__tengu_team_limeds_core/2 cwr -F msebrechts-amazon:test-docker-2 totest.yaml --results-dir /srv/artifacts --test-id 2
2017-01-19 15:57:27 INFO Running test on AWS.
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin: 
Selecting previously unselected package python-backports.ssl-match-hostname.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 70131 files and directories currently installed.)
Preparing to unpack .../python-backports.ssl-match-hostname_3.4.0.2-1_all.deb ...
Unpacking python-backports.ssl-match-hostname (3.4.0.2-1) ...
Selecting previously unselected package python-websocket.
Preparing to unpack .../python-websocket_0.18.0-2_all.deb ...
Unpacking python-websocket (0.18.0-2) ...
Selecting previously unselected package python-jujuclient.
Preparing to unpack .../python-jujuclient_0.50.5-0ubuntu1_all.deb ...
Unpacking python-jujuclient (0.50.5-0ubuntu1) ...
Selecting previously unselected package juju-deployer.
Preparing to unpack .../juju-deployer_0.6.4-0ubuntu1_all.deb ...
Unpacking juju-deployer (0.6.4-0ubuntu1) ...
Selecting previously unselected package libpython3-all-dev:amd64.
Preparing to unpack .../libpython3-all-dev_3.5.1-3_amd64.deb ...
Unpacking libpython3-all-dev:amd64 (3.5.1-3) ...
Selecting previously unselected package python3-all.
Preparing to unpack .../python3-all_3.5.1-3_amd64.deb ...
Unpacking python3-all (3.5.1-3) ...
Selecting previously unselected package python3-all-dev.
Preparing to unpack .../python3-all-dev_3.5.1-3_amd64.deb ...
Unpacking python3-all-dev (3.5.1-3) ...
Selecting previously unselected package python3-theblues.
Preparing to unpack .../python3-theblues_0.3.7-0ubuntu1~ubuntu16.04.1~ppa2_all.deb ...
Unpacking python3-theblues (0.3.7-0ubuntu1~ubuntu16.04.1~ppa2) ...
Selecting previously unselected package python3-libcharmstore.
Preparing to unpack .../python3-libcharmstore_0.0.3-1ubuntu4~ubuntu16.04.1~ppa1_all.deb ...
Unpacking python3-libcharmstore (0.0.3-1ubuntu4~ubuntu16.04.1~ppa1) ...
Selecting previously unselected package python3-path.
Preparing to unpack .../python3-path_8.1.2+dfsg-1ubuntu1~ubuntu16.04.1~ppa1_all.deb ...
Unpacking python3-path (8.1.2+dfsg-1ubuntu1~ubuntu16.04.1~ppa1) ...
Selecting previously unselected package python3-amulet.
Preparing to unpack .../python3-amulet_1.18.1-0ubuntu1~ubuntu16.04.1~ppa2_all.deb ...
Unpacking python3-amulet (1.18.1-0ubuntu1~ubuntu16.04.1~ppa2) ...
Selecting previously unselected package python-amulet.
Preparing to unpack .../python-amulet_1.18.1-0ubuntu1~ubuntu16.04.1~ppa2_all.deb ...
Unpacking python-amulet (1.18.1-0ubuntu1~ubuntu16.04.1~ppa2) ...
Selecting previously unselected package amulet.
Preparing to unpack .../amulet_1.18.1-0ubuntu1~ubuntu16.04.1~ppa2_all.deb ...
Unpacking amulet (1.18.1-0ubuntu1~ubuntu16.04.1~ppa2) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up python-backports.ssl-match-hostname (3.4.0.2-1) ...
Setting up python-websocket (0.18.0-2) ...
Setting up python-jujuclient (0.50.5-0ubuntu1) ...
Setting up juju-deployer (0.6.4-0ubuntu1) ...
Setting up libpython3-all-dev:amd64 (3.5.1-3) ...
Setting up python3-all (3.5.1-3) ...
Setting up python3-all-dev (3.5.1-3) ...
Setting up python3-theblues (0.3.7-0ubuntu1~ubuntu16.04.1~ppa2) ...
Setting up python3-libcharmstore (0.0.3-1ubuntu4~ubuntu16.04.1~ppa1) ...
Setting up python3-path (8.1.2+dfsg-1ubuntu1~ubuntu16.04.1~ppa1) ...
Setting up python3-amulet (1.18.1-0ubuntu1~ubuntu16.04.1~ppa2) ...
Setting up python-amulet (1.18.1-0ubuntu1~ubuntu16.04.1~ppa2) ...
Setting up amulet (1.18.1-0ubuntu1~ubuntu16.04.1~ppa2) ...
2017-01-19 16:07:46 INFO Starting new HTTP connection (1): svg.juju.solutions
2017-01-19 16:07:47 WARNING Could not generate svg. Response from svg.juju.solutions: 
Status code:406 
Content: 
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html>
        <head>
            <title>Error: 406 Not Acceptable</title>
            <style type="text/css">
              html {background-color: #eee; font-family: sans;}
              body {background-color: #fff; border: 1px solid #ddd;
                    padding: 15px; margin: 15px;}
              pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;}
            </style>
        </head>
        <body>
            <h1>Error: 406 Not Acceptable</h1>
            <p>Sorry, the requested URL <tt>&#039;http://svg.juju.solutions/&#039;</tt>
               caused an error:</p>
            <pre>/usr/local/bin/python-jujusvg /tmp/tmpxSV5x9: 2017/01/19 16:07:46 FAIL: Error generating canvas: cannot parse charm &quot;/tmp/builds/docker&quot;: charm or bundle URL has invalid form: &quot;/tmp/builds/docker&quot;

</pre>
        </body>
    </html>

bundle.yaml:
machines:
  '0': {constraints: arch=amd64 cpu-cores=1 cpu-power=100 mem=1740 root-disk=8192,
    series: xenial}
relations:
- ['limeds:dockerhost', 'docker:dockerhost']
series: xenial
services:
  docker:
    annotations: {gui-x: 700, gui-y: 300}
    charm: /tmp/builds/docker
    num_units: 1
    to: ['0']
  limeds:
    annotations: {gui-x: 400, gui-y: 300}
    charm: cs:~tengu-team/limeds-0
    num_units: 1
    to: ['0']

+ transform_results
+ python3 /var/lib/juju/agents/unit-cwr-1/charm/scripts/json2junit.py /srv/artifacts/ hadoop_client_in_cs_hadoop_processing 2
Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-cwr-1/charm/scripts/json2junit.py", line 22, in <module>
    with open(json_filename, 'r') as json_fp:
FileNotFoundError: [Errno 2] No such file or directory: '/srv/artifacts//hadoop_client_in_cs_hadoop_processing/2/report.json'
Build step 'Execute shell' marked build as failure
Recording test results
Finished: FAILURE

Configured CI pipelines are not a part of the model

You can add new ci pipelines using an action:

juju run-action cwr/0 build-on-commit \
    repo=http://github.com/myself/my-awesome-charm \
    charm-name=awesome-charm \
    push-to-channel=edge \
    lp-id=awesome-team \
    controller=lxd

This means that the configured ci pipelines aren't part of the model. They're not visible to Juju, they won't be exported when you export the model, and it's not possible to create a bundle with preconfigured pipelines.

We'd really like to have a way to make the configured pipelines part of the model. Maybe a subordinate charm is beter suited for this, instead of an action? Multiple pipelines = multiple subordinate charms connected to jenkins?

Thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.