Skip to content

Commit d31e5ca

Browse files
ipa-rwuipa-nhg
authored andcommitted
Add "_ros2" as extension for deploy package in foxy version
1 parent 8b9cb67 commit d31e5ca

3 files changed

Lines changed: 44 additions & 21 deletions

File tree

plugins/de.fraunhofer.ipa.rossystem.deployment/src/de/fraunhofer/ipa/rossystem/deployment/DeploymentArtifactsGenerator.xtend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class DeploymentArtifactsGenerator extends AbstractGenerator {
104104

105105
// git action workflow
106106
for (system : resource.allContents.toIterable.filter(RosSystem)){
107-
fsa.generateFile(String.join("/", system_prefix, system.getName().toLowerCase + "_workflow.yml") ,gitaction_compiler.compile_toGitAction(system, ros_version))
107+
fsa.generateFile(String.join("/", system_prefix, system_prefix + "_workflow.yml") ,gitaction_compiler.compile_toGitAction(system, ros_version, ros_distro))
108108
}
109109
}
110110

plugins/de.fraunhofer.ipa.rossystem.deployment/src/de/fraunhofer/ipa/rossystem/deployment/DockerContainerCompiler.xtend

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,43 @@ import de.fraunhofer.ipa.rossystem.generator.GeneratorHelpers
66

