Skip to content

Commit 1a7cd7a

Browse files
authored
Update CI (#33)
* Directly run commands in ci container * start ursim * Use jdk-11 * Add full SDK matrix * Refactor wait_for_dashboard_server * Use ursim_net * Remove custom action
1 parent cc3e555 commit 1a7cd7a

File tree

9 files changed

+137
-157
lines changed

9 files changed

+137
-157
lines changed

.github/actions/build_urcap/Dockerfile

Lines changed: 0 additions & 16 deletions
This file was deleted.

.github/actions/build_urcap/action.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

.github/actions/build_urcap/entrypoint.sh

Lines changed: 0 additions & 23 deletions
This file was deleted.

.github/dockerursim/.vol/default.installation

Lines changed: 84 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Installation directory="/ursim/programs" fileName="default" showSpeedSliderOnRunTab="false">
1+
<Installation INSTALLATION-VERSION="2" INSTALLATION-LAST-SAVED-VERSION="2" directory="/ursim/programs" fileName="default" showSpeedSliderOnRunTab="false">
22
<IOs>
33
<DigitalInputNames value=", , , , , , , "/>
44
<DigitalOutputNames value=", , , , , , , "/>
@@ -19,8 +19,7 @@
1919
<ToolDigitalOutputActions value="NONE, NONE"/>
2020
<AnalogOutputActions value="NONE, NONE"/>
2121
<ConfigurableOutputActions value="NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE"/>
22-
<euromapOutputModificationChoice value="1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1"/>
23-
<euromapOutputActions value="NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE"/>
22+
<ModbusUnits/>
2423
<GeneralPurposeBooleanRegisterInputNames value=", , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "/>
2524
<GeneralPurposeBooleanRegisterOutputNames value=", , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "/>
2625
<GeneralPurposeIntRegisterInputNames value=", , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "/>
@@ -31,23 +30,11 @@
3130
<GeneralPurposeBooleanRegisterOutputActions value="NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE"/>
3231
<GeneralPurposeIntRegisterOutputActions value="NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE"/>
3332
<GeneralPurposeFloatRegisterOutputActions value="NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE"/>
34-
<ModbusUnits/>
33+
<euromapOutputModificationChoice value="1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1"/>
34+
<euromapOutputActions value="NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE"/>
3535
</IOs>
36-
<Version projectName="URSoftware" major="5" minor="11" bugfix="1" buildNumber="108318" buildDate="Jun 18 2021, 12:00:00"/>
37-
<LastSavedInVersion reference="../Version"/>
38-
<SmoothTransitionSettings transitionHardness="SOFT"/>
39-
<ResourceControlSettings/>
40-
<ContinuousPulse/>
41-
<PayloadSettings>
42-
<Payload name="Payload" mass="0.0" defaultPayload="true" centerOfGravity="0.0, 0.0, 0.0" inertiaParameters="0.0, 0.0, 0.0, 0.0, 0.0, 0.0" customInertiaEnabled="false"/>
43-
</PayloadSettings>
44-
<SafeHomeSettings enabled="true" position="0.0, -1.5707963267948966, 0.0, -1.5707963267948966, 0.0, 0.0"/>
45-
<TCPSettings activePose="TCP">
46-
<availablePoses>
47-
<tcp id="2e4b410d-3d81-4c59-937c-087544210280" name="TCP" offset="0.0, 0.0, 0.0, 0.0, 0.0, 0.0"/>
48-
</availablePoses>
49-
</TCPSettings>
50-
<DefaultProgramSettings autoLoad="false"/>
36+
<Version major="5" minor="11" bugfix="1"/>
37+
<LastSavedInVersion major="5" minor="24" bugfix="0"/>
5138
<Features>
5239
<CameraView>
5340
<worldTransform class="WorldTransform">
@@ -61,8 +48,51 @@
6148
<ToolView showAxes="true" joggable="true" isVariable="false" id="3a9e24b6-0faf-4e81-8344-6af13d2e6405"/>
6249
</ToolView>
6350
</Features>
64-
<ToolCommSettings enabled="false" toolAnalogInput2="VOLTAGE" toolAnalogInput3="VOLTAGE" baudRate="BAUD_115200" parity="NONE" stopBits="ONE" rxIdleChars="1.5" txIdleChars="3.5" toolOutputMode="OUTPUT" toolDigitalOutput0="SINKING" toolDigitalOutput1="SINKING" toolOutputVoltage="ZERO"/>
6551
<SafetySettings>
52+
[SafetyIOConfiguration Inputs]
53+
emergencyStopInputA = 255
54+
emergencyStopInputB = 255
55+
reducedModeInputA = 255
56+
reducedModeInputB = 255
57+
safeguardStopResetInputA = 0
58+
safeguardStopResetInputB = 1
59+
threePositionEnablingInputA = 255
60+
threePositionEnablingInputB = 255
61+
operationalModeInputA = 255
62+
operationalModeInputB = 255
63+
automaticModeSafeguardStopInputA = 255
64+
automaticModeSafeguardStopInputB = 255
65+
automaticModeSafeguardStopResetInputA = 255
66+
automaticModeSafeguardStopResetInputB = 255
67+
freedriveOnRobotInputA = 255
68+
freedriveOnRobotInputB = 255
69+
70+
[SafetyIOConfiguration Outputs]
71+
systemEmergencyStopOutputA = 255
72+
systemEmergencyStopOutputB = 255
73+
robotMovingOutputA = 255
74+
robotMovingOutputB = 255
75+
robotNotStoppingOutputA = 255
76+
robotNotStoppingOutputB = 255
77+
reducedModeOutputA = 255
78+
reducedModeOutputB = 255
79+
notReducedModeOutputA = 255
80+
notReducedModeOutputB = 255
81+
safeHomeOutputA = 255
82+
safeHomeOutputB = 255
83+
configOut0and1_OSSD = 0
84+
configOut2and3_OSSD = 0
85+
configOut4and5_OSSD = 0
86+
configOut6and7_OSSD = 0
87+
88+
[SafetySetup]
89+
verified = true
90+
withPositionLimits = [true, true, true, true, true, true]
91+
92+
[Safety Checksum]
93+
version = 5.5
94+
crc = 1475618907
95+
6696
[SafetyLimits BoundaryPlane0]
6797
name = Safety plane 0
6898
displacement = 0.0
@@ -132,20 +162,16 @@ tcpOrientationVector = [0.0, 0.0, 1.0]
132162
maximumTcpOrientationDeviation = 3.159045946109736
133163
mode = DISABLED
134164

135-
[WorkpieceConfiguration]
136-
toolSpheres = [[0.0, 0.0, 0.0, 0.0]]
137-
toolSphereNames = [Tool Flange]
138-
toolSphereIDs = [null]
139-
toolDirectionInclination = 0.0
140-
toolDirectionAzimuth = 0.0
165+
[MiscConfiguration]
166+
teach_pendant = 1
167+
euromap67 = 0
141168

142169
[ThreePositionEnabling]
143170
useTP3PE = 0
144171
allowManualHighSpeed = 1
145172

146-
[MiscConfiguration]
147-
teach_pendant = 1
148-
euromap67 = 0
173+
[SafeHome]
174+
safeHomePosition = [-1.0, -1.0, -1.0, -1.0, -1.0, -1.0]
149175

150176
[SafetyLimits Normal Values]
151177
maxTcpSpeed = 1.5
@@ -181,62 +207,40 @@ maxJointPosition = [0.05235987799999986, 0.05235987799999986, 0.0523598779999998
181207
minJointRevolutions = [-2, -2, -2, -2, -2, -2]
182208
maxJointRevolutions = [1, 1, 1, 1, 1, 1]
183209

184-
[SafetySetup]
185-
withPositionLimits = [true, true, true, true, true, true]
186-
verified = true
187-
188-
[Safety Checksum]
189-
version = 5.5
190-
crc = 1475618907
191-
192-
[SafeHome]
193-
safeHomePosition = [-1.0, -1.0, -1.0, -1.0, -1.0, -1.0]
194-
195-
[SafetyIOConfiguration Inputs]
196-
emergencyStopInputA = 255
197-
emergencyStopInputB = 255
198-
reducedModeInputA = 255
199-
reducedModeInputB = 255
200-
safeguardStopResetInputA = 0
201-
safeguardStopResetInputB = 1
202-
threePositionEnablingInputA = 255
203-
threePositionEnablingInputB = 255
204-
operationalModeInputA = 255
205-
operationalModeInputB = 255
206-
automaticModeSafeguardStopInputA = 255
207-
automaticModeSafeguardStopInputB = 255
208-
automaticModeSafeguardStopResetInputA = 255
209-
automaticModeSafeguardStopResetInputB = 255
210-
211-
[SafetyIOConfiguration Outputs]
212-
systemEmergencyStopOutputA = 255
213-
systemEmergencyStopOutputB = 255
214-
robotMovingOutputA = 255
215-
robotMovingOutputB = 255
216-
robotNotStoppingOutputA = 255
217-
robotNotStoppingOutputB = 255
218-
reducedModeOutputA = 255
219-
reducedModeOutputB = 255
220-
notReducedModeOutputA = 255
221-
notReducedModeOutputB = 255
222-
safeHomeOutputA = 255
223-
safeHomeOutputB = 255
224-
configOut0and1_OSSD = 0
225-
configOut2and3_OSSD = 0
226-
configOut4and5_OSSD = 0
227-
configOut6and7_OSSD = 0
210+
[WorkpieceConfiguration]
211+
toolSpheres = [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]
212+
toolSphereNames = [Tool Flange, DISABLED, DISABLED]
213+
toolSphereIDs = [null, 05cb2fa6-f92a-43e7-9f8f-268f9eb48afd, 05cb2fa6-f92a-43e7-9f8f-268f9eb48afd]
214+
toolDirectionInclination = 0.0
215+
toolDirectionAzimuth = 0.0
228216

229217
</SafetySettings>
218+
<ToolWrenchConfiguration forceLimit="6.0" forceLimitEnabled="false" momentLimit="0.3" momentLimitEnabled="false"/>
219+
<TCPSettings activePose="TCP">
220+
<availablePoses>
221+
<tcp id="2e4b410d-3d81-4c59-937c-087544210280" name="TCP" offset="0.0, 0.0, 0.0, 0.0, 0.0, 0.0"/>
222+
</availablePoses>
223+
</TCPSettings>
224+
<ToolCommSettings enabled="false" toolAnalogInput2="VOLTAGE" toolAnalogInput3="VOLTAGE" baudRate="BAUD_115200" parity="NONE" stopBits="ONE" rxIdleChars="1.5" txIdleChars="3.5" toolOutputMode="OUTPUT" toolDigitalOutput0="SINKING" toolDigitalOutput1="SINKING" toolOutputVoltage="ZERO"/>
225+
<EthernetIP enabled="false" programAction="IGNORE"/>
226+
<DefaultProgramSettings autoLoad="false"/>
227+
<SafeHomeSettings enabled="true" position="0.0, -1.5707963267948966, 0.0, -1.5707963267948966, 0.0, 0.0"/>
228+
<Profinet enabled="false" PLCIO="IGNORE" PLCREG1="IGNORE" PLCREG2="IGNORE"/>
229+
<ContinuousPulse/>
230+
<MotionSettingsConfiguration motionVersion="UNDEFINED"/>
231+
<ResourceControlSettings/>
232+
<PayloadSettings>
233+
<Payload name="Payload" mass="0.0" defaultPayload="true" centerOfGravity="0.0, 0.0, 0.0" inertiaParameters="0.0, 0.0, 0.0, 0.0, 0.0, 0.0" customInertiaEnabled="false"/>
234+
</PayloadSettings>
235+
<SmoothTransitionSettings transitionHardness="SOFT"/>
230236
<Contributions>
231237
<URCaps>
232-
<Contributed ownerId="com.ur.urcap.conveyortracking" id="ConveyorTracking" installationContributionTitle="com.ur.urcap.conveyortracking" vendor="Universal Robots" name="Conveyor Tracking"/>
233-
<Contributed ownerId="com.ur.urcap.ethernetip" id="EthernetIP" installationContributionTitle="com.ur.urcap.ethernetip" vendor="Universal Robots" name="Ethernet/IP"/>
234-
<Contributed ownerId="com.ur.urcap.profinet" id="com.ur.urcap.profinet" installationContributionTitle="com.ur.urcap.profinet" vendor="Universal Robots" name="Profinet"/>
235-
<Contributed ownerId="com.fzi.externalcontrol" id="com.fzi.externalcontrol.impl.ExternalControlInstallationNodeService" installationContributionTitle="com.fzi.externalcontrol" vendor="FZI Research Center for Information Technology" name="External Control">
236-
<data key="host_ip" value="127.0.0.1"/>
237-
<data key="name" value="127.0.0.1"/>
238+
<Contributed ownerId="com.ur.urcap.conveyortracking" id="ConveyorTracking" installationContributionTitle="Conveyor Tracking" vendor="Universal Robots" name="Conveyor Tracking"/>
239+
<Contributed ownerId="com.fzi.externalcontrol" id="com.fzi.externalcontrol.impl.ExternalControlInstallationNodeService" installationContributionTitle="External Control" vendor="FZI Research Center for Information Technology" name="External Control">
240+
<data key="name" value="192.168.56.1"/>
241+
<data key="host_ip" value="192.168.56.1"/>
238242
</Contributed>
239-
<Contributed ownerId="com.ur.polyscope.screwdriving.polyscope-screwdriving-impl" id="com.ur.polyscope.screwdriving.installation.ScrewdrivingInstallationNodeService" installationContributionTitle="com.ur.polyscope.screwdriving.polyscope-screwdriving-impl" vendor="Universal Robots" name="polyscope-screwdriving-impl"/>
243+
<Contributed ownerId="com.ur.polyscope.screwdriving.polyscope-screwdriving-impl" id="com.ur.polyscope.screwdriving.installation.ScrewdrivingInstallationNodeService" installationContributionTitle="Screwdriving" vendor="Universal Robots" name="polyscope-screwdriving-impl"/>
240244
</URCaps>
241245
</Contributions>
242246
</Installation>
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
#
2-
#Fri Jun 18 10:27:46 BST 2021
1+
<InstallationVariables timestamp="Mon Dec 01 17:44:59 CET 2025"/>

.github/dockerursim/build_and_run_docker_ursim.sh

Lines changed: 0 additions & 16 deletions
This file was deleted.

.github/helpers/wait_for_dashboard_server.sh

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#!/bin/bash
22

3-
netcat -z 127.0.0.1 29999
4-
while [ $? -eq 1 ]
3+
expected="Connected: Universal Robots Dashboard Server
4+
Disconnected"
5+
response=$(echo "quit" | netcat -q 1 127.0.0.1 29999)
6+
while [ "$response" != "$expected" ]
57
do
68
echo "Dashboard server not accepting connections..."
79
sleep 3
8-
netcat -z 127.0.0.1 29999
10+
response=$(echo "quit" | netcat -q 1 127.0.0.1 29999)
911
done
1012
echo "Dashboard server connections are possible."
11-
sleep 5

.github/workflows/build.yaml

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,70 @@
11
name: Build URCap
2-
on: [push, pull_request]
2+
on:
3+
workflow_dispatch:
4+
pull_request:
5+
push:
6+
branches:
7+
- master
38

49
jobs:
510
build:
611
runs-on: ubuntu-latest
712
strategy:
813
fail-fast: false
914
matrix:
10-
SDK_VERSION: [1.6.1, 1.7.0, 1.8.0, 1.9.0]
15+
SDK_VERSION:
16+
- 1.11.0
17+
- 1.12.0
18+
- 1.13.0
19+
- 1.14.0
1120

1221
steps:
13-
- uses: actions/checkout@v1
14-
- uses: ./.github/actions/build_urcap
22+
- uses: actions/checkout@v4
23+
- run: |
24+
SDK_MAJOR=$(echo ${SDK_VERSION} | awk -F. '{print $1}')
25+
SDK_MINOR=$(echo ${SDK_VERSION} | awk -F. '{print $2}')
26+
SDK_BUILD=$(echo ${SDK_VERSION} | awk -F. '{print $3}')
27+
sudo apt-get update && sudo apt-get install -y openjdk-8-jdk maven dialog sshpass unzip curl
28+
download_folder=$(mktemp -d)
29+
pushd ${download_folder}
30+
curl -o sdk-${SDK_VERSION}.zip https://s3-eu-west-1.amazonaws.com/urplus-developer-site/sdk/sdk-${SDK_VERSION}.zip
31+
mkdir sdk
32+
unzip -q sdk-${SDK_VERSION}.zip -d sdk
33+
if [ "$SDK_MAJOR" -eq 1 ] && [ "$SDK_MINOR" -eq 10 ]; then
34+
cd sdk/URCap_SDK-${SDK_VERSION}
35+
else
36+
cd sdk
37+
fi
38+
./install.sh
39+
popd
40+
mvn install
1541
env:
1642
SDK_VERSION: ${{ matrix.SDK_VERSION }}
17-
- name: Run URSim
43+
- run: docker network create --subnet=192.168.56.0/24 ursim_net
44+
- name: start ursim
1845
run: |
19-
.github/dockerursim/build_and_run_docker_ursim.sh
46+
docker run --rm -d \
47+
-p 29999:29999 \
48+
-p 30001-30004:30001-30004 \
49+
-v ${PROGRAM_FOLDER}:/ursim/programs \
50+
-v ${URCAPS_FOLDER}:/urcaps \
51+
--net ursim_net --ip 192.168.56.101 \
52+
--name ursim \
53+
universalrobots/ursim_e-series:latest
54+
env:
55+
PROGRAM_FOLDER: ./.github/dockerursim/.vol
56+
URCAPS_FOLDER: ./target
2057
- name: Install netcat
2158
run: |
22-
sudo apt-get update && sudo apt-get install -y netcat
59+
sudo apt-get install -y netcat-openbsd
2360
- name: Wait for dashboard client
2461
run: |
2562
./.github/helpers/wait_for_dashboard_server.sh
2663
- name: Run test
2764
run: |
2865
python3 tests/test_urcap.py
2966
- name: Upload urcap_artifact
30-
uses: actions/upload-artifact@v1
67+
uses: actions/upload-artifact@v4
3168
with:
3269
path: target
3370
name: external_control_sdk-${{ matrix.SDK_VERSION }}.urcap

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@
5252
<artifactId>maven-compiler-plugin</artifactId>
5353
<version>3.6.0</version>
5454
<configuration>
55-
<source>1.6</source>
56-
<target>1.6</target>
55+
<source>1.8</source>
56+
<target>1.8</target>
5757
</configuration>
5858
</plugin>
5959
<plugin>

0 commit comments

Comments
 (0)