juju-solutions / bundle-cwr-ci Goto Github PK
View Code? Open in Web Editor NEWDeploy the Juju Charm CI system
License: Other
Deploy the Juju Charm CI system
License: Other
Suggest to add the following to improve the usability of cwr-ci in the developer workflow:
For tool componentry add links to:
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
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?
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.
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/
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
It appears from https://wiki.jenkins-ci.org/display/JENKINS/PostBuildScript+Plugin that the postbuildscript plugin is abandoned, and it no longer appears at https://updates.jenkins-ci.org/latest/. This means that the bundle cannot be deployed without significant manual intervention.
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
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.
cwr generates an html page with the results in. Is this published somewhere?
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?
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?
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
<!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>'http://svg.juju.solutions/'</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 "/tmp/builds/docker": charm or bundle URL has invalid form: "/tmp/builds/docker"
</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']
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>'http://svg.juju.solutions/'</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 "/tmp/builds/docker": charm or bundle URL has invalid form: "/tmp/builds/docker"
</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
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?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.