Build SU2 and run regressions on self hosted aarch64 runner scheduled#1619
Build SU2 and run regressions on self hosted aarch64 runner scheduled#1619martin-g merged 97 commits intosu2code:developfrom martin-g:build-on-self-hosted-aarch64-runner-scheduled-2
Conversation
.github/workflows/regression.yml
Outdated
| # workflows: ["Regression and Unit Post-Validation on Linux ARM64"] | ||
| # types: [requested] | ||
| # branches: | ||
| # - 'develop' |
There was a problem hiding this comment.
The lines will be uncommented later to lock the caller only to scheduled-arm64.yml
.github/workflows/regression.yml
Outdated
| matrix: | ||
| config_set: [BaseMPI, ReverseMPI, ForwardMPI, BaseNoMPI, ReverseNoMPI, ForwardNoMPI, BaseOMP, ReverseOMP, ForwardOMP] | ||
| #config_set: [BaseMPI, ReverseMPI, ForwardMPI, BaseNoMPI, ReverseNoMPI, ForwardNoMPI, BaseOMP, ReverseOMP, ForwardOMP] | ||
| config_set: [BaseMPI] |
There was a problem hiding this comment.
Temporarily reduced the config_set to reduce the build time. Once it works I will re-enable the complete list again.
.github/workflows/regression.yml
Outdated
| restore-keys: ${{ matrix.config_set }} | ||
| - name: Build | ||
| uses: docker://su2code/build-su2:20191105 | ||
| uses: docker://ghcr.io/martin-g/su2code/build-su2:2 |
There was a problem hiding this comment.
Related to su2code/Docker-Builds#1. I need to use the Docker image on the self-hosted Linux ARM64 runner and this requires updating the base image to Ubuntu 20.04 that is multi-platform.
The url to the Docker image will be updated to an official one once su2code/Docker-Builds#1 is merged.
.github/workflows/regression.yml
Outdated
| chmod a+x install/bin/* | ||
| - name: Run Tests in Container | ||
| uses: docker://su2code/test-su2:20200303 | ||
| uses: docker://ghcr.io/martin-g/su2code/test-su2:1 |
There was a problem hiding this comment.
Same as with the build-su2 image.
|
|
||
| on: | ||
| schedule: | ||
| - cron: "*/2 * * * *" |
There was a problem hiding this comment.
Every 2 minutes to be able to see the result quickly. Once everything works the schedule will be once per day or something similar.
|
Initially I tried to work on this task in my personal fork - https://github.com/martin-g/SU2/pull/1. |
|
@pcarruscag Could you please enable the Github Actions checks for this PR ? |
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
…st-su2 Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Workaround for:
[9/816] Compiling C object externals/cgns/hdf5/libsu2hdf5.a.p/H5system.c.o
FAILED: externals/cgns/hdf5/libsu2hdf5.a.p/H5system.c.o
ccache cc -Iexternals/cgns/hdf5/libsu2hdf5.a.p -Iexternals/cgns/hdf5 -I../externals/cgns/hdf5 -I/usr/lib/x86_64-linux-gnu/openmpi/include -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -fdiagnostics-color=always -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O3 -fPIC -pthread -Wno-unused-result -Wno-unused-parameter -Wno-unused-variable -Wno-unused-but-set-variable -Wno-sign-compare -Wno-stringop-overflow -Wno-discarded-qualifiers -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-label -Wno-pedantic -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200809L -D_GNU_SOURCE -MD -MQ externals/cgns/hdf5/libsu2hdf5.a.p/H5system.c.o -MF externals/cgns/hdf5/libsu2hdf5.a.p/H5system.c.o.d -o externals/cgns/hdf5/libsu2hdf5.a.p/H5system.c.o -c ../externals/cgns/hdf5/H5system.c
In file included from /usr/include/string.h:495,
from ../externals/cgns/hdf5/H5private.h:58,
from ../externals/cgns/hdf5/H5system.c:33:
In function ‘strncat’,
inlined from ‘H5_build_extpath’ at ../externals/cgns/hdf5/H5system.c:858:13:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: ‘__builtin_strncat’ output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../externals/cgns/hdf5/H5system.c:33:
../externals/cgns/hdf5/H5system.c: In function ‘H5_build_extpath’:
../externals/cgns/hdf5/H5private.h:1448:28: note: length computed here
1448 | #define HDstrncat(X, Y, Z) strncat(X, Y, Z)
| ^~~~~~~~~~~~~~~~
../externals/cgns/hdf5/H5system.c:858:13: note: in expansion of macro ‘HDstrncat’
858 | HDstrncat(full_path, new_name, HDstrlen(new_name));
| ^~~~~~~~~
cc1: all warnings being treated as errors
[10/816] Compiling C object externals/cgns/hdf5/libsu2hdf5.a.p/H5timer.c.o
[11/816] Compiling C object externals/cgns/hdf5/H5detect.p/H5detect.c.o
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Related-to: #1568 Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
|
The Github Actions checks passed after making two changes:
|
…uled-2 Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
The values depend on the used type and version of GCC/G++ compiler Confirmed-by: Pedro Gomes Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
|
@pcarruscag The build passes now after updating the regression tests expectations! Should I continue working on this PR for the ARM64 part or should we merge it (without the new Also what is your opinion on the change for the |
|
If you can continue on this one for bit more while we wrap up #1560 (which also had some changes in some regressions) it would help us. |
|
The regression tests fail on Ubuntu 20.04 aarch64: It is the same version of Python and GCC as on the Github Actions hosted runner. |
…als/ Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
|
@pcarruscag I've reverted the But there are also some problems in SU2's code (we should see them as build errors in the new checks). With diff --git a/meson.build b/meson.build
index 4c95a97047..1a34b8ac1d 100644
--- a/meson.build
+++ b/meson.build
@@ -22,6 +22,12 @@ if build_machine.system() != 'windows'
default_warning_flags += ['-Wno-empty-body']
endif
default_warning_flags += ['-Wno-unused-parameter',
+ '-Wno-error=cast-function-type',
+ '-Wno-cast-function-type',
+ '-Wno-error=stringop-truncation',
+ '-Wno-stringop-truncation',
+ '-Wno-error=missing-field-initializers',
+ '-Wno-missing-field-initializers',
'-Wno-deprecated-declarations']the build passes locally but I guess those should be fixed instead of suppressed. |
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Add reference file for fd_sp_pinArray_cht_2d_dp_hf for Linux ARM64 Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Update test expectations for restart_shape_optimization Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
…026491?check_suite_focus=true Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
|
@pcarruscag The PR is ready for review! |
|
Since I used the Github UI to merge the latest updates in |
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
|
Usually we dont squash-merge code PRs, so it's fine. |
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
it will be added in a separate PR Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
https://github.com/su2code/SU2/runs/7081204644?check_suite_focus=true Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
…s job Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
See https://github.com/actions/download-artifact#compatibility-between-v1-and-v2v3 Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Add a new workflow that is triggered only on push to `develop`, i.e. after merging a PR. It reuses regression.yml but requires a runner with 'ARM64' label, i.e. self-hosted one Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Proposed Changes
Add
workflow_callevent toregression.ymlGithub Actions workflow. This way it is possible to re-use it from another workflow.Add a new workflow -
scheduled-arm64.yml. It is a scheduled workflow that just executesregressions.ymlon a self-hosted runner.Related Work
su2code/Docker-Builds#1 - A PR that updates the build and test Docker images to Ubuntu 20.04 so that they could be used on both AMD64 and ARM64.
PR Checklist