From a5477a7e4e820ba6812c321a6bff9fa52d0c7ce1 Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Sat, 2 Nov 2019 04:39:47 -0400 Subject: [PATCH 01/60] fix exception when handling drivermode settings --- .../chameleonvision/web/ServerHandler.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java index 214ca6f5b..7f0db9d30 100644 --- a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java +++ b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java @@ -184,17 +184,32 @@ public class ServerHandler { try { if (obj instanceof Camera) { var cam = (Camera)obj; - if (fieldName.equals("driverBrightness")) { - cam.setDriverBrightness((Integer)value); - } else if (fieldName.equals("driverExposure")) { - cam.setDriverExposure((Integer)value); + switch (fieldName) { + case "driverBrightness": + cam.setDriverBrightness((Integer) value); + break; + case "driverExposure": + cam.setDriverExposure((Integer) value); + break; + default: + Field field = obj.getClass().getField(fieldName); + if (field.getType().isEnum()) { + field.set(obj, field.getType().getEnumConstants()[(Integer) value]); + } else { + field.set(obj, value); + } + break; + } + } else { + Field field = obj.getClass().getField(fieldName); + if (field.getType().isEnum()) { + field.set(obj, field.getType().getEnumConstants()[(Integer) value]); + } + else { + field.set(obj, value); } } - Field field = obj.getClass().getField(fieldName); - if (field.getType().isEnum()) - field.set(obj, field.getType().getEnumConstants()[(Integer) value]); - else - field.set(obj, value); + } catch (NoSuchFieldException | IllegalAccessException ex) { ex.printStackTrace(); } From 386533a41a7603ca8c5500bac3b1a4415d85a958 Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Sun, 3 Nov 2019 14:15:36 -0500 Subject: [PATCH 02/60] More driverMode tweaks, and StreamDivisor , change port to 5800 --- Main/pom.xml | 2 +- .../main/java/com/chameleonvision/Main.java | 2 +- .../chameleonvision/vision/camera/Camera.java | 2 +- .../vision/camera/CameraSerializer.java | 2 +- .../vision/process/CameraProcess.java | 46 +++++++++---------- .../vision/process/VisionProcess.java | 5 +- .../chameleonvision/web/ServerHandler.java | 3 ++ .../src/main/resources/web/js/app.415345a3.js | 2 +- 8 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Main/pom.xml b/Main/pom.xml index a96fc2933..867a9ab5e 100644 --- a/Main/pom.xml +++ b/Main/pom.xml @@ -5,7 +5,7 @@ 4.0.0 org.chameleon-vision.main chameleon-vision - 1.1.4-BETA + 2.0-SNAPSHOT diff --git a/Main/src/main/java/com/chameleonvision/Main.java b/Main/src/main/java/com/chameleonvision/Main.java index 6941cb7ea..59b544707 100644 --- a/Main/src/main/java/com/chameleonvision/Main.java +++ b/Main/src/main/java/com/chameleonvision/Main.java @@ -22,7 +22,7 @@ public class Main { private static final String NETWORK_MANAGE_KEY = "--unmanage-network"; // no args for this setting private static final String IGNORE_ROOT = "--ignore-root"; // no args for this setting - private static final int DEFAULT_PORT = 8888; + private static final int DEFAULT_PORT = 5800; private static boolean ntServerMode = false; private static boolean manageNetwork = true; diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java index a1ecd7f2a..d9d8a6551 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java @@ -147,12 +147,12 @@ public class Camera { } private void updateCvSource() { + CameraManager.getVisionProcessByCameraName(name).cameraProcess.updateFrameSize(); synchronized (cvSourceLock) { var newWidth = camVideoMode.width / streamDivisor.value; var newHeight = camVideoMode.height / streamDivisor.value; cvSource = cs.putVideo(name, newWidth, newHeight); } - CameraManager.getVisionProcessByCameraName(name).cameraProcess.updateFrameSize(); ServerHandler.sendFullSettings(); } diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/CameraSerializer.java b/Main/src/main/java/com/chameleonvision/vision/camera/CameraSerializer.java index 313959ddb..3022af208 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/CameraSerializer.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/CameraSerializer.java @@ -15,7 +15,7 @@ public class CameraSerializer implements JsonSerializer { var pipelines = context.serialize(camera.getPipelines()); obj.add("pipelines", pipelines); obj.addProperty("resolution", camera.getVideoModeIndex()); - obj.add("camVideoMode", context.serialize(camera.getVideoMode())); +// obj.add("camVideoMode", context.serialize(camera.getVideoMode())); obj.add("isDriver",context.serialize(camera.getDriverMode())); obj.add("driverExposure",context.serialize(camera.getDriverExposure())); obj.add("driverBrightness",context.serialize(camera.getDriverBrightness())); diff --git a/Main/src/main/java/com/chameleonvision/vision/process/CameraProcess.java b/Main/src/main/java/com/chameleonvision/vision/process/CameraProcess.java index 0f9405cf3..813c9d6e8 100644 --- a/Main/src/main/java/com/chameleonvision/vision/process/CameraProcess.java +++ b/Main/src/main/java/com/chameleonvision/vision/process/CameraProcess.java @@ -10,42 +10,40 @@ import org.opencv.imgproc.Imgproc; public class CameraProcess implements Runnable { private final Camera camera; - private final int maxFPS; - private final Object inputFrameLock = new Object(); + private final Object outputFrameLock = new Object(); - private Mat inputFrame; + private final Object inputFrameLock = new Object(); + private int maxFPS; private Mat outputFrame; + private Mat inputFrame; private long timestamp; private StreamDivisor divisor; CameraProcess(Camera camera) { this.camera = camera; - maxFPS = camera.getVideoMode().fps; updateFrameSize(); } public void updateFrameSize() { - var camVals = camera.getCamVals(); + maxFPS = camera.getVideoMode().fps; divisor = camera.getStreamDivisor(); - var newWidth = camVals.ImageWidth / divisor.value; - var newHeight = camVals.ImageHeight / divisor.value; - synchronized (inputFrameLock) { - inputFrame = new Mat(newWidth, newHeight, CvType.CV_8UC3); - } + var camVidMode = camera.getVideoMode(); + var newWidth = camVidMode.width / divisor.value; + var newHeight = camVidMode.height / divisor.value; synchronized (outputFrameLock) { outputFrame = new Mat(newWidth, newHeight, CvType.CV_8UC3); } } - void updateFrame(Mat inputFrame) { - synchronized (inputFrameLock) { - inputFrame.copyTo(this.inputFrame); + void setOutputFrame(Mat inputFrame) { + synchronized (outputFrameLock) { + inputFrame.copyTo(this.outputFrame); } } - long getLatestFrame(Mat outputFrame) { - synchronized (outputFrameLock) { - this.outputFrame.copyTo(outputFrame); + long getInputFrame(Mat inputFrame) { + synchronized (inputFrameLock) { + this.inputFrame.copyTo(inputFrame); return timestamp; } } @@ -53,18 +51,18 @@ public class CameraProcess implements Runnable { @Override public void run() { while (!Thread.interrupted()) { - synchronized (outputFrameLock) { - timestamp = camera.grabFrame(outputFrame); - } synchronized (inputFrameLock) { + timestamp = camera.grabFrame(inputFrame); + } + synchronized (outputFrameLock) { if (divisor.value != 1) { - var camVals = camera.getCamVals(); - var newWidth = camVals.ImageWidth / divisor.value; - var newHeight = camVals.ImageHeight / divisor.value; + var camVidMode = camera.getVideoMode(); + var newWidth = camVidMode.width / divisor.value; + var newHeight = camVidMode.height / divisor.value; Size newSize = new Size(newWidth, newHeight); - Imgproc.resize(inputFrame, inputFrame, newSize); + Imgproc.resize(outputFrame, outputFrame, newSize); } - camera.putFrame(inputFrame); + camera.putFrame(outputFrame); } var msToWait = (long) 1000 / maxFPS; try { diff --git a/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java b/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java index 6e00b6477..c4580e47d 100644 --- a/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java +++ b/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java @@ -1,7 +1,6 @@ package com.chameleonvision.vision.process; import com.chameleonvision.settings.SettingsManager; -import com.chameleonvision.vision.CalibrationMode; import com.chameleonvision.vision.Orientation; import com.chameleonvision.vision.Pipeline; import com.chameleonvision.vision.camera.Camera; @@ -218,7 +217,7 @@ public class VisionProcess implements Runnable { currentPipeline = camera.getCurrentPipeline(); // start fps counter right before grabbing input frame - timeStamp = cameraProcess.getLatestFrame(cameraInputMat); + timeStamp = cameraProcess.getInputFrame(cameraInputMat); if (cameraInputMat.cols() == 0 && cameraInputMat.rows() == 0) { continue; } @@ -249,7 +248,7 @@ public class VisionProcess implements Runnable { ServerHandler.broadcastMessage(WebSend); } - cameraProcess.updateFrame(streamOutputMat); + cameraProcess.setOutputFrame(streamOutputMat); cameraInputMat.release(); hsvThreshMat.release(); diff --git a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java index 7f0db9d30..3573fcfa7 100644 --- a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java +++ b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java @@ -191,6 +191,9 @@ public class ServerHandler { case "driverExposure": cam.setDriverExposure((Integer) value); break; + case "isDriver": + cam.setDriverMode((boolean)value); + break; default: Field field = obj.getClass().getField(fieldName); if (field.getType().isEnum()) { diff --git a/Main/src/main/resources/web/js/app.415345a3.js b/Main/src/main/resources/web/js/app.415345a3.js index 86d438e65..1a1ad66b9 100644 --- a/Main/src/main/resources/web/js/app.415345a3.js +++ b/Main/src/main/resources/web/js/app.415345a3.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var a,r,o=t[0],s=t[1],u=t[2],d=0,l=[];d({saveSnackbar:!1,timer:void 0}),created(){this.$options.sockets.onmessage=async e=>{try{var t=await e.data.arrayBuffer();let n=this.$msgPack.decode(t);for(let e in n)n.hasOwnProperty(e)&&this.handleMessage(e,n[e])}catch(n){console.error("error: "+e.data+" , "+n)}}}},o=c,s=(n("034f"),n("2877")),u=n("6544"),d=n.n(u),l=n("7496"),h=n("40dc"),f=n("a523"),p=n("a75b"),v=n("0e8f"),m=n("a722"),b=n("2db4"),k=n("71a3"),g=n("fe57"),y=n("2a7f"),w=Object(s["a"])(o,r,i,!1,null,null,null),S=w.exports;d()(w,{VApp:l["a"],VAppBar:h["a"],VContainer:f["a"],VContent:p["a"],VFlex:v["a"],VLayout:m["a"],VSnackbar:b["a"],VTab:k["a"],VTabs:g["a"],VToolbarItems:y["a"],VToolbarTitle:y["b"]});var x=n("8c4f");function C(e){return()=>n("1a5d")(`./${e}.vue`)}a["a"].use(x["a"]);var P=new x["a"]({base:"/",routes:[{path:"/",redirect:"/vision"},{path:"/vision",name:"Vision",component:C("Camera")},{path:"/settings",name:"Settings",component:C("Settings")}]}),V=n("2f62");a["a"].use(V["a"]);const L=e=>(t,n)=>{a["a"].set(t,e,n)};var T=new V["a"].Store({state:{settings:{teamNumber:1577,connectionType:0,ip:"",gateway:"",netmask:"",hostname:"Chameleon-vision"},pipeline:{exposure:0,brightness:0,orientation:0,hue:[0,15],saturation:[0,15],value:[0,25],erode:!1,dilate:!1,area:[0,12],ratio:[0,12],extent:[0,12],speckle:5,targetGrouping:0,targetIntersection:0,sortMode:0,isBinary:0,calibrationMode:0},driverMode:{isDriver:!1,driverExposure:0,driverBrightness:0},cameraSettings:{},resolutionList:[],port:1181,currentCameraIndex:0,currentPipelineIndex:0,cameraList:[],pipelineList:[],point:{}},mutations:{settings:L("settings"),pipeline:L("pipeline"),cameraSettings:L("cameraSettings"),resolutionList:L("resolutionList"),port:L("port"),currentCameraIndex:L("currentCameraIndex"),currentPipelineIndex:L("currentPipelineIndex"),cameraList:L("cameraList"),pipelineList:L("pipelineList"),point:L("point"),setPipeValues(e,t){for(let n in t)a["a"].set(e.pipeline,n,t[n])},driverMode:L("driverMode")},actions:{settings:e=>e.settings,pipeline:e=>e.pipeline,cameraSettings:e=>e.cameraSettings,resolutionList:e=>e.resolutionList,port:e=>e.port,currentCameraIndex:e=>e.currentCameraIndex,currentPipelineIndex:e=>e.currentPipelineIndex,cameraList:e=>e.cameraList,pipelineList:e=>e.pipelineList,point:e=>e.point,driverMode:e=>e.driverMode}}),O=(n("5363"),n("d1e7"),n("f309"));a["a"].use(O["a"]);var I=new O["a"]({icons:{}}),_=n("b408"),M=n.n(_),j=n("7d47"),E=n.n(j);a["a"].config.productionTip=!1,a["a"].use(M.a,"ws://"+location.hostname+":8888/websocket"),a["a"].prototype.$msgPack=E()(!0),a["a"].mixin({methods:{handleInput(e,t){let n=this.$msgPack.encode({[e]:t});this.$socket.send(n)}}}),new a["a"]({router:P,store:T,vuetify:I,render:e=>e(S)}).$mount("#app")},cf05:function(e,t,n){e.exports=n.p+"img/logo.e82307fd.png"}}); +(function(e){function t(t){for(var a,r,o=t[0],s=t[1],u=t[2],d=0,l=[];d({saveSnackbar:!1,timer:void 0}),created(){this.$options.sockets.onmessage=async e=>{try{var t=await e.data.arrayBuffer();let n=this.$msgPack.decode(t);for(let e in n)n.hasOwnProperty(e)&&this.handleMessage(e,n[e])}catch(n){console.error("error: "+e.data+" , "+n)}}}},o=c,s=(n("034f"),n("2877")),u=n("6544"),d=n.n(u),l=n("7496"),h=n("40dc"),f=n("a523"),p=n("a75b"),v=n("0e8f"),m=n("a722"),b=n("2db4"),k=n("71a3"),g=n("fe57"),y=n("2a7f"),w=Object(s["a"])(o,r,i,!1,null,null,null),S=w.exports;d()(w,{VApp:l["a"],VAppBar:h["a"],VContainer:f["a"],VContent:p["a"],VFlex:v["a"],VLayout:m["a"],VSnackbar:b["a"],VTab:k["a"],VTabs:g["a"],VToolbarItems:y["a"],VToolbarTitle:y["b"]});var x=n("8c4f");function C(e){return()=>n("1a5d")(`./${e}.vue`)}a["a"].use(x["a"]);var P=new x["a"]({base:"/",routes:[{path:"/",redirect:"/vision"},{path:"/vision",name:"Vision",component:C("Camera")},{path:"/settings",name:"Settings",component:C("Settings")}]}),V=n("2f62");a["a"].use(V["a"]);const L=e=>(t,n)=>{a["a"].set(t,e,n)};var T=new V["a"].Store({state:{settings:{teamNumber:1577,connectionType:0,ip:"",gateway:"",netmask:"",hostname:"Chameleon-vision"},pipeline:{exposure:0,brightness:0,orientation:0,hue:[0,15],saturation:[0,15],value:[0,25],erode:!1,dilate:!1,area:[0,12],ratio:[0,12],extent:[0,12],speckle:5,targetGrouping:0,targetIntersection:0,sortMode:0,isBinary:0,calibrationMode:0},driverMode:{isDriver:!1,driverExposure:0,driverBrightness:0},cameraSettings:{},resolutionList:[],port:1181,currentCameraIndex:0,currentPipelineIndex:0,cameraList:[],pipelineList:[],point:{}},mutations:{settings:L("settings"),pipeline:L("pipeline"),cameraSettings:L("cameraSettings"),resolutionList:L("resolutionList"),port:L("port"),currentCameraIndex:L("currentCameraIndex"),currentPipelineIndex:L("currentPipelineIndex"),cameraList:L("cameraList"),pipelineList:L("pipelineList"),point:L("point"),setPipeValues(e,t){for(let n in t)a["a"].set(e.pipeline,n,t[n])},driverMode:L("driverMode")},actions:{settings:e=>e.settings,pipeline:e=>e.pipeline,cameraSettings:e=>e.cameraSettings,resolutionList:e=>e.resolutionList,port:e=>e.port,currentCameraIndex:e=>e.currentCameraIndex,currentPipelineIndex:e=>e.currentPipelineIndex,cameraList:e=>e.cameraList,pipelineList:e=>e.pipelineList,point:e=>e.point,driverMode:e=>e.driverMode}}),O=(n("5363"),n("d1e7"),n("f309"));a["a"].use(O["a"]);var I=new O["a"]({icons:{}}),_=n("b408"),M=n.n(_),j=n("7d47"),E=n.n(j);a["a"].config.productionTip=!1,a["a"].use(M.a,"ws://"+location.hostname+":5800/websocket"),a["a"].prototype.$msgPack=E()(!0),a["a"].mixin({methods:{handleInput(e,t){let n=this.$msgPack.encode({[e]:t});this.$socket.send(n)}}}),new a["a"]({router:P,store:T,vuetify:I,render:e=>e(S)}).$mount("#app")},cf05:function(e,t,n){e.exports=n.p+"img/logo.e82307fd.png"}}); //# sourceMappingURL=app.415345a3.js.map \ No newline at end of file From 2a78334bbb53f96524ca9f340bf5d652957e983a Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Sun, 3 Nov 2019 14:21:37 -0500 Subject: [PATCH 03/60] Fix null pointer in CameraProcess --- .../java/com/chameleonvision/vision/process/CameraProcess.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Main/src/main/java/com/chameleonvision/vision/process/CameraProcess.java b/Main/src/main/java/com/chameleonvision/vision/process/CameraProcess.java index 813c9d6e8..a9dd5958c 100644 --- a/Main/src/main/java/com/chameleonvision/vision/process/CameraProcess.java +++ b/Main/src/main/java/com/chameleonvision/vision/process/CameraProcess.java @@ -33,6 +33,7 @@ public class CameraProcess implements Runnable { synchronized (outputFrameLock) { outputFrame = new Mat(newWidth, newHeight, CvType.CV_8UC3); } + inputFrame = new Mat(camVidMode.width, camVidMode.height, CvType.CV_8UC3); } void setOutputFrame(Mat inputFrame) { From ac7bd48d8722f7e0ce0c2b9e98e8fcffd56c5de0 Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Sun, 3 Nov 2019 15:09:01 -0500 Subject: [PATCH 04/60] Fix JPEG Image error --- Main/chameleon-vision.iml | 3 --- .../main/java/com/chameleonvision/vision/camera/Camera.java | 5 ++++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Main/chameleon-vision.iml b/Main/chameleon-vision.iml index 13d0e774e..bb72d8934 100644 --- a/Main/chameleon-vision.iml +++ b/Main/chameleon-vision.iml @@ -10,9 +10,6 @@ - - - diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java index d9d8a6551..37a9dfde8 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java @@ -138,7 +138,10 @@ public class Camera { // update camera values camVals = new CameraValues(this); - if (prevVideoMode != null && !prevVideoMode.equals(newVideoMode)) { // if resolution changed + boolean hasPrevVideoMode = prevVideoMode != null; + boolean newVideoModeIsNew = hasPrevVideoMode && !prevVideoMode.equals(newVideoMode); + + if (newVideoModeIsNew || !hasPrevVideoMode) { UsbCam.setVideoMode(newVideoMode.getActualPixelFormat(), newVideoMode.width, newVideoMode.height, newVideoMode.fps); if (updateCvSource) { updateCvSource(); From 0881880b8687fb28f9245907f3f73178964c044e Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 5 Nov 2019 21:15:10 +0200 Subject: [PATCH 05/60] changed stream resolution list from ratio - changed the resolution list to be the actual resolution instead of ratio - changed development port to be 5800 --- .../chameleonvision/vision/camera/Camera.java | 10 +++++++-- .../vision/camera/StreamDivisor.java | 2 +- chameleon-client/src/main.js | 2 +- .../src/views/SettingsViewes/Cameras.vue | 21 ++++++++++++++++--- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java index 37a9dfde8..4354dba05 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java @@ -9,6 +9,7 @@ import edu.wpi.first.networktables.NetworkTable; import edu.wpi.first.networktables.NetworkTableInstance; import org.opencv.core.Mat; +import java.lang.reflect.Array; import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -304,9 +305,14 @@ public class Camera { } } - public List getResolutionList() { + public List getResolutionList() { return Arrays.stream(availableVideoModes) - .map(res -> String.format("%sx%s@%sFPS, %s", res.width, res.height, res.fps, res.pixelFormat.toString())) + .map(res -> new HashMap(){{ + put("width", res.width); + put("height", res.height); + put("fps", res.fps); + put("pixelFormat", res.pixelFormat); + }}) .collect(Collectors.toList()); } diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/StreamDivisor.java b/Main/src/main/java/com/chameleonvision/vision/camera/StreamDivisor.java index 8edb165e2..bdda9556c 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/StreamDivisor.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/StreamDivisor.java @@ -4,7 +4,7 @@ public enum StreamDivisor { none(1), half(2), quarter(4), - sixth(6); + eighth(8); public final Integer value; diff --git a/chameleon-client/src/main.js b/chameleon-client/src/main.js index 86192f4ea..562e19df9 100644 --- a/chameleon-client/src/main.js +++ b/chameleon-client/src/main.js @@ -8,7 +8,7 @@ import msgPack from 'msgpack5'; Vue.config.productionTip = false; // Vue.use(VueNativeSock,'ws://' + location.host + '/websocket',{format: 'json'}); -Vue.use(VueNativeSock, 'ws://' + location.hostname + ':8888/websocket'); +Vue.use(VueNativeSock, 'ws://' + location.hostname + ':5800/websocket'); Vue.prototype.$msgPack = msgPack(true); Vue.mixin({ methods: { diff --git a/chameleon-client/src/views/SettingsViewes/Cameras.vue b/chameleon-client/src/views/SettingsViewes/Cameras.vue index 926c69e50..8440de656 100644 --- a/chameleon-client/src/views/SettingsViewes/Cameras.vue +++ b/chameleon-client/src/views/SettingsViewes/Cameras.vue @@ -3,7 +3,7 @@ + :list="streamResolutionList"/> Save Camera Settings @@ -29,7 +29,6 @@ }, computed: { - currentCameraIndex: { get() { return this.$store.state.currentCameraIndex; @@ -48,7 +47,23 @@ }, resolutionList: { get() { - return this.$store.state.resolutionList; + let tmp_list = []; + for (let i of this.$store.state.resolutionList){ + tmp_list.push(`${i['width']} X ${i['height']} at ${i['fps']} FPS, ${i['pixelFormat']}`) + } + return tmp_list; + } + }, + streamResolutionList:{ + get(){ + let cam_res = this.$store.state.resolutionList[this.cameraSettings.resolution]; + let tmp_list = []; + let x = 1; + for (let i = 0; i < 4; i++){ + tmp_list.push(`${cam_res['width']/x} X ${cam_res['height']/x}`); + x *= 2; + } + return tmp_list; } }, cameraSettings: { From 411d84515e856737e7415b3c6aca99ae69a883ab Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 10:36:09 +0000 Subject: [PATCH 06/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..b6db094bd --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,13 @@ +stages: + - install + - build + +install: + stage: install + script: + - echo "install" +build: + stage: build + script: + - echo "build" + From b9078c49f8415e7ba55d881fabee01a5fcbf504d Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 10:47:50 +0000 Subject: [PATCH 07/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b6db094bd..c8880b60f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,13 +1,13 @@ stages: - - install - - build - -install: - stage: install + - build_ui + - build_jar +build_ui: + image:node:latest script: - - echo "install" -build: - stage: build - script: - - echo "build" + - cd chameleon-client + - npm install + - npm run build + + + From ead1c7768cef519336eb22e853c1ab66d912d98f Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 10:53:06 +0000 Subject: [PATCH 08/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c8880b60f..6fddab665 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,13 +1,16 @@ stages: - build_ui - build_jar + build_ui: - image:node:latest + stage: build_ui + image: node:latest script: - cd chameleon-client - npm install - npm run build - - - - + +build_jar: + stage: build_jar + script: + - echo "hrllo" From 11e018b2285bee11d4019199ae82f3a146048352 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 13:35:03 +0000 Subject: [PATCH 09/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6fddab665..50a5baf92 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,8 +9,14 @@ build_ui: - cd chameleon-client - npm install - npm run build + artifacts: + paths: + - dist/ build_jar: stage: build_jar + image: maven:3.6.2-jdk-12 script: - - echo "hrllo" + - mv chameleon-client/dist/* Main/src/main/resources/web + - cd Main + - mvn package \ No newline at end of file From 893adc510c7e54a13fd465b39f9e9e8c37f313c1 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 13:39:50 +0000 Subject: [PATCH 10/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 50a5baf92..268f43d5d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,7 +11,7 @@ build_ui: - npm run build artifacts: paths: - - dist/ + - chameleon-client/dist build_jar: stage: build_jar From e53ae9f0da814f073a14979639d5dc6557070e6c Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 14:15:33 +0000 Subject: [PATCH 11/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 268f43d5d..86b7b8570 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,6 +17,7 @@ build_jar: stage: build_jar image: maven:3.6.2-jdk-12 script: + - rm Main/src/main/resources/web/* - mv chameleon-client/dist/* Main/src/main/resources/web - cd Main - mvn package \ No newline at end of file From 7f5dad400dbaf01b051b5ffd8888b7f4b9cf5415 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 14:19:52 +0000 Subject: [PATCH 12/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 86b7b8570..524e9370c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,7 +17,7 @@ build_jar: stage: build_jar image: maven:3.6.2-jdk-12 script: - - rm Main/src/main/resources/web/* + - rm -r Main/src/main/resources/web/* - mv chameleon-client/dist/* Main/src/main/resources/web - cd Main - mvn package \ No newline at end of file From 14e436c8f68f1216d58dd76c26223f05eaaa01b6 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 20:31:53 +0000 Subject: [PATCH 13/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 524e9370c..2e68b60bc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,4 +20,9 @@ build_jar: - rm -r Main/src/main/resources/web/* - mv chameleon-client/dist/* Main/src/main/resources/web - cd Main - - mvn package \ No newline at end of file + - mvn package + - eval $(ssh-agent -s) + - bash -c 'ssh-add <(echo "${SSH_PRIVATE_KEY}")' + - mkdir -p ~/.ssh + - echo "${SSH_HOST_KEY}" > ~/.ssh/known_hosts + - rsync -e ssh ./target/chameleon-vision-$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) ${SSH_USER}@frs.sourceforge.net:/home/frs/project/ori-test/ \ No newline at end of file From 1e2d5f0c109944a1ae5ed9e13ccf6c34aa19ed18 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 20:36:51 +0000 Subject: [PATCH 14/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2e68b60bc..4f0da8b47 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,6 +16,8 @@ build_ui: build_jar: stage: build_jar image: maven:3.6.2-jdk-12 + before_script: + - apk update && apk add openssh-client bash rsync script: - rm -r Main/src/main/resources/web/* - mv chameleon-client/dist/* Main/src/main/resources/web From 2545d1bd130ae281af0f2f00f7681d7ea02117d7 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 21:08:04 +0000 Subject: [PATCH 15/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4f0da8b47..ad2950e23 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ stages: - build_ui - build_jar + - deploy build_ui: stage: build_ui @@ -16,15 +17,22 @@ build_ui: build_jar: stage: build_jar image: maven:3.6.2-jdk-12 - before_script: - - apk update && apk add openssh-client bash rsync script: - rm -r Main/src/main/resources/web/* - mv chameleon-client/dist/* Main/src/main/resources/web - cd Main - mvn package - - eval $(ssh-agent -s) - - bash -c 'ssh-add <(echo "${SSH_PRIVATE_KEY}")' - - mkdir -p ~/.ssh - - echo "${SSH_HOST_KEY}" > ~/.ssh/known_hosts - - rsync -e ssh ./target/chameleon-vision-$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) ${SSH_USER}@frs.sourceforge.net:/home/frs/project/ori-test/ \ No newline at end of file + artifacts: + paths: + - Main/target +deploy: + stage: deploy + image: publysher/hugo + script: + - hugo + - echo "${SSH_PRIVATE_KEY}" > id_rsa + - chmod 700 id_rsa + - mkdir "${HOME}/.ssh" + - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts" + - cd Main + - rsync -e 'ssh -i id_rsa' target/chameleon-vision-$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ From d25adba18eadd413519b59e81af3cbd0465a2a94 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 21:13:14 +0000 Subject: [PATCH 16/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad2950e23..c532fb323 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,7 +29,6 @@ deploy: stage: deploy image: publysher/hugo script: - - hugo - echo "${SSH_PRIVATE_KEY}" > id_rsa - chmod 700 id_rsa - mkdir "${HOME}/.ssh" From c8ba8a49f2defc074344236b0a8275da49d10c66 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 21:18:59 +0000 Subject: [PATCH 17/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c532fb323..906fbcdbc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,4 +34,4 @@ deploy: - mkdir "${HOME}/.ssh" - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts" - cd Main - - rsync -e 'ssh -i id_rsa' target/chameleon-vision-$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ + - rsync -e 'ssh -i id_rsa' target/* oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ From 257e2e16064429d64b71f998aa068fe2d3b2d318 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 21:28:56 +0000 Subject: [PATCH 18/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 906fbcdbc..6e6fe46cf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,11 +27,15 @@ build_jar: - Main/target deploy: stage: deploy - image: publysher/hugo + image: monachus/hugo:latest + before_script: + - apt-get update + - apt-get --yes --force-yes install git ssh rsync + - git submodule update --init --recursive script: - - echo "${SSH_PRIVATE_KEY}" > id_rsa - - chmod 700 id_rsa - - mkdir "${HOME}/.ssh" - - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts" - - cd Main - - rsync -e 'ssh -i id_rsa' target/* oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ + - echo "${SSH_PRIVATE_KEY}" > id_rsa + - chmod 700 id_rsa + - mkdir "${HOME}/.ssh" + - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts" + - cd Main + - rsync -e 'ssh -i id_rsa' target/* oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ From a7c2dfa80aca42be8a2135935d64dfbecf8b0c47 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 21:35:24 +0000 Subject: [PATCH 19/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6e6fe46cf..fd505b9d7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,7 +30,7 @@ deploy: image: monachus/hugo:latest before_script: - apt-get update - - apt-get --yes --force-yes install git ssh rsync + - apt-get --yes install git ssh rsync - git submodule update --init --recursive script: - echo "${SSH_PRIVATE_KEY}" > id_rsa From f6e8dd2e6ad348e57cb889f2c24474e3bbb8c387 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 21:43:08 +0000 Subject: [PATCH 20/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fd505b9d7..efc7c59fb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,9 +33,9 @@ deploy: - apt-get --yes install git ssh rsync - git submodule update --init --recursive script: - - echo "${SSH_PRIVATE_KEY}" > id_rsa - - chmod 700 id_rsa - mkdir "${HOME}/.ssh" - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts" + - echo "${SSH_PRIVATE_KEY}" > "${HOME}/.ssh/id_rsa" + - chmod 700 "${HOME}/.ssh/id_rsa" - cd Main - - rsync -e 'ssh -i id_rsa' target/* oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ + - rsync -e ssh target/* oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ From 48123e9e5eda4ef73da8f8822b4593b93f442cbd Mon Sep 17 00:00:00 2001 From: ori agranat Date: Fri, 8 Nov 2019 22:17:53 +0000 Subject: [PATCH 21/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index efc7c59fb..f2ce7262d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,4 +38,4 @@ deploy: - echo "${SSH_PRIVATE_KEY}" > "${HOME}/.ssh/id_rsa" - chmod 700 "${HOME}/.ssh/id_rsa" - cd Main - - rsync -e ssh target/* oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ + - rsync -e ssh pom.xml oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ From f322d094e0278b79264ec1174e553e1d09272e83 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Sat, 9 Nov 2019 10:08:42 +0000 Subject: [PATCH 22/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f2ce7262d..bc63b197b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,4 +38,4 @@ deploy: - echo "${SSH_PRIVATE_KEY}" > "${HOME}/.ssh/id_rsa" - chmod 700 "${HOME}/.ssh/id_rsa" - cd Main - - rsync -e ssh pom.xml oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ + - rsync -e "ssh -o StrictHostKeyChecking=no" target/* oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ From 513a0f1ad88624f693210ebe56eec06a690050d1 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Sat, 9 Nov 2019 10:34:49 +0000 Subject: [PATCH 23/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bc63b197b..6288b67cb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,5 +37,5 @@ deploy: - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts" - echo "${SSH_PRIVATE_KEY}" > "${HOME}/.ssh/id_rsa" - chmod 700 "${HOME}/.ssh/id_rsa" - - cd Main - - rsync -e "ssh -o StrictHostKeyChecking=no" target/* oriagranat9@frs.sourceforge.net:/home/frs/project/ori-test/ + - cd Main/target + - rsync -e "ssh -o StrictHostKeyChecking=no" $(find . -name "chameleon-vision-*") "${SSH_HOST_ADRESS}" From 4614577d8cb58d2a17f1a80ae9d61beb3ca92e47 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Sat, 9 Nov 2019 10:41:36 +0000 Subject: [PATCH 24/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6288b67cb..e8b71e1bf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,7 +27,7 @@ build_jar: - Main/target deploy: stage: deploy - image: monachus/hugo:latest + image: ubuntu:latest before_script: - apt-get update - apt-get --yes install git ssh rsync From 7c69fed9aef0eadf7cfe644a542104abc4d199e3 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Sat, 9 Nov 2019 10:50:27 +0000 Subject: [PATCH 25/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e8b71e1bf..f96cff96f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,8 +4,11 @@ stages: - deploy build_ui: - stage: build_ui + stage: build ui image: node:latest + only: + refs: + - master script: - cd chameleon-client - npm install @@ -15,8 +18,11 @@ build_ui: - chameleon-client/dist build_jar: - stage: build_jar + stage: build jar image: maven:3.6.2-jdk-12 + only: + refs: + - master script: - rm -r Main/src/main/resources/web/* - mv chameleon-client/dist/* Main/src/main/resources/web @@ -28,6 +34,9 @@ build_jar: deploy: stage: deploy image: ubuntu:latest + only: + refs: + - master before_script: - apt-get update - apt-get --yes install git ssh rsync From bc0e4e8cdfd521f9566c017d872b72b5c6a96054 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Sat, 9 Nov 2019 10:50:59 +0000 Subject: [PATCH 26/60] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f96cff96f..2d45f7ecc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ stages: - deploy build_ui: - stage: build ui + stage: build_ui image: node:latest only: refs: @@ -18,7 +18,7 @@ build_ui: - chameleon-client/dist build_jar: - stage: build jar + stage: build_jar image: maven:3.6.2-jdk-12 only: refs: From 1198e2cf99d698d35f5ba331c6fbbb00ac842617 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Sat, 9 Nov 2019 19:52:33 +0200 Subject: [PATCH 27/60] general settings and camera settings as http requests --- .../chameleonvision/vision/camera/Camera.java | 5 +- .../vision/process/VisionProcess.java | 8 +-- .../chameleonvision/web/Requesthandler.java | 66 +++++++++++++++++++ .../java/com/chameleonvision/web/Server.java | 21 +++--- ...{ServerHandler.java => SocketHandler.java} | 45 ++----------- chameleon-client/package-lock.json | 63 +++++++++++++----- chameleon-client/package.json | 2 + chameleon-client/src/main.js | 10 ++- .../src/views/SettingsViewes/General.vue | 7 +- 9 files changed, 153 insertions(+), 74 deletions(-) create mode 100644 Main/src/main/java/com/chameleonvision/web/Requesthandler.java rename Main/src/main/java/com/chameleonvision/web/{ServerHandler.java => SocketHandler.java} (86%) diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java index 4354dba05..349e46b33 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java @@ -2,14 +2,13 @@ package com.chameleonvision.vision.camera; import com.chameleonvision.settings.Platform; import com.chameleonvision.vision.Pipeline; -import com.chameleonvision.web.ServerHandler; +import com.chameleonvision.web.SocketHandler; import edu.wpi.cscore.*; import edu.wpi.first.cameraserver.CameraServer; import edu.wpi.first.networktables.NetworkTable; import edu.wpi.first.networktables.NetworkTableInstance; import org.opencv.core.Mat; -import java.lang.reflect.Array; import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -157,7 +156,7 @@ public class Camera { var newHeight = camVideoMode.height / streamDivisor.value; cvSource = cs.putVideo(name, newWidth, newHeight); } - ServerHandler.sendFullSettings(); + SocketHandler.sendFullSettings(); } public void addPipeline() { diff --git a/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java b/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java index c4580e47d..f412ea6db 100644 --- a/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java +++ b/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java @@ -4,7 +4,7 @@ import com.chameleonvision.settings.SettingsManager; import com.chameleonvision.vision.Orientation; import com.chameleonvision.vision.Pipeline; import com.chameleonvision.vision.camera.Camera; -import com.chameleonvision.web.ServerHandler; +import com.chameleonvision.web.SocketHandler; import edu.wpi.cscore.VideoException; import edu.wpi.first.networktables.*; import org.opencv.core.*; @@ -76,8 +76,8 @@ public class VisionProcess implements Runnable { SettingsManager.GeneralSettings.currentPipeline = ntPipelineIndex; HashMap pipeChange = new HashMap<>(); pipeChange.put("currentPipeline", ntPipelineIndex); - ServerHandler.broadcastMessage(pipeChange); - ServerHandler.sendFullSettings(); + SocketHandler.broadcastMessage(pipeChange); + SocketHandler.sendFullSettings(); } } @@ -245,7 +245,7 @@ public class VisionProcess implements Runnable { point.put("calculated", calculated); point.put("rawPoint", center); WebSend.put("point", point); - ServerHandler.broadcastMessage(WebSend); + SocketHandler.broadcastMessage(WebSend); } cameraProcess.setOutputFrame(streamOutputMat); diff --git a/Main/src/main/java/com/chameleonvision/web/Requesthandler.java b/Main/src/main/java/com/chameleonvision/web/Requesthandler.java new file mode 100644 index 000000000..e4fc89d9d --- /dev/null +++ b/Main/src/main/java/com/chameleonvision/web/Requesthandler.java @@ -0,0 +1,66 @@ +package com.chameleonvision.web; + +import com.chameleonvision.network.NetworkIPMode; +import com.chameleonvision.settings.GeneralSettings; +import com.chameleonvision.settings.SettingsManager; +import com.chameleonvision.vision.camera.CameraException; +import com.chameleonvision.vision.camera.CameraManager; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.javalin.http.Context; + +import java.util.HashMap; +import java.util.Map; + +public class Requesthandler { + + public static void onGeneralSettings(Context ctx) { + ObjectMapper objectMapper = new ObjectMapper(); + try { + Map map = objectMapper.readValue(ctx.body(), Map.class); + SettingsManager.GeneralSettings.teamNumber = (int) map.get("teamNumber"); + SettingsManager.GeneralSettings.connectionType = NetworkIPMode.values()[(int) map.get("connectionType")]; + SettingsManager.GeneralSettings.ip = (String) map.get("ip"); + SettingsManager.GeneralSettings.netmask = (String) map.get("netmask"); + SettingsManager.GeneralSettings.gateway = (String) map.get("gateway"); + SettingsManager.GeneralSettings.hostname = (String) map.get("hostname"); + SettingsManager.saveSettings(); + SocketHandler.sendFullSettings(); + ctx.status(200); + } catch (JsonProcessingException e) { + ctx.status(500); + } + } + + public static void onCameraSettings(Context ctx) { + ObjectMapper objectMapper = new ObjectMapper(); + try { + Map camSettings = objectMapper.readValue(ctx.body(), Map.class); + var curCam = CameraManager.getCurrentCamera(); + + Number newFOV = (Number) camSettings.get("fov"); + Integer newStreamDivisor = (Integer) camSettings.get("streamDivisor"); + Integer newResolution = (Integer) camSettings.get("resolution"); + + curCam.setFOV(newFOV); + + var currentStreamDivisorOrdinal = curCam.getStreamDivisor().ordinal(); + if (currentStreamDivisorOrdinal != newStreamDivisor) { + curCam.setStreamDivisor(newStreamDivisor, true); + } + + var currentResolutionIndex = curCam.getVideoModeIndex(); + if (currentResolutionIndex != newResolution) { + curCam.setCamVideoMode(newResolution, true); + } + + CameraManager.saveCameras(); + SocketHandler.sendFullSettings(); + ctx.status(200); + } catch (JsonProcessingException | CameraException e) { + e.printStackTrace(); + ctx.status(500); + } + } +} diff --git a/Main/src/main/java/com/chameleonvision/web/Server.java b/Main/src/main/java/com/chameleonvision/web/Server.java index e90657c97..020c039cd 100644 --- a/Main/src/main/java/com/chameleonvision/web/Server.java +++ b/Main/src/main/java/com/chameleonvision/web/Server.java @@ -3,30 +3,33 @@ package com.chameleonvision.web; import com.chameleonvision.settings.SettingsManager; import io.javalin.Javalin; - public class Server { - public static ServerHandler handler; + private static SocketHandler socketHandler; public static void main(int port) { - handler = new ServerHandler(); + socketHandler = new SocketHandler(); - Javalin app = Javalin.create(javalinConfig -> javalinConfig.showJavalinBanner=false); - app.config.addStaticFiles("web"); + Javalin app = Javalin.create(javalinConfig -> { + javalinConfig.showJavalinBanner = false; + javalinConfig.addStaticFiles("web"); + javalinConfig.enableCorsForAllOrigins(); + }); app.ws("/websocket", ws -> { ws.onConnect(ctx -> { - handler.onConnect(ctx); + socketHandler.onConnect(ctx); System.out.println("Socket Connected"); }); ws.onClose(ctx -> { - handler.onClose(ctx); + socketHandler.onClose(ctx); System.out.println("Socket Disconnected"); SettingsManager.saveSettings(); }); ws.onBinaryMessage(ctx -> { - handler.onBinaryMessage(ctx); + socketHandler.onBinaryMessage(ctx); }); }); - + app.post("/api/settings/general", Requesthandler::onGeneralSettings); + app.post("/api/settings/camera", Requesthandler::onCameraSettings); app.start(port); } } \ No newline at end of file diff --git a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java b/Main/src/main/java/com/chameleonvision/web/SocketHandler.java similarity index 86% rename from Main/src/main/java/com/chameleonvision/web/ServerHandler.java rename to Main/src/main/java/com/chameleonvision/web/SocketHandler.java index 3573fcfa7..46e50b3aa 100644 --- a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java +++ b/Main/src/main/java/com/chameleonvision/web/SocketHandler.java @@ -22,12 +22,12 @@ import java.nio.ByteBuffer; import java.util.*; -public class ServerHandler { +public class SocketHandler { private static List users; private static ObjectMapper objectMapper; - ServerHandler() { + SocketHandler() { users = new ArrayList<>(); objectMapper = new ObjectMapper(new MessagePackFactory()); } @@ -47,14 +47,6 @@ public class ServerHandler { for (Map.Entry entry : deserialized.entrySet()) { try { switch (entry.getKey()) { - case "generalSettings": { - for (HashMap.Entry e : ((HashMap) entry.getValue()).entrySet()) { - setField(SettingsManager.GeneralSettings, e.getKey(), e.getValue()); - } - SettingsManager.saveSettings(); - sendFullSettings(); - break; - } case "driverMode": { for (HashMap.Entry e : ((HashMap) entry.getValue()).entrySet()) { setField(CameraManager.getCurrentCamera(), e.getKey(), e.getValue()); @@ -63,30 +55,6 @@ public class ServerHandler { CameraManager.saveCameras(); break; } - case "cameraSettings": { - HashMap camSettings = (HashMap) entry.getValue(); - var curCam = CameraManager.getCurrentCamera(); - - Number newFOV = (Number) camSettings.get("fov"); - Integer newStreamDivisor = (Integer) camSettings.get("streamDivisor"); - Integer newResolution = (Integer) camSettings.get("resolution"); - - curCam.setFOV(newFOV); - - var currentStreamDivisorOrdinal = curCam.getStreamDivisor().ordinal(); - if (currentStreamDivisorOrdinal != newStreamDivisor) { - curCam.setStreamDivisor(newStreamDivisor, true); - } - - var currentResolutionIndex = curCam.getVideoModeIndex(); - if (currentResolutionIndex != newResolution) { - curCam.setCamVideoMode(newResolution, true); - } - - CameraManager.saveCameras(); - sendFullSettings(); - break; - } case "changeCameraName": { CameraManager.getCurrentCamera().setNickname((String) entry.getValue()); sendFullSettings(); @@ -183,7 +151,7 @@ public class ServerHandler { private void setField(Object obj, String fieldName, Object value) { try { if (obj instanceof Camera) { - var cam = (Camera)obj; + var cam = (Camera) obj; switch (fieldName) { case "driverBrightness": cam.setDriverBrightness((Integer) value); @@ -192,7 +160,7 @@ public class ServerHandler { cam.setDriverExposure((Integer) value); break; case "isDriver": - cam.setDriverMode((boolean)value); + cam.setDriverMode((boolean) value); break; default: Field field = obj.getClass().getField(fieldName); @@ -207,8 +175,7 @@ public class ServerHandler { Field field = obj.getClass().getField(fieldName); if (field.getType().isEnum()) { field.set(obj, field.getType().getEnumConstants()[(Integer) value]); - } - else { + } else { field.set(obj, value); } } @@ -296,7 +263,7 @@ public class ServerHandler { fullSettings.put("cameraList", CameraManager.getAllCameraByNickname()); fullSettings.put("pipeline", getOrdinalPipeline()); var currentCamera = CameraManager.getCurrentCamera(); - fullSettings.put("driverMode",getOrdinalDriver()); + fullSettings.put("driverMode", getOrdinalDriver()); fullSettings.put("pipelineList", currentCamera.getPipelinesNickname()); fullSettings.put("resolutionList", currentCamera.getResolutionList()); fullSettings.put("port", currentCamera.getStreamPort()); diff --git a/chameleon-client/package-lock.json b/chameleon-client/package-lock.json index 963d66adc..6864f47ab 100644 --- a/chameleon-client/package-lock.json +++ b/chameleon-client/package-lock.json @@ -1947,6 +1947,43 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -10957,6 +10994,11 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz", "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==" }, + "vue-axios": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/vue-axios/-/vue-axios-2.1.5.tgz", + "integrity": "sha512-th5xVbInVoyIoe+qY+9GCflEVezxAvztD4xpFF39SRQYqpoKD2qkmX8yv08jJG9a2SgNOCjirjJGSwg/wTrbmA==" + }, "vue-cli-plugin-vuetify": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-0.6.3.tgz", @@ -13493,8 +13535,7 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", @@ -13503,8 +13544,7 @@ }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -13607,8 +13647,7 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -13618,7 +13657,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -13631,20 +13669,17 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "optional": true + "bundled": true }, "minipass": { "version": "2.2.4", "bundled": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -13661,7 +13696,6 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -13734,8 +13768,7 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -13745,7 +13778,6 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { "wrappy": "1" } @@ -13851,7 +13883,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", diff --git a/chameleon-client/package.json b/chameleon-client/package.json index 4761e12ba..44588b6e3 100644 --- a/chameleon-client/package.json +++ b/chameleon-client/package.json @@ -8,10 +8,12 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "axios": "^0.19.0", "core-js": "^2.6.5", "material-design-icons-iconfont": "^5.0.1", "msgpack5": "^4.2.1", "vue": "^2.6.10", + "vue-axios": "^2.1.5", "vue-native-websocket": "^2.0.13", "vue-router": "^3.0.3", "vuetify": "^2.0.0", diff --git a/chameleon-client/src/main.js b/chameleon-client/src/main.js index 562e19df9..5dc5ab704 100644 --- a/chameleon-client/src/main.js +++ b/chameleon-client/src/main.js @@ -5,11 +5,17 @@ import store from './store' import vuetify from './plugins/vuetify'; import VueNativeSock from 'vue-native-websocket'; import msgPack from 'msgpack5'; +import axios from 'axios'; +import VueAxios from "vue-axios"; Vue.config.productionTip = false; -// Vue.use(VueNativeSock,'ws://' + location.host + '/websocket',{format: 'json'}); -Vue.use(VueNativeSock, 'ws://' + location.hostname + ':5800/websocket'); +Vue.prototype.$address = location.hostname + ":5800"; +// Vue.prototype.$address = location.host; + +Vue.use(VueNativeSock, 'ws://' + Vue.prototype.$address + '/websocket'); +Vue.use(VueAxios, axios); Vue.prototype.$msgPack = msgPack(true); + Vue.mixin({ methods: { handleInput(key, value) { diff --git a/chameleon-client/src/views/SettingsViewes/General.vue b/chameleon-client/src/views/SettingsViewes/General.vue index 87b28c56e..e862f302a 100644 --- a/chameleon-client/src/views/SettingsViewes/General.vue +++ b/chameleon-client/src/views/SettingsViewes/General.vue @@ -29,7 +29,12 @@ }, methods: { sendGeneralSettings() { - this.handleInput('generalSettings', this.settings); + // this.handleInput('generalSettings', this.settings); + this.axios.post("http://" + this.$address + "/api/settings/general", this.settings).then( + function (response) { + console.log(response); + } + ) } }, computed: { From ee618f6d8699b5cbc00b5ca441014964f169ee28 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Sat, 9 Nov 2019 21:26:02 +0200 Subject: [PATCH 28/60] added ui save message on settings save --- chameleon-client/src/App.vue | 11 ++++++++++- chameleon-client/src/store.js | 9 ++++++--- chameleon-client/src/views/SettingsViewes/Cameras.vue | 9 ++++++++- chameleon-client/src/views/SettingsViewes/General.vue | 6 ++++-- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/chameleon-client/src/App.vue b/chameleon-client/src/App.vue index 07c7953cb..fb105fc0a 100644 --- a/chameleon-client/src/App.vue +++ b/chameleon-client/src/App.vue @@ -61,7 +61,6 @@ } }, data: () => ({ - saveSnackbar: false, timer: undefined }), created() { @@ -78,6 +77,16 @@ console.error('error: ' + data.data + " , " + error); } } + }, + computed: { + saveSnackbar: { + get() { + return this.$store.state.saveBar; + }, + set(value) { + this.$store.commit("saveBar", value); + } + } } }; diff --git a/chameleon-client/src/store.js b/chameleon-client/src/store.js index b0c9fbd2d..1a7a45987 100644 --- a/chameleon-client/src/store.js +++ b/chameleon-client/src/store.js @@ -48,7 +48,8 @@ export default new Vuex.Store({ currentPipelineIndex: 0, cameraList: [], pipelineList: [], - point: {} + point: {}, + saveBar: false }, mutations: { settings: set('settings'), @@ -66,7 +67,8 @@ export default new Vuex.Store({ Vue.set(state.pipeline, i, obj[i]); } }, - driverMode: set('driverMode') + driverMode: set('driverMode'), + saveBar: set("saveBar") }, actions: { settings: state => state.settings, @@ -79,6 +81,7 @@ export default new Vuex.Store({ cameraList: state => state.cameraList, pipelineList: state => state.pipelineList, point: state => state.point, - driverMode: state => state.driverMode + driverMode: state => state.driverMode, + saveBar: state => state.saveBar } }) diff --git a/chameleon-client/src/views/SettingsViewes/Cameras.vue b/chameleon-client/src/views/SettingsViewes/Cameras.vue index 8440de656..f824660e3 100644 --- a/chameleon-client/src/views/SettingsViewes/Cameras.vue +++ b/chameleon-client/src/views/SettingsViewes/Cameras.vue @@ -24,7 +24,14 @@ }, methods: { sendCameraSettings() { - this.handleInput('cameraSettings', this.cameraSettings); + const self = this; + this.axios.post("http://" + this.$address + "/api/settings/camera", this.cameraSettings).then( + function (response) { + if (response.status === 200){ + self.$store.state.saveBar = true; + } + } + ) }, }, diff --git a/chameleon-client/src/views/SettingsViewes/General.vue b/chameleon-client/src/views/SettingsViewes/General.vue index e862f302a..fe655c19e 100644 --- a/chameleon-client/src/views/SettingsViewes/General.vue +++ b/chameleon-client/src/views/SettingsViewes/General.vue @@ -29,10 +29,12 @@ }, methods: { sendGeneralSettings() { - // this.handleInput('generalSettings', this.settings); + const self = this; this.axios.post("http://" + this.$address + "/api/settings/general", this.settings).then( function (response) { - console.log(response); + if (response.status === 200){ + self.$store.state.saveBar = true; + } } ) } From a0d180d53800662d52ca516ad30457279bccfd3a Mon Sep 17 00:00:00 2001 From: ori agranat Date: Wed, 13 Nov 2019 20:54:06 +0200 Subject: [PATCH 29/60] added connection url by development or production --- chameleon-client/src/main.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/chameleon-client/src/main.js b/chameleon-client/src/main.js index 5dc5ab704..4eac4e078 100644 --- a/chameleon-client/src/main.js +++ b/chameleon-client/src/main.js @@ -9,8 +9,13 @@ import axios from 'axios'; import VueAxios from "vue-axios"; Vue.config.productionTip = false; -Vue.prototype.$address = location.hostname + ":5800"; -// Vue.prototype.$address = location.host; + +if (process.env.NODE_ENV === "production"){ + Vue.prototype.$address = location.host; +} else if (process.env.NODE_ENV === "development"){ + Vue.prototype.$address = location.hostname + ":5800"; +} + Vue.use(VueNativeSock, 'ws://' + Vue.prototype.$address + '/websocket'); Vue.use(VueAxios, axios); From a325e9680eea3a13e52465cf809dff11be316f07 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Mon, 18 Nov 2019 21:52:37 +0200 Subject: [PATCH 30/60] circle ci test --- .circleci/.config.yml | 30 ++++++++++++++++++++++++++ .gitlab-ci.yml | 50 ------------------------------------------- 2 files changed, 30 insertions(+), 50 deletions(-) create mode 100644 .circleci/.config.yml delete mode 100644 .gitlab-ci.yml diff --git a/.circleci/.config.yml b/.circleci/.config.yml new file mode 100644 index 000000000..0326b71da --- /dev/null +++ b/.circleci/.config.yml @@ -0,0 +1,30 @@ +version: 2.1 +jobs: + build_ui: + docker: + - image: node:latest + steps: + - checkout + - run: + name: changing directory + command: | + cd chameleon-client + - run: + name: installing dependencies + command: | + npm install + - run: + name: building ui + command: | + npm run build + - store_artifacts: + path: chameleon-client/dist + build_jar: + docker: + - image: maven:3.6.2-jdk-12 + steps: + - run: rm -r Main/src/main/resources/web/* + - run: mv chameleon-client/dist/* Main/src/main/resources/web + - run: cd Main + - run: mvn package + diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 2d45f7ecc..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,50 +0,0 @@ -stages: - - build_ui - - build_jar - - deploy - -build_ui: - stage: build_ui - image: node:latest - only: - refs: - - master - script: - - cd chameleon-client - - npm install - - npm run build - artifacts: - paths: - - chameleon-client/dist - -build_jar: - stage: build_jar - image: maven:3.6.2-jdk-12 - only: - refs: - - master - script: - - rm -r Main/src/main/resources/web/* - - mv chameleon-client/dist/* Main/src/main/resources/web - - cd Main - - mvn package - artifacts: - paths: - - Main/target -deploy: - stage: deploy - image: ubuntu:latest - only: - refs: - - master - before_script: - - apt-get update - - apt-get --yes install git ssh rsync - - git submodule update --init --recursive - script: - - mkdir "${HOME}/.ssh" - - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts" - - echo "${SSH_PRIVATE_KEY}" > "${HOME}/.ssh/id_rsa" - - chmod 700 "${HOME}/.ssh/id_rsa" - - cd Main/target - - rsync -e "ssh -o StrictHostKeyChecking=no" $(find . -name "chameleon-vision-*") "${SSH_HOST_ADRESS}" From 53926697c1a0f82029222d28eded4761dd72edba Mon Sep 17 00:00:00 2001 From: ori agranat Date: Mon, 18 Nov 2019 21:54:54 +0200 Subject: [PATCH 31/60] renamed file --- .circleci/{.config.yml => config.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .circleci/{.config.yml => config.yml} (100%) diff --git a/.circleci/.config.yml b/.circleci/config.yml similarity index 100% rename from .circleci/.config.yml rename to .circleci/config.yml From 9578e59b60a6257429783e21443657ecf364105c Mon Sep 17 00:00:00 2001 From: ori agranat Date: Mon, 18 Nov 2019 21:59:04 +0200 Subject: [PATCH 32/60] bugfixed file --- .circleci/config.yml | 6 +++--- .gitignore | 6 ++++++ Main/.settings/org.eclipse.jdt.core.prefs | 9 --------- 3 files changed, 9 insertions(+), 12 deletions(-) delete mode 100644 Main/.settings/org.eclipse.jdt.core.prefs diff --git a/.circleci/config.yml b/.circleci/config.yml index 0326b71da..082c2c239 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,8 +6,8 @@ jobs: steps: - checkout - run: - name: changing directory - command: | + name: changing directory + command: | cd chameleon-client - run: name: installing dependencies @@ -18,7 +18,7 @@ jobs: command: | npm run build - store_artifacts: - path: chameleon-client/dist + path: chameleon-client/dist build_jar: docker: - image: maven:3.6.2-jdk-12 diff --git a/.gitignore b/.gitignore index e1a08cb49..a495e4a21 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,9 @@ Main/target New client/chameleon-client/node_modules/ Main/dependency-reduced-pom.xml Main/src/main/java/META-INF + +Main/.settings/org.eclipse.jdt.core.prefs + +Main/.classpath + +Main/.project diff --git a/Main/.settings/org.eclipse.jdt.core.prefs b/Main/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 6eecfaf0f..000000000 --- a/Main/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=12 -org.eclipse.jdt.core.compiler.compliance=12 -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore -org.eclipse.jdt.core.compiler.processAnnotations=disabled -org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=12 From faa59c4157ad5a8b3b11ab6e63f7c4d4e72a3ee8 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Mon, 18 Nov 2019 21:59:04 +0200 Subject: [PATCH 33/60] bugfixed file --- .circleci/config.yml | 8 ++++---- .gitignore | 6 ++++++ Main/.settings/org.eclipse.jdt.core.prefs | 9 --------- 3 files changed, 10 insertions(+), 13 deletions(-) delete mode 100644 Main/.settings/org.eclipse.jdt.core.prefs diff --git a/.circleci/config.yml b/.circleci/config.yml index 0326b71da..9967c58e7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,8 +6,8 @@ jobs: steps: - checkout - run: - name: changing directory - command: | + name: changing directory + command: | cd chameleon-client - run: name: installing dependencies @@ -18,8 +18,8 @@ jobs: command: | npm run build - store_artifacts: - path: chameleon-client/dist - build_jar: + path: chameleon-client/dist + build_java: docker: - image: maven:3.6.2-jdk-12 steps: diff --git a/.gitignore b/.gitignore index e1a08cb49..a495e4a21 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,9 @@ Main/target New client/chameleon-client/node_modules/ Main/dependency-reduced-pom.xml Main/src/main/java/META-INF + +Main/.settings/org.eclipse.jdt.core.prefs + +Main/.classpath + +Main/.project diff --git a/Main/.settings/org.eclipse.jdt.core.prefs b/Main/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 6eecfaf0f..000000000 --- a/Main/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=12 -org.eclipse.jdt.core.compiler.compliance=12 -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore -org.eclipse.jdt.core.compiler.processAnnotations=disabled -org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=12 From f48d4f804009b68c742a2d4d41f4588cfbcd73d8 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Mon, 18 Nov 2019 22:04:56 +0200 Subject: [PATCH 34/60] updated file --- .circleci/config.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9967c58e7..5767613e0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,4 +1,4 @@ -version: 2.1 +version: 2 jobs: build_ui: docker: @@ -27,4 +27,16 @@ jobs: - run: mv chameleon-client/dist/* Main/src/main/resources/web - run: cd Main - run: mvn package + +workflows: + version: 2 + build_and_deploy: + jobs: + - build_ui + - build_java: + requires: + - build_ui + # filters: + # branches: + # only: master From cedd20aa247155bd06be85e2cd138ff2b7ebada0 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 19:20:10 +0200 Subject: [PATCH 35/60] test for npm --- .circleci/config.yml | 49 +++++++++++--------------------------------- 1 file changed, 12 insertions(+), 37 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5767613e0..1040b32ed 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,42 +1,17 @@ -version: 2 +version: 2 # use CircleCI 2.0 jobs: build_ui: docker: - image: node:latest - steps: - - checkout - - run: - name: changing directory - command: | - cd chameleon-client - - run: - name: installing dependencies - command: | - npm install - - run: - name: building ui - command: | - npm run build - - store_artifacts: - path: chameleon-client/dist - build_java: - docker: - - image: maven:3.6.2-jdk-12 - steps: - - run: rm -r Main/src/main/resources/web/* - - run: mv chameleon-client/dist/* Main/src/main/resources/web - - run: cd Main - - run: mvn package -workflows: - version: 2 - build_and_deploy: - jobs: - - build_ui - - build_java: - requires: - - build_ui - # filters: - # branches: - # only: master - + steps: + + - checkout + + - run: cd chameleon-client + - run: npm install + - run: npm run build + + - store_artifacts: + path: chameleon-client/dist/* + \ No newline at end of file From 865bbc57362be2cb0b3af110e3fc60aeea192fdb Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 19:29:24 +0200 Subject: [PATCH 36/60] added workflow --- .circleci/config.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1040b32ed..5b12a7b73 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,4 +1,4 @@ -version: 2 # use CircleCI 2.0 +version: 2 jobs: build_ui: docker: @@ -14,4 +14,9 @@ jobs: - store_artifacts: path: chameleon-client/dist/* + +workflows: + build: + jobs: + - build_ui \ No newline at end of file From 15cb41b59afb51dfd3212ee16dc1d35cdc50bbd6 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 19:34:30 +0200 Subject: [PATCH 37/60] fixed workflow --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5b12a7b73..914756157 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -16,7 +16,7 @@ jobs: path: chameleon-client/dist/* workflows: - build: + version: 2 + release: jobs: - - build_ui - \ No newline at end of file + - build_ui \ No newline at end of file From 3a2da0cc7d938eb0d57427b37af68627055c6686 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 20:08:05 +0200 Subject: [PATCH 38/60] bugfix --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 914756157..d3612775e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,7 @@ version: 2 jobs: build_ui: + working_directory: ~/ui docker: - image: node:latest From b89c3b5a503c8f53ea04ca1a323f285de6c9ddef Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 20:14:05 +0200 Subject: [PATCH 39/60] bugfix --- .circleci/config.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d3612775e..963daed08 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,20 +1,21 @@ version: 2 jobs: build_ui: - working_directory: ~/ui + working_directory: ~/project/chameleon-client docker: - image: node:latest steps: - - checkout + - checkout: + path: ~/project - run: cd chameleon-client - run: npm install - run: npm run build - store_artifacts: - path: chameleon-client/dist/* + path: dist/ workflows: version: 2 From a762211273dc216701e793c3fbc93f8d17b16f46 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 20:16:03 +0200 Subject: [PATCH 40/60] removed cd --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 963daed08..ea6f3d988 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,7 +10,6 @@ jobs: - checkout: path: ~/project - - run: cd chameleon-client - run: npm install - run: npm run build From 5c66e8b5684dbaaeed41acc33e33fd2835109aab Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 20:41:43 +0200 Subject: [PATCH 41/60] added build jar --- .circleci/config.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ea6f3d988..e427783ff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,6 @@ jobs: - image: node:latest steps: - - checkout: path: ~/project @@ -15,9 +14,21 @@ jobs: - store_artifacts: path: dist/ + + build_jar: + working_directory: ~/project/Main + docker: + - image: maven:3.6.2-jdk-12 + steps: + - run: rm -r src/main/resources/web/* + - run: ../chameleon-client/dist/* Main/src/main/resources/web + - run: mvn package + - store_artifacts: + path: target/ workflows: version: 2 release: jobs: - - build_ui \ No newline at end of file + - build_ui + - build_jar \ No newline at end of file From 6773058f8f4c910ae21032731087d30e05087021 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 20:45:05 +0200 Subject: [PATCH 42/60] bugfix --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e427783ff..7a0c54e3f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,4 +31,6 @@ workflows: release: jobs: - build_ui - - build_jar \ No newline at end of file + - build_jar: + requires: + - build_ui \ No newline at end of file From d23ad54f951753aa8454c52bd952394c3e883abb Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 20:52:08 +0200 Subject: [PATCH 43/60] added project checkout --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7a0c54e3f..259d552ff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,6 +20,8 @@ jobs: docker: - image: maven:3.6.2-jdk-12 steps: + - checkout: + path: ~/project - run: rm -r src/main/resources/web/* - run: ../chameleon-client/dist/* Main/src/main/resources/web - run: mvn package From 8ac9f62abf0a896e7c99093f5c76dfcc3f81c92a Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 21:04:40 +0200 Subject: [PATCH 44/60] try presistant --- .circleci/config.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 259d552ff..1dec54fad 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,6 +14,11 @@ jobs: - store_artifacts: path: dist/ + - persist_to_workspace: + root: ~/ + paths: + - dist/ + build_jar: working_directory: ~/project/Main @@ -22,6 +27,9 @@ jobs: steps: - checkout: path: ~/project + - attach_workspace: + at: /project/chameleon-client + - run: rm -r src/main/resources/web/* - run: ../chameleon-client/dist/* Main/src/main/resources/web - run: mvn package From cc166a97cde00c4da73966613175bbe7f3cf4fb1 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 21:12:52 +0200 Subject: [PATCH 45/60] bug fix presistant --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1dec54fad..3546e433d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,8 +12,8 @@ jobs: - run: npm install - run: npm run build - - store_artifacts: - path: dist/ + # - store_artifacts: + # path: dist/ - persist_to_workspace: root: ~/ paths: From 6b89b042fa426a1b4221b0b10bb5334e1de585a6 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 21:17:41 +0200 Subject: [PATCH 46/60] another try` --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3546e433d..aacb73e83 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,9 +15,9 @@ jobs: # - store_artifacts: # path: dist/ - persist_to_workspace: - root: ~/ + root: chameleon-client paths: - - dist/ + - dist build_jar: From d644077a5ad75ff15ad0b106940edf3d494641d3 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 21:20:11 +0200 Subject: [PATCH 47/60] bugfix --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index aacb73e83..f1a9b63c0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,7 +15,7 @@ jobs: # - store_artifacts: # path: dist/ - persist_to_workspace: - root: chameleon-client + root: . paths: - dist From 8c69121125adc76ac95d8fc16f9b7be3aa04787c Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 21:27:18 +0200 Subject: [PATCH 48/60] path bugfix --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f1a9b63c0..370d6048b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,10 +28,10 @@ jobs: - checkout: path: ~/project - attach_workspace: - at: /project/chameleon-client + at: /UI - run: rm -r src/main/resources/web/* - - run: ../chameleon-client/dist/* Main/src/main/resources/web + - run: /UI/dist/* Main/src/main/resources/web - run: mvn package - store_artifacts: path: target/ From 661ecc5031d1deeff45722d30cbd0187455a4a7d Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 21:30:00 +0200 Subject: [PATCH 49/60] forgot move command --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 370d6048b..a549fa844 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,7 +31,7 @@ jobs: at: /UI - run: rm -r src/main/resources/web/* - - run: /UI/dist/* Main/src/main/resources/web + - run: mv /UI/dist/* Main/src/main/resources/web - run: mvn package - store_artifacts: path: target/ From f8f1a27e15c54d1199a617273d0a6defe3655535 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 21:34:45 +0200 Subject: [PATCH 50/60] bug fix in path --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a549fa844..18fee0e3d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,7 +31,7 @@ jobs: at: /UI - run: rm -r src/main/resources/web/* - - run: mv /UI/dist/* Main/src/main/resources/web + - run: mv /UI/dist/* src/main/resources/web - run: mvn package - store_artifacts: path: target/ From 6e1849fc295c9ef81754238ce8b02b5a4e336a37 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 22:16:25 +0200 Subject: [PATCH 51/60] added deploy --- .circleci/config.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 18fee0e3d..c361101ce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,8 +12,6 @@ jobs: - run: npm install - run: npm run build - # - store_artifacts: - # path: dist/ - persist_to_workspace: root: . paths: @@ -36,6 +34,18 @@ jobs: - store_artifacts: path: target/ + deploy: + docker: + - image: cibuilds/github:0.10 + steps: + - attach_workspace: + at: ./ + - run: + name: Publish Release on GitHub" + command: | + VERSION=$(find . -name 'chameleon-vision-*.jar' | sed 's/.*chameleon-vision-//; s/.jar//' ) + ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${VERSION} ./$(find . -name "chameleon-vision-*") + workflows: version: 2 release: @@ -43,4 +53,7 @@ workflows: - build_ui - build_jar: requires: - - build_ui \ No newline at end of file + - build_ui + - deploy: + requires: + - build_jar \ No newline at end of file From f25ab4b0a44e37ce3956409f957a4858b33ab6c5 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 22:18:21 +0200 Subject: [PATCH 52/60] added artifact to jar --- .circleci/config.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index c361101ce..42208316e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -33,6 +33,10 @@ jobs: - run: mvn package - store_artifacts: path: target/ + - persist_to_workspace: + root: ./target + paths: + - . deploy: docker: From 09597fc6be10d659083192cf53e60a32f68a9beb Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 22:53:28 +0200 Subject: [PATCH 53/60] test for ui --- .circleci/config.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 42208316e..76c724608 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,7 +27,8 @@ jobs: path: ~/project - attach_workspace: at: /UI - + + - run: ls /UI/dist/* - run: rm -r src/main/resources/web/* - run: mv /UI/dist/* src/main/resources/web - run: mvn package @@ -60,4 +61,7 @@ workflows: - build_ui - deploy: requires: - - build_jar \ No newline at end of file + - build_jar + # filters: + # branches: + # only: master \ No newline at end of file From 7ed258ad106a3f20a50eaf3f0e3c76ce8f6d8460 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 23:03:50 +0200 Subject: [PATCH 54/60] force delete --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 76c724608..87528db65 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,8 +28,7 @@ jobs: - attach_workspace: at: /UI - - run: ls /UI/dist/* - - run: rm -r src/main/resources/web/* + - run: rm -rf src/main/resources/web/* - run: mv /UI/dist/* src/main/resources/web - run: mvn package - store_artifacts: From a9fa5935fba5e4d2d6315b53802b87a45e15aaee Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 23:13:55 +0200 Subject: [PATCH 55/60] deleting files and folders --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 87528db65..89172a72a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,6 +29,7 @@ jobs: at: /UI - run: rm -rf src/main/resources/web/* + - run: rm src/main/resources/web/* - run: mv /UI/dist/* src/main/resources/web - run: mvn package - store_artifacts: From 3d675fdf13ad71609a44d8ea34f4694f9d033890 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 23:22:28 +0200 Subject: [PATCH 56/60] force overight --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 89172a72a..4e7b5da2c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,8 +29,7 @@ jobs: at: /UI - run: rm -rf src/main/resources/web/* - - run: rm src/main/resources/web/* - - run: mv /UI/dist/* src/main/resources/web + - run: mv -f /UI/dist/* src/main/resources/web - run: mvn package - store_artifacts: path: target/ From 5c4721f6c304c8ef8e008bf9007defa21680e4b9 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 23:50:44 +0200 Subject: [PATCH 57/60] trying copy --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4e7b5da2c..a54e3cb61 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,7 +29,8 @@ jobs: at: /UI - run: rm -rf src/main/resources/web/* - - run: mv -f /UI/dist/* src/main/resources/web + # - run: mv -f /UI/dist/* src/main/resources/web + - run: cp /UI/dist/. src/main/resources/web/ - run: mvn package - store_artifacts: path: target/ From 32301054afba9d4d5af40a58757530631b33a73b Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 19 Nov 2019 23:52:55 +0200 Subject: [PATCH 58/60] bugfix --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a54e3cb61..cb14ec93a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,7 +30,7 @@ jobs: - run: rm -rf src/main/resources/web/* # - run: mv -f /UI/dist/* src/main/resources/web - - run: cp /UI/dist/. src/main/resources/web/ + - run: cp -r /UI/dist/. src/main/resources/web/ - run: mvn package - store_artifacts: path: target/ From 0e30e2773dbeae4fa4b67b8afdf45307b7163cc5 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Wed, 20 Nov 2019 00:00:42 +0200 Subject: [PATCH 59/60] final ci config --- .circleci/config.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cb14ec93a..50c8ddfba 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,7 +29,6 @@ jobs: at: /UI - run: rm -rf src/main/resources/web/* - # - run: mv -f /UI/dist/* src/main/resources/web - run: cp -r /UI/dist/. src/main/resources/web/ - run: mvn package - store_artifacts: @@ -62,6 +61,6 @@ workflows: - deploy: requires: - build_jar - # filters: - # branches: - # only: master \ No newline at end of file + filters: + branches: + only: master \ No newline at end of file From 6e7d109b8eb1725c44bc9c3685ddc780ca2e8a8e Mon Sep 17 00:00:00 2001 From: ori agranat Date: Wed, 20 Nov 2019 00:02:48 +0200 Subject: [PATCH 60/60] also build dev --- .circleci/config.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 50c8ddfba..24b8ba214 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,10 +54,20 @@ workflows: version: 2 release: jobs: - - build_ui + - build_ui: + filters: + branches: + only: + - master + - dev - build_jar: requires: - build_ui + filters: + branches: + only: + - master + - dev - deploy: requires: - build_jar