Skip to content

Commit 47ce845

Browse files
authored
Refactor workflow (#81)
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
1 parent f1b761b commit 47ce845

1 file changed

Lines changed: 104 additions & 50 deletions

File tree

.github/workflows/build_and_test.yml

Lines changed: 104 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ on:
88
required: false
99
default: 'master'
1010
fastcdr_versions:
11-
description: 'Fast-CDR branches to be used'
11+
description: 'Fast CDR branches to be used'
1212
required: false
1313
default: '["1.1.x", "master"]'
1414
fastdds_branch:
15-
description: 'Fast-DDS branch to be used'
15+
description: 'Fast DDS branch to be used'
1616
required: false
1717
default: 'master'
1818
pull_request:
@@ -22,12 +22,21 @@ on:
2222
schedule:
2323
- cron: '0 0 * * *'
2424

25+
concurrency:
26+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
27+
cancel-in-progress: true
28+
2529
jobs:
2630
windows-build-test:
2731
runs-on: windows-2019
2832
strategy:
33+
fail-fast: false
2934
matrix:
35+
foonathan_memory_vendor_version:
36+
- ${{ github.event.inputs.foonathan_memory_vendor_branch || 'master' }}
3037
fastcdr_version: ${{ fromJson(github.event.inputs.fastcdr_versions || '["1.1.x", "master"]') }}
38+
fastdds_version:
39+
- ${{ github.event.inputs.fastdds_branch || 'master' }}
3140

3241
env:
3342
CXXFLAGS: /MP
@@ -47,32 +56,51 @@ jobs:
4756
Set-Item -Force -Path "env:PATH" -Value "C:\ProgramData\chocolatey\lib\asio;C:\ProgramData\chocolatey\lib\tinyxml2;C:\ProgramData\chocolatey\lib\tinyxml2\lib;$env:PATH"
4857
echo "PATH=$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
4958
50-
5159
- name: Install swig
5260
shell: pwsh
5361
run: choco install swig --allow-downgrade --version=4.0.2.04082020
5462

55-
- uses: eProsima/eProsima-CI/external/setup-python@v0
63+
- name: Setup Python version
64+
uses: eProsima/eProsima-CI/external/setup-python@v0
5665
with:
5766
python-version: '3.11'
5867

59-
- uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0
68+
- name: Install Python dependencies
69+
uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0
6070
with:
6171
packages: pytest pywin32
6272

63-
- uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0
73+
- name: Install colcon
74+
uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0
6475

65-
- uses: eProsima/eProsima-CI/external/checkout@v0
76+
- name: Checkout Fast DDS Python
77+
uses: eProsima/eProsima-CI/external/checkout@v0
6678
with:
6779
path: src/fastdds_python
6880

69-
- uses: ./src/fastdds_python/.github/actions/fetch-fastdds_python-repos
81+
- name: Checkout foonathan memory vendor
82+
uses: eProsima/eProsima-CI/external/checkout@v0
83+
with:
84+
repository: eProsima/foonathan_memory_vendor
85+
path: src/foonathan_memory_vendor
86+
ref: ${{ matrix.foonathan_memory_vendor_version }}
87+
88+
- name: Checkout Fast CDR
89+
uses: eProsima/eProsima-CI/external/checkout@v0
90+
with:
91+
repository: eProsima/Fast-CDR
92+
path: src/fastcdr
93+
ref: ${{ matrix.fastcdr_version }}
94+
95+
- name: Checkout Fast DDS
96+
uses: eProsima/eProsima-CI/external/checkout@v0
7097
with:
71-
foonathan-memory-vendor-branch: ${{ github.event.inputs.foonathan_memory_vendor_branch || 'master' }}
72-
fastcdr-branch: ${{ matrix.fastcdr_version }}
73-
fastdds-branch: ${{ github.event.inputs.fastdds_branch || 'master' }}
98+
repository: eProsima/Fast-DDS
99+
path: src/fastdds
100+
ref: ${{ matrix.fastdds_version }}
74101

75-
- uses: eProsima/eProsima-CI/external/get-cmake@v0
102+
- name: Setup CMake version
103+
uses: eProsima/eProsima-CI/external/get-cmake@v0
76104
with:
77105
cmakeVersion: 3.22.6
78106

@@ -89,23 +117,24 @@ jobs:
89117
windows_compile_environment: msvc
90118

91119
- name: Build workspace
92-
shell: pwsh
93-
run: |
94-
$installpath = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise"
95-
$modulepath = "$installpath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"
96-
Import-Module $modulepath
97-
Enter-VsDevShell -SetDefaultWindowTitle -InstallPath $installpath `
98-
-StartInPath (pwd) -DevCmdArguments '/arch=x64 /host_arch=x64';
99-
cmake --version
100-
colcon build --executor parallel --event-handlers console_direct+ desktop_notification- `
101-
--metas ./src/fastdds_python/.github/workflows/test.meta `
102-
--mixin rel-with-deb-info ccache ${{ steps.ninja.outputs.cmake_generator }}
120+
uses: eProsima/eProsima-CI/windows/colcon_build@v0
121+
with:
122+
colcon_meta_file: ./src/fastdds_python/.github/workflows/test.meta
123+
colcon_build_args: --executor parallel --mixin ccache ${{ steps.ninja.outputs.cmake_generator }}
124+
colcon_build_args_default: --event-handlers console_direct+ desktop_notification-
125+
cmake_build_type: RelWithDebInfo
126+
cmake_args_default: ' '
127+
workspace: ${{ github.workspace }}
103128

104129
- name: Run tests
105-
shell: pwsh
106-
run: |
107-
colcon test --packages-select fastdds_python --event-handlers console_direct+ desktop_notification- `
108-
--return-code-on-test-failure --ctest-args --timeout 60
130+
id: test
131+
uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0
132+
with:
133+
colcon_test_args: --packages-select fastdds_python --return-code-on-test-failure
134+
colcon_test_args_default: --event-handlers console_direct+ desktop_notification-
135+
ctest_args_default: --timeout 60
136+
workspace: ${{ github.workspace }}
137+
workspace_dependencies: ${{ github.workspace }}
109138

110139
- name: Upload Logs
111140
uses: actions/upload-artifact@v1
@@ -117,51 +146,76 @@ jobs:
117146
ubuntu-build-test:
118147
runs-on: ubuntu-22.04
119148
strategy:
149+
fail-fast: false
120150
matrix:
151+
foonathan_memory_vendor_version:
152+
- ${{ github.event.inputs.foonathan_memory_vendor_branch || 'master' }}
121153
fastcdr_version: ${{ fromJson(github.event.inputs.fastcdr_versions || '["1.1.x", "master"]') }}
154+
fastdds_version:
155+
- ${{ github.event.inputs.fastdds_branch || 'master' }}
156+
122157

123158
steps:
124-
- uses: eProsima/eProsima-CI/external/checkout@v0
159+
- name: Checkout Fast DDS Python
160+
uses: eProsima/eProsima-CI/external/checkout@v0
125161
with:
126162
path: src/fastdds_python
127163

128-
- uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
164+
- name: Install apt dependencies
165+
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
129166
with:
130167
packages: libasio-dev libtinyxml2-dev libpython3-dev swig
131168

132-
- uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0
169+
- name: Install colcon
170+
uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0
171+
172+
- name: Checkout foonathan memory vendor
173+
uses: eProsima/eProsima-CI/external/checkout@v0
174+
with:
175+
repository: eProsima/foonathan_memory_vendor
176+
path: src/foonathan_memory_vendor
177+
ref: ${{ matrix.foonathan_memory_vendor_version }}
178+
179+
- name: Checkout Fast CDR
180+
uses: eProsima/eProsima-CI/external/checkout@v0
181+
with:
182+
repository: eProsima/Fast-CDR
183+
path: src/fastcdr
184+
ref: ${{ matrix.fastcdr_version }}
133185

134-
- uses: ./src/fastdds_python/.github/actions/fetch-fastdds_python-repos
186+
- name: Checkout Fast DDS
187+
uses: eProsima/eProsima-CI/external/checkout@v0
135188
with:
136-
foonathan-memory-vendor-branch: ${{ github.event.inputs.foonathan_memory_vendor_branch || 'master' }}
137-
fastcdr-branch: ${{ matrix.fastcdr_version }}
138-
fastdds-branch: ${{ github.event.inputs.fastdds_branch || 'master' }}
189+
repository: eProsima/Fast-DDS
190+
path: src/fastdds
191+
ref: ${{ matrix.fastdds_version }}
139192

140-
- uses: eProsima/eProsima-CI/external/get-cmake@v0
193+
- name: Setup CMake version
194+
uses: eProsima/eProsima-CI/external/get-cmake@v0
141195
with:
142196
cmakeVersion: 3.22.6
143197

144198
- name: Setup ccache
145199
uses: eProsima/eProsima-CI/external/setup-ccache-action@v0
146200

147201
- name: Build workspace
148-
run: |
149-
cmake --version
150-
colcon build \
151-
--event-handlers=console_direct+ \
152-
--metas ./src/fastdds_python/.github/workflows/test.meta \
153-
--mixin rel-with-deb-info ccache
202+
uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0
203+
with:
204+
colcon_meta_file: ./src/fastdds_python/.github/workflows/test.meta
205+
colcon_build_args: --executor parallel --mixin ccache
206+
colcon_build_args_default: --event-handlers console_direct+
207+
cmake_build_type: RelWithDebInfo
208+
cmake_args_default: ''
209+
workspace: ${{ github.workspace }}
154210

155211
- name: Run tests
156-
run: |
157-
source install/setup.bash && \
158-
colcon test \
159-
--packages-select fastdds_python \
160-
--event-handlers=console_direct+ \
161-
--return-code-on-test-failure \
162-
--ctest-args \
163-
--output-on-failure \
164-
--timeout 60
212+
id: test
213+
uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0
214+
with:
215+
colcon_test_args: --packages-select fastdds_python --return-code-on-test-failure
216+
colcon_test_args_default: --event-handlers console_direct+
217+
ctest_args_default: --timeout 60
218+
workspace: ${{ github.workspace }}
165219

166220
- name: Upload Logs
167221
uses: actions/upload-artifact@v1

0 commit comments

Comments
 (0)