77
class DockerContainerCompiler {
88
GeneratorHelpers generator_helper = new GeneratorHelpers()
9-
9+
10+
def get_name(String prefix, String ros_distro) {
11+
if(ros_distro=="foxy") {
12+
return prefix + "_ros2"
13+
}
14+
else{
15+
return prefix + ros_distro
16+
}
17+
}
1018
def dockerfile_header(Integer ros_version) '''
1119
# syntax=docker/dockerfile:experimental
1220
ARG SUFFIX=
1321
ARG BUILDER_SUFFIX=:ros«ros_version»
14-
ARG PREFIX=
22+
ARG PREFIX=
1523
'''
1624
def compile_toDockerContainer(RosSystem system, ComponentStack stack, String ros_distro, Integer ros_version) '''«generator_helper.init_pkg()»
1725
«dockerfile_header(ros_version
1826
«IF stack===null»
1927
«IF generator_helper.listOfRepos(system).isEmpty()»
2028
FROM ros:«ros_distro»-ros-core as base
2129
«ELSE»
22-
FROM ${PREFIX}extra_layer_«system.name.toLowerCase»${SUFFIX} as base
30+
FROM ${PREFIX}extra_layer_«get_name(system.name.toLowerCase, ros_distro)»${SUFFIX} as base
2331
«ENDIF»
2432
«ELSE»
2533
«IF generator_helper.listOfRepos(stack).isEmpty()»
2634
FROM ros:«ros_distro»-ros-core as base
2735
«ELSE»
28-
FROM ${PREFIX}extra_layer_«stack.name.toLowerCase»${SUFFIX} as base
36+
FROM ${PREFIX}extra_layer_«get_name(stack.name.toLowerCase, ros_distro)»${SUFFIX} as base
2937
«ENDIF»
3038
«ENDIF»
3139
FROM ${PREFIX}builder${BUILDER_SUFFIX} as builder
3240

3341
FROM base as build
34-
COPY . /root/ws/src/«IF stack===null»«system.name.toLowerCase»«ELSE»«system.name.toLowerCase»_«stack.name.toLowerCase»«ENDIF»/
42+
COPY . /root/ws/src/«IF stack===null»«system.name.toLowerCase»«ELSE»«system.name.toLowerCase»_«stack.name.toLowerCase»«ENDIF»«IF ros_version===2»_ros2«ENDIF»/
3543
RUN --mount=type=bind,from=builder,target=/builder \
3644
apt-get update -qq && \
45+
«IF ros_version===2»/builder/workspace.bash builder_setup &&ENDIF»
3746
/builder/workspace.bash build_workspace /root/ws && \
3847
rm -rf /var/lib/apt/lists/*
3948
@@ -63,7 +72,11 @@ RUN --mount=type=bind,from=builder,target=/builder --mount=type=bind,target=/roo
6372
COPY --from=install /opt/ros/$ROS_DISTRO /opt/ros/$ROS_DISTRO
6473
6574
FROM deploy as launch
75+
«IF ros_version==1»
6676
«IF stack===null»CMD ["roslaunch", "«system.name»", "«system.name».launch"]«ELSE»CMD ["roslaunch", "«system.name.toLowerCase»_«stack.name.toLowerCase»", "«stack.name.toLowerCase».launch"]«ENDIF»
77+
«ELSE»
78+
«IF stack===null»CMD ["ros2", "launch", "«system.name.toLowerCase»", "«system.name.toLowerCase».launch.py"]«ELSE»CMD ["ros2", "launch", "«system.name.toLowerCase»_«stack.name.toLowerCase»", "«stack.name.toLowerCase».launch.py"]«ENDIF»
79+
«ENDIF»
6780
'''
6881
6982
def compile_toDockerImageExtraLayer(RosSystem system, ComponentStack stack, String ros_distro, Integer ros_version) '''«generator_helper.init_pkg()»
@@ -76,6 +89,7 @@ FROM base as pre_build
7689
COPY * /root/ws/src/
7790
RUN --mount=type=bind,from=builder,target=/builder \
7891
apt-get update -qq && \
92+
«IF ros_version===2»/builder/workspace.bash builder_setup && \«ENDIF»
7993
/builder/workspace.bash update_list /root/ws && \
8094
rm -rf /var/lib/apt/lists/*
8195
@@ -103,7 +117,7 @@ RUN --mount=type=bind,from=builder,target=/builder \
103117
/builder/workspace.bash install_depends /root/ws && \
104118
rm -rf /var/lib/apt/lists/*
105119
106-
FROM pre_build as deploy
120+
FROM build as deploy
107121
RUN --mount=type=bind,from=builder,target=/builder \
108122
--mount=type=bind,target=/root/ws,from=install,source=/root/ws \
109123
apt-get update -qq && \

plugins/de.fraunhofer.ipa.rossystem.deployment/src/de/fraunhofer/ipa/rossystem/deployment/GitActionCompiler.xtend

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ class GitActionCompiler {
77

88
GeneratorHelpers generator_helper = new GeneratorHelpers()
99

10+
def get_name(String prefix, String ros_distro) {
11+
if(ros_distro=="foxy") {
12+
return prefix + "_ros2"
13+
}
14+
else{
15+
return prefix + ros_distro
16+
}
17+
}
18+
1019
def default_part(String layer, String context_path, String needed_layer, String tag)'''
1120
«layer»:
1221
runs-on: ubuntu-latest
@@ -41,7 +50,7 @@ class GitActionCompiler {
4150
-
4251
name: Get Branch
4352
id: extract_branch
44-
run: echo ::set-output name=branch::$(echo ${GITHUB_REF#refs/heads/} | sed 's/[^a-zA-Z0-9-]/-/g')
53+
run: echo ::set-output name=branch::$(echo ${GITHUB_REF#refs/heads/} | sed 's/[^a-zA-Z0-9-]/_/g')
4554
-
4655
name: Docker meta
4756
id: docker_meta
@@ -50,7 +59,7 @@ class GitActionCompiler {
5059
images: ${{ secrets.DOCKER_USERNAME }}/${{ github.job }}
5160
tags: |
5261
«tag»
53-
type=raw,value=latest
62+
type=raw,value=latest
5463
-
5564
name: Build and Push Docker Image
5665
uses: docker/build-push-action@v2
@@ -84,19 +93,19 @@ class GitActionCompiler {
8493
«default_part(sys_name, "./"+sys_name, null, "type=raw,value=${{ steps.extract_branch.outputs.branch }}"
8594
«ENDIF»
8695
'''
87-
def stack_layer(String sys_name, String stack_name, Boolean need_extra)'''
96+
def stack_layer(String sys_name, String stack_name, String ros_distro, Boolean need_extra)'''
8897
«IF need_extra»
89-
«default_part(sys_name+"_"+stack_name, String.join("/", ".",sys_name, sys_name+"_"+stack_name), "extra_layer_"+stack_name, "type=raw,value=${{ steps.extract_branch.outputs.branch }}"
98+
«default_part(get_name(sys_name, ros_distro)+"_"+stack_name, String.join("/", ".",get_name(sys_name, ros_distro), sys_name+"_"+stack_name), "extra_layer_"+get_name(stack_name, ros_distro), "type=raw,value=${{ steps.extract_branch.outputs.branch }}"
9099
«ELSE»
91-
«default_part(sys_name+"_"+stack_name, String.join("/", ".",sys_name, sys_name+"_"+stack_name), null, "type=raw,value=${{ steps.extract_branch.outputs.branch }}"
100+
«default_part(get_name(sys_name, ros_distro)+"_"+stack_name, String.join("/", ".",get_name(sys_name, ros_distro), sys_name+"_"+stack_name), null, "type=raw,value=${{ steps.extract_branch.outputs.branch }}"
92101
«ENDIF»
93102
'''
94-
def compile_toGitAction(RosSystem system, Integer ros_version) '''«generator_helper.init_pkg()»
95-
name: «system.name.toLowerCase»
103+
def compile_toGitAction(RosSystem system, Integer ros_version, String ros_distro) '''«generator_helper.init_pkg()»
104+
name: «get_name(system.name.toLowerCase, ros_distro)»
96105
on:
97106
push:
98107
paths:
99-
- '«system.name.toLowerCase»/**'
108+
- '«get_name(system.name.toLowerCase, ros_distro)»/**'
100109
env:
101110
PREFIX: "${{ secrets.DOCKER_USERNAME }}/"
102111
SUFFIX: ""
@@ -105,16 +114,16 @@ env:
105114
jobs:
106115
«IF system.getComponentStack().isEmpty()»
107116
«IF !generator_helper.listOfRepos(system).isEmpty()»
108-
«extra_layer(system.name.toLowerCase, system.name.toLowerCase)»
109-
«system_layer(system.name.toLowerCase, true
117+
«extra_layer(get_name(system.name.toLowerCase, ros_distro), get_name(system.name.toLowerCase, ros_distro)
118+
«system_layer(get_name(system.name.toLowerCase, ros_distro), true
110119
«ELSE»
111-
«system_layer(system.name.toLowerCase, false
120+
«system_layer(get_name(system.name.toLowerCase, ros_distro), false
112121
«ENDIF»
113122
«ELSE»«FOR stack : system.getComponentStack()»«IF !generator_helper.listOfRepos(stack).isEmpty()»
114-
«extra_layer(stack.name.toLowerCase, String.join("/", system.name.toLowerCase, system.name.toLowerCase + "_" + stack.name.toLowerCase))»
115-
«stack_layer(system.name.toLowerCase, stack.name.toLowerCase, true
123+
«extra_layer(get_name(stack.name.toLowerCase, ros_distro), String.join("/", get_name(system.name.toLowerCase, ros_distro), system.name.toLowerCase + "_" + stack.name.toLowerCase))»
124+
«stack_layer(system.name.toLowerCase, stack.name.toLowerCase, ros_distro, true
116125
«ELSE»
117-
«stack_layer(system.name.toLowerCase, stack.name.toLowerCase, false
126+
«stack_layer(system.name.toLowerCase, stack.name.toLowerCase, ros_distro, false
118127
«ENDIF»
119128
«ENDFOR»
120129
«ENDIF»

0 commit comments

Comments
 (0)