Skip to content
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

Update tests.yml #4

Open
wants to merge 539 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
539 commits
Select commit Hold shift + click to select a range
4eed771
Sync DDC version f5d7e31
jbigot Jun 22, 2023
5d88b14
Merge remote-tracking branch 'origin/public' into public
jbigot Jun 22, 2023
9ce9761
Sync DDC version 245a590
jbigot Jun 22, 2023
5614114
Sync DDC version 8fce8e3
jbigot Jun 22, 2023
c00b496
Sync DDC version 8fce8e3
jbigot Jun 22, 2023
280392f
Merge remote-tracking branch 'origin/public' into public
jbigot Jun 22, 2023
a161785
Sync DDC version 19a13bc
Jun 22, 2023
37976ab
Sync DDC version 947fa73
Jun 22, 2023
6e39a42
Sync DDC version 5132cbb
Jun 22, 2023
caac858
Sync DDC version b3ee0e1
Jun 22, 2023
90868f4
Sync DDC version 2577dd2
Jun 24, 2023
a67c8a3
Sync DDC version 6cbf0c3
Jun 24, 2023
56ce8fb
Sync DDC version e070a9a
Jun 24, 2023
5b67e8b
Sync DDC version 245076c
Jun 26, 2023
31381b9
Update mdspan
tpadioleau Jun 26, 2023
3d861ad
Resolve "Update Kokkos 4.1.00"
tpadioleau Jun 29, 2023
9b14ac0
Put back pylint tests
EmilyBourne Jul 4, 2023
e7b7bad
Remove restrictive assertions
tpadioleau Jul 7, 2023
e21bf69
Resolve "Follow-up from "Adding of the Landau 2X+2V case""
tpadioleau Jul 10, 2023
1e4cd06
Reference sheath simulation
tpadioleau Jul 12, 2023
1419d20
Resolve "Simplification of interpolator machinery"
tpadioleau Jul 13, 2023
8491798
Add a 2D Spline interpolator (r, theta) and tests
EmilyBourne Jul 14, 2023
552235e
Check all files in PythonScripts folder with pylint
EmilyBourne Jul 14, 2023
df33ca6
Adding of the Landau 2X+2V case
gdgirard Jul 18, 2023
f6c2b75
[Doc] Add the documentation associated with the collision operator (v…
gdgirard Jul 19, 2023
d98cb2a
Add documentation checks to the CI
EmilyBourne Jul 24, 2023
032e146
Fix Doxygen documentations for the polar interpolator
EmilyBourne Jul 27, 2023
151189f
Resolve "Update CI policy"
tpadioleau Jul 28, 2023
b5e0578
Enable sll tests conditionally
tpadioleau Jul 28, 2023
fcc109e
Sync DDC version c05b467
Jul 31, 2023
0d55245
Allow the use of normal Markdown in README files
EmilyBourne Aug 2, 2023
ecf8643
Remove DDC sync
tpadioleau Aug 2, 2023
e05d3e1
Add analytical invertible mapping class and fix Doxygen bugs
EmilyBourne Aug 3, 2023
0c92652
Resolve "Modifications to compile with nvcc"
tpadioleau Aug 3, 2023
3f70dd4
Resolve "Prevent cyclic target dependencies"
tpadioleau Aug 3, 2023
2ccfd98
Remove const on return type
tpadioleau Aug 4, 2023
72be2e8
Sync ddc
tpadioleau Sep 8, 2023
b5811f6
Uncouple grid dimensions from splines.
EmilyBourne Sep 19, 2023
15d8959
Add a constant extrapolation as boundary condition for spline evaluation
EmilyBourne Sep 21, 2023
adb6566
Resolve "Suspicious comparison in `collisions_intra.hpp`"
EmilyBourne Sep 25, 2023
2eb59aa
Fix doxygen links
EmilyBourne Sep 25, 2023
27b6bb3
Add ND quadrature.
EmilyBourne Sep 26, 2023
39e0bc8
Resolve "Sync DDC"
tpadioleau Sep 26, 2023
4c056f3
Resolve "Fix clang compilation"
tpadioleau Sep 27, 2023
1131a7f
Update geometry file in RTheta dimensions
EmilyBourne Sep 27, 2023
dc4ed37
Plot electric field post_process improvement
Sep 29, 2023
8d63f0b
Plot electric fiel improvement
Sep 30, 2023
5f1f9b2
Remove unused variables
EmilyBourne Oct 3, 2023
64d4fbf
typo
Oct 8, 2023
51664bb
Sync DDC
EmilyBourne Oct 9, 2023
f6b8808
Add spline quadrature and norm calculations.
EmilyBourne Oct 10, 2023
354e959
Velocity bc aliases (minor)
EmilyBourne Oct 10, 2023
91df782
Add vector field implementation
EmilyBourne Oct 16, 2023
2105c6d
Only require doxygen if docs are being built
EmilyBourne Oct 17, 2023
48b17cc
Sync DDC
tpadioleau Oct 18, 2023
848ec6c
Correction derivative 2 polar B-splines
EmilyBourne Oct 18, 2023
c013023
Fix evaluation of multi-line equations in READMEs
EmilyBourne Oct 19, 2023
86a0f3f
Update file Dockerfile
tpadioleau Oct 20, 2023
d8bbf64
Resolve "geometryRTheta does not follow dimension naming conventions"
EmilyBourne Oct 20, 2023
5dd46a9
Add ND time steppers
EmilyBourne Oct 20, 2023
1380075
1.5 inverse Jacobian matrix for the Czarny mapping
EmilyBourne Oct 25, 2023
ddfc169
Sync DDC
tpadioleau Oct 27, 2023
031183c
2/3. Add to pseudo Cartesian domain center function in mappings
EmilyBourne Oct 31, 2023
8c5b6a8
Refined discrete mapping
EmilyBourne Nov 2, 2023
c38879b
Renaming python file to avoid conflicts
EmilyBourne Nov 3, 2023
fbe6b80
Add documentation of how to use DDC
EmilyBourne Nov 3, 2023
3acb14b
Add Euler and Crank-Nicolson methods
EmilyBourne Nov 6, 2023
9a09ef2
Fix issue #157
EmilyBourne Nov 8, 2023
d25614d
Resolve "Fix CUDA compilation"
tpadioleau Nov 10, 2023
d6c1535
Adding ginkgo to the dockerfile
tpadioleau Nov 14, 2023
648081e
fix conflict with ddc tests
tpadioleau Nov 14, 2023
75aa653
Sync DDC
tpadioleau Nov 14, 2023
b75b033
Sync DDC
tpadioleau Nov 15, 2023
be40ea0
Rename docker folder
tpadioleau Nov 15, 2023
89e925c
Rename docker directory
tpadioleau Nov 15, 2023
4b44e07
Rename voicexx folders and variables to gyselalibxx
tpadioleau Nov 15, 2023
90b99db
[PDI] Allow restarting simulations from a previously saved hdf5 file
gdgirard Nov 15, 2023
3e0a2c5
Change python file because error with KOKKOS
tpadioleau Nov 16, 2023
1c81b31
Sync DDC
tpadioleau Nov 16, 2023
20668da
Save a span in Quadrature to allow copies to be made
EmilyBourne Nov 16, 2023
9939a7e
Resolve "[GYSELAX WEEK] 1X1V sheath : Add the simulation : periodic …
tpadioleau Nov 16, 2023
3bd5fdb
Initialization on GPU
tpadioleau Nov 16, 2023
6081778
Add annotations about species
tpadioleau Nov 17, 2023
3155588
Fix device_t documentation
EmilyBourne Nov 17, 2023
c44d6c6
Resolve "PCpp error handling silently suppress errors in PDI initiali…
tpadioleau Nov 17, 2023
8eb065c
4. Add polar advection operator
EmilyBourne Nov 17, 2023
68140c1
Resolve "Forgotten desallocation Paraconf"
tpadioleau Nov 20, 2023
1a9d49b
Add static assert to spline quadrature
EmilyBourne Nov 20, 2023
aedf5cc
5. Add another operator() of PoissonSolver + electric field for the d…
EmilyBourne Nov 21, 2023
02e5f87
Templated quadrature
tpadioleau Nov 21, 2023
2a0715a
Sheath simulation for gpu verification
EmilyBourne Nov 24, 2023
dd008c3
Templated quadrature
EmilyBourne Nov 24, 2023
dc52ada
Sheath simulation for gpu verification
EmilyBourne Nov 24, 2023
db42487
Add missing interface classes
EmilyBourne Nov 27, 2023
bd63f56
Sheath simulation for gpu verification
EmilyBourne Nov 27, 2023
9cb728f
Restructure the advection_2d_rp folder
EmilyBourne Nov 28, 2023
a1559fa
Sync DDC
tpadioleau Nov 28, 2023
8e1518f
Extract charge calculation from Poisson
EmilyBourne Nov 28, 2023
8ae4fbb
Fix public / private issue for tag in fem poisson solver
EmilyBourne Nov 28, 2023
1710296
GPU RHS 1 : Sources (not collisions)
EmilyBourne Nov 29, 2023
e6e6d4c
Kokkos profiling 2
EmilyBourne Nov 29, 2023
34ae315
Geometry doc
EmilyBourne Nov 29, 2023
34d6456
Add GPU test to CI
EmilyBourne Dec 1, 2023
08c144d
GPU RHS 2 : Inter species collisions
EmilyBourne Dec 1, 2023
a1672e4
Resolve "Sign comparison triggers too many verbose warnings"
tpadioleau Dec 4, 2023
d3a2415
Increase error tolerance in polar spline test
EmilyBourne Dec 5, 2023
5cc7c94
Gpu vlasov
EmilyBourne Dec 6, 2023
2f5e5f7
Fix doxygen warning
EmilyBourne Dec 8, 2023
6a8a6a8
Fix refined mapping to add pseudo Cartesian Jacobian
EmilyBourne Dec 12, 2023
df996c7
Improve AdvectionRTheta tests
EmilyBourne Dec 13, 2023
b19ec03
Add a linter to check markdown files
EmilyBourne Dec 14, 2023
c2b56ff
7. Final diocotron
EmilyBourne Dec 14, 2023
998b1ce
Speed up CI
gdgirard Dec 14, 2023
e1c7e95
Fix test trigger on main
EmilyBourne Dec 14, 2023
50e7e00
Additional comments and documentation for polar Poisson
EmilyBourne Dec 19, 2023
5ef29e3
Fix lagrange batched
EmilyBourne Dec 19, 2023
512e201
Remove deprecated use of DDC_LAMBDA
tpadioleau Jan 10, 2024
1024042
Synchronize DDC
gdgirard Jan 11, 2024
a108571
Remove costly use of SplineChargeDensityCalculator
gdgirard Jan 12, 2024
fd97369
Gpu Poisson Solver
EmilyBourne Jan 16, 2024
31cac54
Synchronize DDC
tpadioleau Jan 18, 2024
1fad537
Use FFT to calculate derivative in FFT solvers
EmilyBourne Jan 22, 2024
625708f
Fix diag_growthrate
EmilyBourne Jan 22, 2024
277253a
Synchronize DDC
EmilyBourne Jan 22, 2024
6cffe4e
Add Vortex merger simulation
EmilyBourne Jan 23, 2024
9201c93
Extract quadrature from spline builder for ddc
EmilyBourne Jan 24, 2024
2d82add
Timesteppers (RK2, Euler, etc) on GPU. Inter species collisions uses …
EmilyBourne Jan 24, 2024
ad29aa5
Add interspecies collision in main sheath simulation
EmilyBourne Jan 24, 2024
8a770db
Fix neumann quadrature tests
EmilyBourne Jan 24, 2024
9ecda87
Increase timeout
EmilyBourne Feb 12, 2024
0cb59ee
Update DDC
EmilyBourne Feb 12, 2024
d79fbfe
Splines from ddc in GeometryXVx
EmilyBourne Feb 15, 2024
a3be632
Allow to access attributes of SpeciesInformation on the device
EmilyBourne Feb 16, 2024
7832d1d
Resolve "Remove perturb_mode and perturb_amplitude from SpeciesInfo"
EmilyBourne Feb 20, 2024
c81589b
Fix warnings
EmilyBourne Feb 21, 2024
438e363
GPU implementation for density calculation with debug
EmilyBourne Feb 21, 2024
ed4cf9f
Resolve "Fix -Wpedantic warnings"
tpadioleau Feb 21, 2024
9ca0c55
Update README.md
tpadioleau Feb 21, 2024
587ce4c
Update README.md
tpadioleau Feb 21, 2024
4fa8189
Update README.md
tpadioleau Feb 21, 2024
35e6e3c
Use parallel charge density calculation in place of charge density ca…
EmilyBourne Feb 23, 2024
1b11d00
Embedded profiling
tpadioleau Feb 29, 2024
0d32961
GPU-first geometryXVx allocations, rename aliases and variables names
gdgirard Mar 1, 2024
6fd557b
Partial GPU port of FEM PoissonXVx
EmilyBourne Mar 14, 2024
dedf4f1
Improve IO naming conventions
EmilyBourne Mar 14, 2024
7cca1a2
Update CMakeLists.txt
EmilyBourne Mar 14, 2024
0dd8869
Update vector_field.hpp
tpadioleau Mar 14, 2024
8845c39
DDC sync
EmilyBourne Mar 15, 2024
c730331
Delete VectorField copy assignment
EmilyBourne Mar 15, 2024
a0f4d05
Fix a deepcopy preventing the 1D advection from running (only used in…
EmilyBourne Mar 15, 2024
312a790
Port XYVxVY charge density calculation
EmilyBourne Mar 18, 2024
aea9f4f
Sync DDC version 638d138
tpadioleau Mar 18, 2024
a2aa7e5
Landau4D GPU porting
EmilyBourne Mar 19, 2024
dcdba00
Advection field in RP instead of XY
gdgirard Mar 20, 2024
80f4a12
Resolve "Remove explicit usage of `Kokkos::Serial` when possible"
EmilyBourne Mar 21, 2024
5e4197e
Fix ddc_sync script
EmilyBourne Mar 21, 2024
8fc63b1
Modify parameters of the advection field RP gtest to reduce time of t…
EmilyBourne Mar 21, 2024
f463574
Update Polar splines to add comments and more DDC syntax
EmilyBourne Mar 22, 2024
c910ac1
Sync DDC
EmilyBourne Mar 22, 2024
5ee699c
Update Polar splines to add comments and more DDC syntax
EmilyBourne Mar 22, 2024
21d8ec4
Fix initialisation of Maxwell equilibrium in geometryXYVxVy
EmilyBourne Mar 22, 2024
88ab2c6
DDC sync
EmilyBourne Mar 22, 2024
2a48c91
Modify default DDC compilation parameters
tpadioleau Mar 25, 2024
0604ad9
Remove unused arguments in geometryRTheta
EmilyBourne Mar 25, 2024
1c3b003
Add missing ddc namespace on for_each in geometryRTheta
EmilyBourne Mar 25, 2024
6692e20
Enable easy local documentation compilation
gdgirard Mar 25, 2024
cd0ae13
Reorganize pdf docs to remove them from the source folder.
EmilyBourne Mar 26, 2024
3a413f8
Update DDC
EmilyBourne Mar 26, 2024
7c5e4de
Resolve "Problem of scalability in the spatial advection `bsl_advecti…
tpadioleau Mar 27, 2024
33b4111
Add a first version of the 5D geometry in (tor1,tor2,tor3,vpar,mu)
EmilyBourne Mar 28, 2024
933c3b3
Fix simplified GitHub file
EmilyBourne Mar 28, 2024
b5aaf97
Modification of the nomenclature in the interpolation/ folder
EmilyBourne Mar 28, 2024
279fc52
Sync DDC
EmilyBourne Mar 28, 2024
8c90777
Remove unbatched advection and interpolator
EmilyBourne Mar 29, 2024
63fd821
Deactivate OpenMP in GPU tests
EmilyBourne Mar 29, 2024
eabafe5
ddc sync
EmilyBourne Apr 2, 2024
7be56cc
Update ddc_sync
EmilyBourne Apr 2, 2024
13203ff
Remove SLL splines
EmilyBourne Apr 2, 2024
cddd886
Clean up PolarBSplines
EmilyBourne Apr 3, 2024
77bec8b
ddc sync
tpadioleau Apr 3, 2024
67b2762
Restore matrix tests
EmilyBourne Apr 4, 2024
c4f8b5f
ddc sync: use gmres only with OMP
EmilyBourne Apr 5, 2024
b81445d
Add OMP CI
EmilyBourne Apr 8, 2024
4ab54a2
Remove "batched" suffixing
EmilyBourne Apr 8, 2024
3df8122
Fix error in the L2 norm - test advection RTheta
EmilyBourne Apr 8, 2024
f72de65
Uniformize quadrature coefs functions (all returning on CPU)
EmilyBourne Apr 8, 2024
8173fc1
Upgrade Kokkos to version 4.3.00
EmilyBourne Apr 8, 2024
16b15c4
Report differences on sheath restart test
EmilyBourne Apr 8, 2024
9194a7b
Don't require bit reproducable
EmilyBourne Apr 9, 2024
0315225
Fluid species dimensions implementation
EmilyBourne Apr 9, 2024
2c62f0d
Fix the DDC hash generated by ddc_sync
tpadioleau Apr 10, 2024
044df67
Fix warning `-Wparentheses`
EmilyBourne Apr 10, 2024
a584354
Disable unused kokkos-kernel components & 5D collision operator (koli…
EmilyBourne Apr 15, 2024
c9095c0
Restore two SLL tests disabled by mistake (gauss-legendre & view)
EmilyBourne Apr 16, 2024
e2a284b
Don't require bit reproducable for bump on tail and landau restart tests
EmilyBourne Apr 16, 2024
e0c07f9
Use CMake to set default values for RELATIVE_RESTART_TOLERANCE and AB…
EmilyBourne Apr 17, 2024
e06dc85
Add tests for advection
EmilyBourne Apr 18, 2024
3c6fe3e
Resolve "Ensure recent Spack recipes are used."
tpadioleau Apr 19, 2024
6074fcd
Fix clang compiler issue by removing usage of CTAD inside GPU kernel
tpadioleau Apr 22, 2024
a6a1d93
Create batch matrix interface
EmilyBourne Apr 24, 2024
9ed158a
Integrate batched solver in CollisionIntra Solver
EmilyBourne Apr 30, 2024
4618edb
Krook sink mask plottting for sheath
EmilyBourne May 3, 2024
a38fbd1
Fix reductions in MatrixBatchTridiag
EmilyBourne May 13, 2024
b6b7610
Sync ddc
EmilyBourne May 27, 2024
2ebaf3c
Rename PoissonSolver -> QNSolver in X-Vx Geometry
EmilyBourne May 27, 2024
3062dc8
Rename PoissonSolver -> QNSolver in X-Y-Vx-Vy Geometry
EmilyBourne May 27, 2024
cb40479
Add a dimension reordering operator
EmilyBourne May 28, 2024
80bdfad
Adding of ELL Sparse Iterative Matrix solver in sll
EmilyBourne May 30, 2024
3502c52
Update public_mirror
EmilyBourne Jun 6, 2024
fbf35a3
Decouple ChargeDensityCalculator and FFT PoissonSolver
EmilyBourne Jun 7, 2024
d9da711
Rename MatrixBatchSparse to MatrixBatchEll
EmilyBourne Jun 10, 2024
5278f4a
Add Interface object for multipatch.
EmilyBourne Jun 10, 2024
488f52d
Resolve "Install PDI missing plugging in Adastra spack environnent"
EmilyBourne Jun 11, 2024
5e7f437
Rename chargexchange into charge_exchange
EmilyBourne Jun 11, 2024
92aa139
Post process scripts for neutrals simulation
EmilyBourne Jun 11, 2024
72b12c4
Resolve "Diagnostic for growth rate does not support LandauXYVxVy"
EmilyBourne Jun 12, 2024
6a6cea0
Stop using the function `is_spline_interpolation_mesh_uniform`
EmilyBourne Jun 12, 2024
de43d82
Reduce duplication when outputting coordinates
EmilyBourne Jun 13, 2024
504fafb
Adding of the collision/ folder with the collision operator in (speci…
EmilyBourne Jun 13, 2024
df1f029
Reduce duplication in domain initialisation from splines
EmilyBourne Jun 13, 2024
039f809
Reduce duplication for input of simulation configuration
EmilyBourne Jun 14, 2024
8825ed4
Reduce duplication in species initialisation
EmilyBourne Jun 14, 2024
c679ce0
Reduce duplication of species definition in geometries
EmilyBourne Jun 17, 2024
9905962
Remove unnecessary internal tags in intra-collisions
EmilyBourne Jun 18, 2024
ea18e25
Remove duplication for perturbation initialization
EmilyBourne Jun 20, 2024
4b940ee
"LandauXYVxVy is not numerically tested"
EmilyBourne Jun 20, 2024
b40a580
Templatization of functions to build GhostedVx and GhostedStaggeredVx…
EmilyBourne Jun 21, 2024
dbde8e7
Clean geometryXYVxVY simulations
EmilyBourne Jun 21, 2024
dd66f44
Add type to hold values and derivatives
EmilyBourne Jun 24, 2024
5387383
Remove duplicate continuous dimension in XVx poisson FEM
EmilyBourne Jun 25, 2024
0e43565
Remove duplicate continuous dimensions in PoissonRTheta
EmilyBourne Jun 25, 2024
98543ef
LAPACKE in CI
EmilyBourne Jun 25, 2024
5d578d1
Advection operator 1D for templated geometry
EmilyBourne Jun 26, 2024
6d20e94
Install OpenMPI to docker environment
EmilyBourne Jun 27, 2024
342c4bc
Clean up quadrature tests
EmilyBourne Jun 27, 2024
0ccdfd3
Resolve "Add a Guiding Center simulation"
EmilyBourne Jul 8, 2024
8339adb
Add device_t<> for VectorField too
EmilyBourne Jul 9, 2024
4ce3236
Fix quadrature tests
EmilyBourne Jul 9, 2024
7e50061
Clean CMake files
EmilyBourne Jul 9, 2024
60c652a
Clean README files
EmilyBourne Jul 9, 2024
320e7b7
Add README in geometryRTheta/geometry/
EmilyBourne Jul 9, 2024
52645fc
Fix speciesinit
EmilyBourne Jul 9, 2024
627130e
Add a spline builder on multipatch geometry
EmilyBourne Jul 9, 2024
0f1e374
ddc sync
EmilyBourne Jul 11, 2024
9790a47
Only run DDC GPU tests if DDC is modified
EmilyBourne Jul 11, 2024
6debd06
Fix MomentsInitialisation tests undeterminism
EmilyBourne Jul 11, 2024
d1cf3e7
Update tests.yml
NairodM Jul 12, 2024
e081d19
Update tests.yml
NairodM Jul 12, 2024
de8a50f
Update tests.yml
NairodM Jul 12, 2024
0bfef99
Update tests.yml
NairodM Jul 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
139 changes: 139 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: docker

on:
push:
branches:
- 'main'
pull_request:
jobs:
persee:
runs-on: self-hosted
environment: development
steps:
-
name: Env check
run: |
source ~/.bash_profile
rm -rf build
mkdir build
hostname >build/hsotname.out
pwd > build/pwd.out
touch build/test.out
module av gcc
echo "Working?"

docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push to tag
uses: docker/build-push-action@v3
with:
context: ./docker/gyselalibxx_env
cache-from: type=registry,ref=ghcr.io/gyselax/gyselalibxx_env:latest
pull: true
push: true
tags: ghcr.io/gyselax/gyselalibxx_env:${{ github.sha }}
-
name: Build and push latest
if: github.event_name == 'push' && github.ref_name == 'main'
uses: docker/build-push-action@v3
with:
context: ./docker/gyselalibxx_env
cache-from: type=registry,ref=ghcr.io/gyselax/gyselalibxx_env:latest
pull: true
push: true
tags: ghcr.io/gyselax/gyselalibxx_env:latest

tests:
runs-on: ubuntu-latest
needs: docker
container:
image: ghcr.io/gyselax/gyselalibxx_env:${{ github.sha }}
options: --user root
steps:
-
name: Checkout gyselalibxx
uses: actions/checkout@v3
with: { submodules: recursive }
-
name: Run tests
run: |
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON -DKokkos_ENABLE_DEPRECATED_CODE_3=OFF -DKokkos_ENABLE_DEPRECATION_WARNINGS=OFF ..
make -j 2 VERBOSE=1
ctest --output-on-failure --timeout 5 -LE test_on_Release_only

tests_Release:
runs-on: ubuntu-latest
needs: docker
container:
image: ghcr.io/gyselax/gyselalibxx_env:${{ github.sha }}
options: --user root
steps:
-
name: Checkout gyselalibxx
uses: actions/checkout@v3
with: { submodules: recursive }
-
name: Run tests
run: |
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_DEPRECATED_CODE_3=OFF -DKokkos_ENABLE_DEPRECATION_WARNINGS=OFF ..
make -j 2 VERBOSE=1
ctest --output-on-failure --timeout 5

Docs:
if: github.event_name == 'push' && github.ref_name == 'main'
needs: docker
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: code_branch
- name: Checkout documentation
uses: actions/checkout@v3
with:
ref: documentation
path: doc_branch
- name: Install doxygen
run: |
sudo apt install doxygen
shell: bash
- name: Generate docs
run: |
cmake -DGYSELALIBXX_COMPILE_SOURCE=OFF -DBUILD_DOCUMENTATION=1 -B build-docs code_branch
cmake --build build-docs
shell: bash
- name: Update documentation
run: |
cd doc_branch
git rm -r *
cp -r ../build-docs/docs/html/* .
git add .
git config --global user.name "GitHub CI Documentation builder"
git config --global user.email "username@users.noreply.github.com"
git commit -m "Update docs" || true
git push
shell: bash
env:
GH_TOKEN: ${{ github.token }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/build*/
*.pyc
/log.build.*
201 changes: 160 additions & 41 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,81 +1,200 @@
cmake_tests_non_periodic:
only: [ main, merge_requests ]
stage: test
needs: []
image: jbigot/voicexx_env

include:
- local: 'ci_tools/reusable_ci_jobs.yml'

cmake_tests:
extends: .cmake_tests
image: ghcr.io/gyselax/gyselalibxx_env
timeout: 2 hours
variables:
GIT_SUBMODULE_STRATEGY: recursive
RELATIVE_RESTART_TOLERANCE: '0.0'
ABSOLUTE_RESTART_TOLERANCE: '0.0'
script: |
set -x
git config --global --add safe.directory /builds/gysela-developpers/gyselalibxx/vendor/kokkos
rm -rf build || true
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON -DVOICEXX_ENABLE_PERIODIC_RDIMX=OFF ..
make -j 4 VERBOSE=1
cmake -DCMAKE_CXX_FLAGS="-Wall -Werror=unused-variable -Werror=parentheses -Wno-sign-compare" -DBUILD_BENCHMARKS=ON $GENERAL_CMAKE_OPTIONS -DKokkos_ENABLE_SERIAL=ON ..
make -j 4
ctest -j 2 --output-on-failure --timeout 5 -LE test_on_Release_only --output-junit tests.xml
artifacts:
when: always
expire_in: 1 day
reports:
junit: ./build/tests.xml
cmake_tests:
only: [ main, merge_requests ]
stage: test
needs: []
image: jbigot/voicexx_env

cmake_tests_Release:
extends: .cmake_tests
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
RELATIVE_RESTART_TOLERANCE: '0.0'
ABSOLUTE_RESTART_TOLERANCE: '0.0'
script: |
set -x
git config --global --add safe.directory /builds/gysela-developpers/gyselalibxx/vendor/kokkos
rm -rf build || true
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON ..
make -j 4 VERBOSE=1
ctest -j 2 --output-on-failure --timeout 5 -LE test_on_Release_only --output-junit tests.xml
cmake -DCMAKE_CXX_FLAGS="-Wall -Wno-sign-compare" -DBUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release $GENERAL_CMAKE_OPTIONS -DKokkos_ENABLE_SERIAL=ON ..
make -j 4
ctest -j 2 --output-on-failure --timeout 5 --output-junit tests.xml
ls ./tests/geometryXVx/landau/fft/growthrate_t0.0to45.0.png
ls ./tests/geometryXVx/landau/fft/frequency_t0.0to45.0.png
artifacts:
when: always
expire_in: 1 day
paths:
- ./build/tests/geometryXVx/landau/fft/growthrate_t0.0to45.0.png
- ./build/tests/geometryXVx/landau/fft/frequency_t0.0to45.0.png
reports:
junit: ./build/tests.xml
cmake_tests_Release:
only: [ main, merge_requests ]
stage: test
needs: []
image: jbigot/voicexx_env

cmake_tests_Release_OMP:
extends: .cmake_tests
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
RELATIVE_RESTART_TOLERANCE: '1e-14'
ABSOLUTE_RESTART_TOLERANCE: '1e-14'
script: |
set -x
git config --global --add safe.directory /builds/gysela-developpers/gyselalibxx/vendor/kokkos
rm -rf build || true
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release ..
make -j 4 VERBOSE=1
ctest -j 2 --output-on-failure --timeout 5 --output-junit tests.xml
cmake -DCMAKE_CXX_FLAGS="-Wall -Wno-sign-compare" -DBUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release $GENERAL_CMAKE_OPTIONS -DKokkos_ENABLE_OPENMP=ON ..
make -j 4
OMP_NUM_THREADS=2 ctest -j 2 --output-on-failure --timeout 5 --output-junit tests.xml
ls ./tests/geometryXVx/landau/fft/growthrate_t0.0to45.0.png
ls ./tests/geometryXVx/landau/fft/frequency_t0.0to45.0.png
artifacts:
when: always
expire_in: 1 day
paths:
- ./build/tests/geometryXVx/landau/fft/growthrate_t0.0to45.0.png
- ./build/tests/geometryXVx/landau/fft/frequency_t0.0to45.0.png
reports:
junit: ./build/tests.xml

cmake_tests_Release_GPU:
extends: .cmake_tests
tags:
- persee
variables:
RELATIVE_RESTART_TOLERANCE: '1e-14'
ABSOLUTE_RESTART_TOLERANCE: '1e-14'
before_script: |
. /data/gyselarunner/spack-0.20.0/share/spack/setup-env.sh
spack load gcc@11
spack env activate gyselalibxx-env-omp-cuda
script: |
set -x
export OMP_PROC_BIND=spread
export OMP_PLACES=threads
export OMP_NUM_THREADS=8
git config --global --add safe.directory /builds/gysela-developpers/gyselalibxx/vendor/kokkos
rm -rf build || true
mkdir build
cd build
cmake -DCMAKE_CXX_COMPILER=${CI_PROJECT_DIR}/vendor/kokkos/bin/nvcc_wrapper \
-DCMAKE_CXX_FLAGS="-Wall -Wno-sign-compare -Xcudafe --diag_suppress=unsigned_compare_with_zero -Xcudafe --diag_suppress=integer_sign_change" \
-DCMAKE_BUILD_TYPE=Release -DDDC_BUILD_TESTS=${DDC_BUILD_TESTING} $GENERAL_CMAKE_OPTIONS -DKokkos_ARCH_VOLTA70=ON -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_CUDA=ON ..
make -j 8
ctest -j 2 --output-on-failure --timeout 5 --output-junit tests.xml -LE ResultsNotTested
ls ./tests/geometryXVx/landau/fft/growthrate_t0.0to45.0.png
ls ./tests/geometryXVx/landau/fft/frequency_t0.0to45.0.png
artifacts:
when: always
expire_in: 1 day
paths:
- ./build/tests/landau/fft/dampingrate_t0.0to45.0.png
- ./build/tests/landau/fft/frequency_t0.0to45.0.png
- ./build/tests/geometryXVx/landau/fft/growthrate_t0.0to45.0.png
- ./build/tests/geometryXVx/landau/fft/frequency_t0.0to45.0.png
reports:
junit: ./build/tests.xml

indentation:
only: [ main, merge_requests ]
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
stage: test
needs: []
image: jbigot/voicexx_env
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
script: |
./bin/indent -td
ddc_sync:
only: [ triggers ]
python_best_practices:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
stage: test
needs: []
image: jbigot/voicexx_env
script:
- git config user.email "${GITLAB_USER_EMAIL}"
- git config user.name "${GITLAB_USER_NAME}"
- git checkout "${CI_COMMIT_BRANCH}"
- ./bin/ddc_sync --commit
- git push "http://root:${SELF_COMMIT_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git" "HEAD:${CI_COMMIT_BRANCH}"
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
before_script:
export PYTHONPATH="./post-process/PythonScripts"
script: |
pylint $(find tests -iname *.py)
pylint $(find doc -iname *.py)
pylint $(find ci_tools -iname *.py)
# Find all files with no extension or a .py extension in post-process/PythonScripts/
POST_PROCESS_PYTHON_FILES=$(find post-process/PythonScripts/ -type f ! -name "*.*"; find post-process/PythonScripts -iname *.py)
# Get pylint errors without failing
pylint ${POST_PROCESS_PYTHON_FILES} > post_process_errors.txt || true
# Filter errors on changed files
git config --global --add safe.directory $(pwd)
git fetch origin main
for f in $(git diff origin/main --name-only); do grep $f post_process_errors.txt || true; done | tee filtered_errors.txt
# Raise an error if post-process in filtered errors
! grep "post-process" filtered_errors.txt >/dev/null

public_mirror:
only: [ main ]
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
tags: [ outssh ]
needs: []
image: jbigot/voicexx_env
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
script: ./bin/public_mirror

documentation:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
stage: test
needs: []
image: ghcr.io/gyselax/gyselalibxx_env
before_script: |
git config --global --add safe.directory $CI_PROJECT_DIR
git fetch origin ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} --recurse-submodules=no
script: |
rm -rf build || true
# Make docs
cmake -DGYSELALIBXX_COMPILE_SOURCE=OFF -DBUILD_DOCUMENTATION=1 -B build-docs .
cmake --build build-docs
# Get files which have changed in this merge request
git diff origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}..HEAD --no-indent-heuristic --unified=0 --output=pull_diff.txt --no-color
# Filter documentation messages to only complain about modified files
python3 ci_tools/check_documentation.py pull_diff.txt build-docs/docs/doxygen.log
git diff origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}..HEAD --no-indent-heuristic --unified=0 --output=pull_new_files.txt --no-color --diff-filter=A
python3 ci_tools/check_readme_presence.py pull_new_files.txt
allow_failure: true

markdown_best_practices:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
stage: test
needs: []
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
script: |
MARKDOWN_FILES=$(find . -name "*.md" -not -path "./vendor/*")
MARKDOWN_FILES="$MARKDOWN_FILES $(find ./vendor/sll/ -name '*.md')"
echo $MARKDOWN_FILES
set +e
python3 ci_tools/markdown_linter.py ${MARKDOWN_FILES}
allow_failure:
exit_codes: 2
Loading
Loading