-
Notifications
You must be signed in to change notification settings - Fork 918
Build SU2 and run regressions on self hosted aarch64 runner scheduled #1619
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build SU2 and run regressions on self hosted aarch64 runner scheduled #1619
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as with the build-su2 image.
|
|
||
| on: | ||
| schedule: | ||
| - cron: "*/2 * * * *" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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