diff --git a/.github/CI.md b/.github/CI.md new file mode 100644 index 000000000..d9c0d06a2 --- /dev/null +++ b/.github/CI.md @@ -0,0 +1,17 @@ +# CI FreeFEM + +Each of the subsequent sections correspond to a workflow composed of a set of +jobs: **Release/Debug + different plateform**. A workflow appears as `failed` +if only one of its jobs has failed. To get more details about the failing +configuration, click on the corresponding badge below. + + +| master | develop | +|:----------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------:| +| ![Minimal version](https://github.com/FreeFem/FreeFem-sources/actions/workflows/minimal.yml/badge.svg) | ![Minimal version](https://github.com/FreeFem/FreeFem-sources/actions/workflows/minimal.yml/badge.svg?branch=develop) | +| ![Sequential version](https://github.com/FreeFem/FreeFem-sources/actions/workflows/sequential.yml/badge.svg) | ![Sequential version](https://github.com/FreeFem/FreeFem-sources/actions/workflows/sequential.yml/badge.svg?branch=develop) | +| ![Full version OpenMPI](https://github.com/FreeFem/FreeFem-sources/actions/workflows/full-openmpi.yml/badge.svg) | ![Full version OpenMPI](https://github.com/FreeFem/FreeFem-sources/actions/workflows/full-openmpi.yml/badge.svg?branch=develop) | +| ![Full version MPICH](https://github.com/FreeFem/FreeFem-sources/actions/workflows/full-mpich.yml/badge.svg) | ![Full version MPICH](https://github.com/FreeFem/FreeFem-sources/actions/workflows/full-mpich.yml/badge.svg?branch=develop) | +| ![Full version MS-MPI](https://github.com/FreeFem/FreeFem-sources/actions/workflows/full-msmpi.yml/badge.svg) | ![Full version MS-MPI](https://github.com/FreeFem/FreeFem-sources/actions/workflows/full-msmpi.yml/badge.svg?branch=develop) | + +GitHub Actions workflows definition files available [here](.github/workflows). diff --git a/.github/workflows/full-mpich.yml b/.github/workflows/full-mpich.yml new file mode 100644 index 000000000..40e27659d --- /dev/null +++ b/.github/workflows/full-mpich.yml @@ -0,0 +1,154 @@ +# Full version of FreeFem, using MPICH installed by PETSc +name: Full version MPICH + +on: + push: + branches: + - develop + - master + - slegrand-actions-debug + + pull_request: + branches: + - develop + + # For development phase + workflow_dispatch: + +jobs: + linux: + strategy: + fail-fast: false + matrix: + version: [22.04, 24.04] + cfg: + - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: Ubuntu ${{ matrix.version }} with ${{ matrix.cfg.opts }} \ + - ${{ github.workflow }} + + runs-on: ubuntu-${{ matrix.version }} + + steps: + - uses: actions/checkout@v4 + + - name: Install + run: | + sudo apt update + sudo apt install gcc g++ gfortran m4 patch git wget cmake \ + libhdf5-dev libgsl-dev flex bison autoconf automake \ + autotools-dev + + - name: Configure + run: | + autoreconf -i + ./configure --enable-download ${{ matrix.cfg.opts }} \ + --prefix="${HOME}/freefem" + ./3rdparty/getall -a -o PETSc + + - name: PETSc + run: | + cd 3rdparty/ff-petsc + make petsc-slepc + cd - + ./reconfigure + + - name: Upload PETSc and reconfigure logs on fail + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: PETSc-reconfigure-logs + path: | + 3rdparty/ff-petsc/petsc-*/configure.log + config.log + compression-level: 9 + + - name: Build + run: make -j 4 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh + + - name: Install + run: make install + + macos: + strategy: + fail-fast: false + matrix: + version: [13, 14, 15] + cfg: + - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: MacOS ${{ matrix.version }} with ${{ matrix.cfg.opts }} \ + - ${{ github.workflow }} + + runs-on: macos-${{ matrix.version }} + + steps: + - uses: actions/checkout@v4 + + # Remove homebrew LLVM compiler, and use most recent Xcode development + # tools + - name: Set environment + run: | + if [ "${{ matrix.version }}" -eq "15" ]; then + echo "LLVM_VERSION=18" >> $GITHUB_ENV + sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + elif [ "${{ matrix.version }}" -eq "14" ]; then + echo "LLVM_VERSION=15" >> $GITHUB_ENV + sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + elif [ "${{ matrix.version }}" -eq "13" ]; then + echo "LLVM_VERSION=15" >> $GITHUB_ENV + sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer + echo "LDFLAGS=-Wl,-ld_classic -Wl,-commons,use_dylibs" >> $GITHUB_ENV + fi + + - name: Install + run: | + brew install m4 git bison hdf5 wget autoconf automake + brew remove llvm@$LLVM_VERSION + + - name: Symlink gfortran + run: ./etc/actions/macos/link_fortran.sh "$(uname -p)" + + - name: Configure + run: | + autoreconf -i + ./configure --enable-download ${{ matrix.cfg.opts }} \ + --prefix="${HOME}/freefem" + ./3rdparty/getall -a -o PETSc + + - name: PETSc + run: | + cd 3rdparty/ff-petsc + make petsc-slepc + cd - + ./reconfigure + + - name: Upload PETSc and reconfigure logs on fail + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: PETSc-reconfigure-logs + path: | + 3rdparty/ff-petsc/petsc-*/configure.log + config.log + compression-level: 9 + + - name: Build + run: make -j 3 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh + + - name: Install + run: make install diff --git a/.github/workflows/full-msmpi.yml b/.github/workflows/full-msmpi.yml new file mode 100644 index 000000000..fe2abf50e --- /dev/null +++ b/.github/workflows/full-msmpi.yml @@ -0,0 +1,107 @@ +# Full version of FreeFem, using Microsoft MS-MPI +name: Full version MS-MPI + +on: + push: + branches: + - develop + - master + + pull_request: + branches: + - develop + +# For development phase + workflow_dispatch: + +jobs: + windows: + strategy: + fail-fast: false + matrix: + cfg: +# - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: Windows Server 2022 with ${{ matrix.cfg.opts }} - ${{github.workflow}} + runs-on: windows-2022 + + defaults: + run: + shell: msys2 {0} + + steps: + - name: Setup MPI + uses: mpi4py/setup-mpi@v1 + with: + mpi: msmpi + + - uses: msys2/setup-msys2@v2 + with: + update: true + install: >- + mingw-w64-x86_64-toolchain + make + m4 + patch + git + flex + bison + unzip + mingw-w64-x86_64-gcc-fortran + mingw-w64-x86_64-openblas + mingw-w64-x86_64-hdf5 + mingw-w64-x86_64-gsl + autoconf + automake-wrapper + pkg-config + pkgfile + tar + mingw-w64-x86_64-cmake + mingw-w64-x86_64-msmpi + python + + # Otherwise PETSc doesn't know which python to use and returns error at + # configure + - name: Remove packages + run: | + pacman -R --noconfirm mingw-w64-x86_64-python mingw-w64-x86_64-gdb \ + mingw-w64-x86_64-gdb-multiarch + + - uses: actions/checkout@v4 + + - name: Configure + run: | + autoreconf -i + ./configure ${{ matrix.cfg.opts }} --enable-download \ + --enable-maintainer-mode \ + --prefix="${HOME}/freefem" \ + --with-mpipath="/c/Progam Files/Microsoft MPI/Bin" + MPICC=mpicc MPICXX=mpicxx MPIFC=mpif90 + ./3rdparty/getall -a -o PETSc + + - name: PETSc + run: | + cd 3rdparty/ff-petsc + make petsc-slepc + cd - + ./reconfigure + + - name: Upload PETSc and reconfigure logs on fail + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: PETSc-reconfigure-logs + path: | + 3rdparty/ff-petsc/petsc-*/configure.log + config.log + compression-level: 9 + + - name: Build + run: make -j 4 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh diff --git a/.github/workflows/full-openmpi.yml b/.github/workflows/full-openmpi.yml new file mode 100644 index 000000000..1ce38d9cf --- /dev/null +++ b/.github/workflows/full-openmpi.yml @@ -0,0 +1,78 @@ +# Full version of FreeFem, using OpenMPI +name: Full version OpenMPI + +on: + push: + branches: + - develop + - master + + pull_request: + branches: + - develop + + # For development phase + workflow_dispatch: + +jobs: + linux: + strategy: + fail-fast: false + matrix: + version: [22.04, 24.04] + cfg: + - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: Ubuntu ${{ matrix.version }} with ${{ matrix.cfg.opts }} \ + - ${{ github.workflow }} + + runs-on: ubuntu-${{ matrix.version }} + + steps: + - uses: actions/checkout@v4 + + - name: Install + run: | + sudo apt update + sudo apt install gcc g++ gfortran m4 patch git wget cmake \ + libhdf5-dev libgsl-dev flex bison autoconf automake \ + autotools-dev libopenmpi-dev + + - name: Configure + run: | + autoreconf -i + ./configure --enable-download ${{ matrix.cfg.opts }} \ + --prefix="${HOME}/freefem" + ./3rdparty/getall -a -o PETSc + + - name: PETSc + run: | + cd 3rdparty/ff-petsc + make petsc-slepc + cd - + ./reconfigure + + - name: Upload PETSc and reconfigure logs on fail + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: PETSc-reconfigure-logs + path: | + 3rdparty/ff-petsc/petsc-*/configure.log + config.log + compression-level: 9 + + - name: Build + run: make -j 4 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh + + - name: Install + run: make install + +# No test for MacOS, the homebrew bottle open-mpi seems broken. diff --git a/.github/workflows/minimal.yml b/.github/workflows/minimal.yml new file mode 100644 index 000000000..e610cde2b --- /dev/null +++ b/.github/workflows/minimal.yml @@ -0,0 +1,138 @@ +name: Minimal version +on: + push: + branches: + - develop + - master + + pull_request: + branches: + - develop + + # For development phase + workflow_dispatch: + +jobs: + linux: + strategy: + fail-fast: false + matrix: + version: [22.04, 24.04] + cfg: + - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: Ubuntu ${{ matrix.version }} with ${{ matrix.cfg.opts }} - ${{ github.workflow }} + runs-on: ubuntu-${{ matrix.version }} + + steps: + - uses: actions/checkout@main + + - name: Install + run: | + sudo apt update + sudo apt install autoconf gcc g++ gfortran m4 patch git liblapack-dev flex bison + + - name: Configure + run: | + autoreconf -i + ./configure --without-mpi ${{ matrix.cfg.opts }} --prefix="${HOME}/freefem" + + - name: Build + run: make -j 4 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh + + - name: Install + run: make install + + macos: + strategy: + fail-fast: false + matrix: + version: [13, 14, 15] + cfg: + - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: MacOS ${{ matrix.version }} with ${{ matrix.cfg.opts }} - ${{ github.workflow }} + runs-on: macos-${{ matrix.version }} + + steps: + - uses: actions/checkout@main + + # Automake is necessary on MacOS since aclocal is not included in autoconf + - name: Install + run: brew install gcc autoconf automake m4 git flex bison + + - name: Symlink GCC & Fortran + run: ./etc/actions/macos/link_fortran.sh "$(uname -p)" + + - name: Configure + run: | + autoreconf -i + ./configure --without-mpi ${{ matrix.cfg.opts }} --prefix="${HOME}/freefem" + + - name: Build + run: make -j 3 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh + + - name: Install + run: make install + + windows: + strategy: + fail-fast: false + matrix: + cfg: + - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: Windows Server 2022 with ${{ matrix.cfg.opts }} - ${{ github.workflow }} + runs-on: windows-2022 + + defaults: + run: + shell: msys2 {0} + + steps: + - uses: msys2/setup-msys2@v2 + with: + update: true + install: >- + mingw-w64-x86_64-gcc-fortran + mingw-w64-x86_64-toolchain + mingw-w64-x86_64-autotools + make + m4 + patch + git + flex + bison + unzip + mingw-w64-x86_64-lapack + + - uses: actions/checkout@v4 + + - name: Configure + run: | + autoreconf -i + ./configure --without-mpi ${{ matrix.cfg.opt }} --prefix="${HOME}/freefem" + + - name: Build + run: make -j 4 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh diff --git a/.github/workflows/sequential.yml b/.github/workflows/sequential.yml new file mode 100644 index 000000000..364cd8d27 --- /dev/null +++ b/.github/workflows/sequential.yml @@ -0,0 +1,149 @@ +name: Sequential version + +on: + push: + branches: + - develop + - master + + pull_request: + branches: + - develop + + # For development phase + workflow_dispatch: + +jobs: + linux: + strategy: + fail-fast: false + matrix: + version: [22.04, 24.04] + cfg: + - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: Ubuntu ${{ matrix.version }} with ${{ matrix.cfg.opts }} - ${{ github.workflow }} + runs-on: ubuntu-${{ matrix.version }} + + steps: + - uses: actions/checkout@main + + - name: Install + run: | + sudo apt update + sudo apt install gcc g++ gfortran m4 patch \ + git libblas-dev liblapack-dev libhdf5-dev libgsl-dev flex bison \ + wget cmake autoconf automake autotools-dev + + - name: Configure + run: | + autoreconf -i + ./configure --enable-download --without-mpi ${{ matrix.cfg.opts }} --prefix="${HOME}/freefem" + ./3rdparty/getall -a -o ARPACK,METIS,Scotch,SuiteSparse,SuperLU,mmg,Boost,libpthread-google,TetGen,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet + + - name: Build + run: make -j 4 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh + + - name: Install + run: make install + + macos: + strategy: + fail-fast: false + matrix: + version: [13, 14, 15] + cfg: + - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: MacOS ${{ matrix.version }} with ${{ matrix.cfg.opts }} - ${{ github.worflow }} + runs-on: macos-${{ matrix.version }} + + steps: + - uses: actions/checkout@main + + - name: Install + run: brew install gcc m4 git flex bison suitesparse hdf5 cmake wget autoconf automake + + - name: Symlink GCC & Fortran + run: ./etc/actions/macos/link_fortran.sh "$(uname -p)" + + - name: Configure + run: | + autoreconf -i + ./configure --enable-download --without-mpi ${{ matrix.cfg.opts }} --prefix="${HOME}/freefem" + ./3rdparty/getall -a -o ARPACK,METIS,Scotch,SuiteSparse,SuperLU,mmg,Boost,libpthread-google,TetGen,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet + + - name: Build + run: make -j 3 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh + + - name: Install + run: make install + + windows: + strategy: + fail-fast: false + matrix: + cfg: +# - {opts: --enable-debug} + - {opts: --enable-optim --enable-generic} + + name: Windows Server 2022 with ${{ matrix.cfg.opts }} - ${{github.workflow}} + runs-on: windows-2022 + + defaults: + run: + shell: msys2 {0} + + steps: + - uses: msys2/setup-msys2@v2 + with: + update: true + install: >- + mingw-w64-x86_64-gcc-fortran + mingw-w64-x86_64-toolchain + mingw-w64-x86_64-autotools + make + m4 + patch + git + flex + bison + unzip + mingw-w64-x86_64-openblas + mingw-w64-x86_64-hdf5 + mingw-w64-x86_64-gsl + pkg-config + pkgfile + tar + mingw-w64-x86_64-cmake + + - uses: actions/checkout@v4 + + - name: Configure + run: | + autoreconf -i + ./configure --enable-download --without-mpi ${{ matrix.cfg.opts }} --prefix="${HOME}/freefem" + ./3rdparty/getall -a -o ARPACK,METIS,Scotch,SuiteSparse,SuperLU,mmg,Boost,libpthread-google,TetGen,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet + + - name: Build + run: make -j 4 + + - name: Check + run: | + make check -i + echo "Tests failed: " $(grep :test-result examples/*/*.trs | grep FAIL | wc -l) + ./etc/actions/failed_tests_logs.sh diff --git a/.gitignore b/.gitignore index 02e76ab14..2707daf77 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ *freefem++.pref WHERE* CheckAll-out +build examples/*/*.b examples/*/*.dat examples/*/*.dt diff --git a/3rdparty/getall b/3rdparty/getall index 0f9d0bd95..ffbe8bfe1 100755 --- a/3rdparty/getall +++ b/3rdparty/getall @@ -24,17 +24,17 @@ use strict; use Getopt::Std; -use Digest::MD5 qw(md5_hex); # [[http://perldoc.perl.org/Digest/MD5.html]] +use Digest::MD5 qw(md5_hex); # [[http://perldoc.perl.org/Digest/MD5.html]] # This download script needs to be able to work on platforms that do not have threads (eg Mingw). -my $can_use_threads=eval 'use threads;use threads::shared;1'; +my $can_use_threads = eval 'use threads;use threads::shared;1'; my %opts; -getopts('afho:',\%opts); +getopts( 'afho:', \%opts ); -if($opts{h}){ - print <create(\&downloadone,$_)} - foreach(@threads){$_->join()} +if ($can_use_threads) { + my @threads; + foreach (@downloads) { push @threads, threads->create( \&downloadone, $_ ) } + foreach (@threads) { $_->join() } } -else{ - foreach(@downloads){downloadone($_)} +else { + foreach (@downloads) { downloadone($_) } } -if($errors ne ''){ - print "\n$errors"; - exit 1; +if ( $errors ne '' ) { + print "\n$errors"; + exit 1; } -sub download{ - my($title,$url,$lic,$pkg,$md5,$opts)=@_; - - # skip packages that have not been requested explicitely - return if($only && !defined $packs{$title}); - - # skip packages that are already present - if(-f "pkg/$pkg" && !$opts{f}){ - my $md5check=md5_hex(`cat pkg/$pkg`); - if( ( $md5 eq "none") || ($md5check eq $md5)){ - print "$title $pkg done\n"; - return; - } - else { - print "$title $pkg md5 change => reget \n"; - } - } - - # we do not store the answers to these questions. To repeat the same downloads without manual input, options "-a" and - # "-o names" are provided. - - if(!$opts{a}){ - print "$title: please check the licence at $lic. Do you want to download $url? (yN)\n"; - my $ans=uc ; - chomp $ans; - return if $ans ne 'Y'; - } - - # uses [[file:../bin/build/download]] - push @downloads,"$url,$pkg,$md5,$opts"; +sub download { + my ( $title, $url, $lic, $pkg, $md5, $opts ) = @_; + + # skip packages that have not been requested explicitely + return if ( $only && !defined $packs{$title} ); + + # skip packages that are already present + if ( -f "pkg/$pkg" && !$opts{f} ) { + my $md5check = md5_hex(`cat pkg/$pkg`); + if ( ( $md5 eq "none" ) || ( $md5check eq $md5 ) ) { + print "$title $pkg done\n"; + return; + } + else { + print "$title $pkg md5 change => reget \n"; + } + } + +# we do not store the answers to these questions. To repeat the same downloads without manual input, options "-a" and +# "-o names" are provided. + + if ( !$opts{a} ) { + print +"$title: please check the licence at $lic. Do you want to download $url? (yN)\n"; + my $ans = uc ; + chomp $ans; + return if $ans ne 'Y'; + } + + # uses [[file:../bin/build/download]] + push @downloads, "$url,$pkg,$md5,$opts"; } sub downloadone{ @@ -271,7 +268,14 @@ sub downloadone{ print "Try (2 times) other site: $url\n"; system $cmd; if ($?){ - $errors.="ERROR: $cmd FAILED\n" + print "Download 3 times failed from $url of $pkg\n"; + my $url="https://joliv.et/freefem/pkg/$pkg"; + my $cmd="../bin/build/download $url pkg/$pkg $opts"; + print "Try (2 times) other site: $url\n"; + system $cmd; + if ($?){ + $errors.="ERROR: $cmd FAILED\n" + } } } @@ -280,7 +284,7 @@ sub downloadone{ my $md5check=md5_hex(`cat pkg/$pkg`); if( ( $md5 ne "none") && ($md5check ne $md5)){ print "Download failed (MD5 check $md5check ) from $url of $pkg\n"; - my $url="https://www.ljll.fr/hecht/pkg/$pkg"; + my $url="https://www.ljll.fr/hecht/pkg/$pkg"; my $cmd="../bin/build/download $url pkg/$pkg $opts"; print "Try other site: $url\n"; system $cmd; diff --git a/Makefile.am b/Makefile.am index d9691e0b2..13e2499a3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -102,14 +102,6 @@ EXTRA_DIST=README.md CHANGELOG.md AUTHORS\ etc/logo/logo.bmp \ etc/doxygen/mainpage.dox \ etc/doxygen/Doxyfile \ - etc/jenkins \ - etc/jenkins/install.sh \ - etc/jenkins/deployDEB.sh \ - etc/jenkins/build.sh \ - etc/jenkins/check.sh \ - etc/jenkins/configure.sh \ - etc/jenkins/clean.sh \ - etc/jenkins/build_PETSc.sh \ etc/ff/ff.xcodeproj \ etc/ff/ff.xcodeproj/project.pbxproj \ readme/BUGS readme/HISTORY_BEFORE_2005 readme/README_MAC.md readme/TODO \ diff --git a/README.md b/README.md index d51b2248a..5b168851d 100644 --- a/README.md +++ b/README.md @@ -15,40 +15,13 @@ -
- CI / CD tools +# FreeFEM Continuous Integration -| LGTM | Coverity | -|:----:|:--------:| -| [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/FreeFem/FreeFem-sources.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/FreeFem/FreeFem-sources/context:cpp) | Coverity Scan Build Status | +| Minimal version | Full version MPICH | +|:------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------:| +| ![Minimal version](https://github.com/FreeFem/FreeFem-sources/actions/workflows/minimal.yml/badge.svg) | ![Full version MPICH](https://github.com/FreeFem/FreeFem-sources/actions/workflows/full-mpich.yml/badge.svg) | -Jenkins ([FreeFEM-dev](https://ci.inria.fr/freefem-dev/)): - -*Develop branch only* - -| | macOS | Ubuntu | Windows| -|:-------:|:---------:|:---------:|:------:| -| **Job** | **10.14** | **20.04** | **10** | -| #1 | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job1)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job1/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job1)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job1/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-windows10-job1)](https://ci.inria.fr/freefem-dev/view/Windows%207/job/FreeFEM-sources-windows10-job1/) | -| #2 | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job2)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job2/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job2)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job2/) | | -| #3 |[![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job3)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job3/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job3)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job3/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-windows10-job3)](https://ci.inria.fr/freefem-dev/view/Windows%207/job/FreeFEM-sources-windows10-job3/) | -| #4 (OpenMPI) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job4_openmpi)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job4_openmpi/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job4_openmpi)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job4_openmpi/) | | -| #4 (MPICH) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job4_mpich)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job4_mpich/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job4_mpich)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job4_mpich/) | | -| #4 (MSMPI) | | | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-windows10-job4)](https://ci.inria.fr/freefem-dev/view/Windows%207/job/FreeFEM-sources-windows10-job4/) | -| #5 (OpenMPI) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job5_openmpi)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job5_openmpi/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job5_openmpi)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job5_openmpi/) | | -| #5 (MPICH) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-macos1014-job5_mpich)](https://ci.inria.fr/freefem-dev/job/FreeFEM-sources-macos1014-job5_mpich/) | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-ubuntu2004-job5_mpich)](https://ci.inria.fr/freefem-dev/view/Ubuntu%2020.04/job/FreeFEM-sources-ubuntu2004-job5_mpich/) | | -| #5 (MSMPI) | | | [![Build Status](https://ci.inria.fr/freefem-dev/buildStatus/icon?job=FreeFEM-sources-windows10-job5)](https://ci.inria.fr/freefem-dev/view/Windows%207/job/FreeFEM-sources-windows10-job5/) | - -Jenkins ([FreeFEM](https://ci.inria.fr/freefem/)): - -*Master branch* - -| Release | .pkg | AppImage | .deb | .exe | Docker | -|:-------:|:----:|:--------:|:----:|:----:|:------:| -| [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-sources-createRelease)](https://ci.inria.fr/freefem/view/Master/job/FreeFEM-sources-createRelease/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-sources-deployPKG)](https://ci.inria.fr/freefem/view/Master/job/FreeFEM-sources-deployPKG/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-sources-deployAppImage)](https://ci.inria.fr/freefem/view/Master/job/FreeFEM-sources-deployAppImage/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-sources-deployDEB)](https://ci.inria.fr/freefem/view/Master/job/FreeFEM-sources-deployDEB/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=deployEXE)](https://ci.inria.fr/freefem/view/Master/job/deployEXE/) | [![Build Status](https://ci.inria.fr/freefem/buildStatus/icon?job=FreeFEM-docker)](https://ci.inria.fr/freefem/view/Docker/job/FreeFEM-docker/) | - -See [CI/CD Tools](#cicd-tools) -
+More details [here](.github/CI.md). # FreeFEM sources @@ -65,6 +38,7 @@ The user documentation is available [here](https://github.com/FreeFem/FreeFem-do If you use FreeFEM for academic research, please use the following: **BibTeX:** + ``` @article{MR3043640, AUTHOR = {Hecht, F.}, @@ -81,16 +55,19 @@ If you use FreeFEM for academic research, please use the following: ``` **APA:** + ``` Hecht, F. (2012). New development in FreeFem++. Journal of numerical mathematics, 20(3-4), 251-266. ``` **ISO 690:** + ``` HECHT, Frédéric. New development in FreeFem++. Journal of numerical mathematics, 2012, vol. 20, no 3-4, p. 251-266. ``` **MLA:** + ``` Hecht, Frédéric. "New development in FreeFem++." Journal of numerical mathematics 20.3-4 (2012): 251-266. ``` @@ -102,72 +79,3 @@ All development efforts take place in the _develop_ branch (or in feature branch **Do not commit on master branch!** Have a look on the [Wiki](https://github.com/FreeFem/FreeFem-sources/wiki)! - -## CI/CD Tools - -### FreeFEM-dev - -See [Jenkins configuration files](etc/jenkins) - -### FreeFEM - -All: all dependency packages are installed (computer with root access).
-No: dependency packages are not installed (computer without root access). - -1: Ubuntu 18.04 x86 - -2: macOS 10.13 - -3: macOS 10.9 - -4: Windows 7 + MSYS2 + MS MPI 7 - -__Executed commands:__ - -Automatic configuration: - -```bash -autoreconf -i -``` - -Configuration: - -```bash -./configure --enable-download --enable-optim -``` - -If you do not have administrator rights or do not want FreeFEM files scattered around on your machine, please use the `--prefix` option, e.g.: - -```bash -./configure --enable-download --enable-optim --prefix=${HOME}/FreeFem-install -``` - -Download: - -```bash -./3rdparty/getall -a -``` - -PETSc: - -```bash -cd 3rdparty/ff-petsc -make petsc-slepc -cd - -./reconfigure -``` - -Make: - -```bash -make -j2 -make check -``` - -Install: - -```bash -(sudo) make install -``` - -See [CI/CD Tools Wiki](https://github.com/FreeFem/FreeFem-sources/wiki/CI-CD-Tools) for more informations. diff --git a/bin/change-dylib-gfortran b/bin/change-dylib-gfortran index fec652130..45f73920b 100755 --- a/bin/change-dylib-gfortran +++ b/bin/change-dylib-gfortran @@ -1,8 +1,8 @@ -#!/bin/bash -## change path gfortran lib in freefem install +#!/bin/bash +## change path gfortran lib in freefem install ## usage : change-dylibgfortran oldlibdir newlibdir libnam1 libnam2 list of dylyb file pathname to change ... -## F. hecht sep. 2023 on MoOS Ventura , Monterey -## remark the file $oldlibdir/$libnam1 , ... must exist ... +## F. hecht sep. 2023 on MoOS Ventura , Monterey +## remark the file $oldlibdir/$libnam1 , ... must exist ... olddir=$1 shift newdir=$1 @@ -14,36 +14,35 @@ shift lib3=$1 shift - -if test -f "$olddir/$lib1" -a -f "$olddir/$lib2" -a -f "$olddir/$lib3" \ - -a -f "$newdir/$lib1" -a -f "$newdir/$lib2" -a -f "$newdir/$lib3" ; then -for ff in $@; do -ch=0 -for lib in $lib1 $lib2 $lib3; do - old=$olddir/$lib - new=$newdir/$lib - nnl=`otool -L $ff|grep $lib|awk '{print $1}'` - case $nnl in - /* ) old=$nnl - esac -# echo "old .. " $old $nnl -# otool -L $ff|awk "/$lib/ "'{print $1}' - nn=`otool -L $ff|grep $old|wc -l` -# echo "nn=" $nn $nnl $old - otool -L $ff| grep brew - if test $nn -ne 0 ; then -# echo ..change $old to $new in $ff - ch=1 - echo change $old to $new1 in $ff - install_name_tool -change $old $new $ff - fi - done - if test $ch -eq 1 ; then - codesign --remove-signature $ff - codesign -s - $ff - fi - done +if test -f "$olddir/$lib1" -a -f "$olddir/$lib2" -a -f "$olddir/$lib3" \ + -a -f "$newdir/$lib1" -a -f "$newdir/$lib2" -a -f "$newdir/$lib3"; then + for ff in $@; do + ch=0 + for lib in $lib1 $lib2 $lib3; do + old=$olddir/$lib + new=$newdir/$lib + nnl=$(otool -L $ff | grep $lib | awk '{print $1}') + case $nnl in + /*) old=$nnl ;; + esac + # echo "old .. " $old $nnl + # otool -L $ff|awk "/$lib/ "'{print $1}' + nn=$(otool -L $ff | grep $old | wc -l) + # echo "nn=" $nn $nnl $old + otool -L $ff | grep brew + if test $nn -ne 0; then + # echo ..change $old to $new in $ff + ch=1 + echo change $old to $new1 in $ff + install_name_tool -change $old $new $ff + fi + done + if test $ch -eq 1; then + codesign --remove-signature $ff + codesign -s - $ff + fi + done else - echo "$olddir/$lib1" "$olddir/$lib2" "$olddir/$lib3" do some not exist! - echo "$newdir/$lib1" "$newdir/$lib2" "$newdir/$lib3" do not exist! -fi \ No newline at end of file + echo "$olddir/$lib1" "$olddir/$lib2" "$olddir/$lib3" do some not exist! + echo "$newdir/$lib1" "$newdir/$lib2" "$newdir/$lib3" do not exist! +fi diff --git a/bin/compile-version-MacOS b/bin/compile-version-MacOS index a9bcb07a1..5bba0a952 100755 --- a/bin/compile-version-MacOS +++ b/bin/compile-version-MacOS @@ -17,61 +17,73 @@ optionconf= nameopt= export dirdmgpkg= case $3 in -*generic*) optionconf+=--enable-generic;; +*generic*) optionconf+=--enable-generic ;; esac case $3 in -*debug*) optionconf+=--enable-debug;nameopt+=-g;; +*debug*) + optionconf+=--enable-debug + nameopt+=-g + ;; esac case $3 in -*optim*) optionconf+=--enable-optim;nameopt+=-O;; +*optim*) + optionconf+=--enable-optim + nameopt+=-O + ;; esac addprefix=$4 addconf=$5 +export CC=clang +export CXX=clang++ + echo " option de configuration" $optionconf echo ========================================================== ## stop on error .... -set -e -#-x -dirscript=`dirname $0` +set -e +#-x +dirscript=$(dirname $0) case $dirscript in -".") dirscript=$PWD;; -[^/]*) dirscript=$PWD/"$dirscript";; +".") dirscript=$PWD ;; +[^/]*) dirscript=$PWD/"$dirscript" ;; esac # compute the number of jobs possible ... -njob=$(( $(sysctl -n hw.ncpu)*2 )) +njob=$(($(sysctl -n hw.ncpu) * 2)) # echo $dirscript mvdylib=$dirscript/move-dylib changedylibgfortran=$dirscript/change-dylib-gfortran-2 #myver=`git describe --tags` -arch=`arch` +arch=$(arch) case $arch in -*x86*) ARCH=Intel;; -*i386*) ARCH=Intel;; -*arm64*) ARCH=Apple-Silicon;; -*) echo2 "unknow arch, stop" ; exit 1;; -esac; +*x86*) ARCH=Intel ;; +*i386*) ARCH=Intel ;; +*arm64*) ARCH=Apple-Silicon ;; +*) + echo2 "unknow arch, stop" + exit 1 + ;; +esac echo ARCH = $ARCH ... tmp=/tmp cd $dircompilation -test -d $gitbranch-ff++ || git clone -b $gitbranch https://github.com/FreeFem/FreeFem-sources.git $gitbranch-ff++ +test -d $gitbranch-ff++ || git clone -b $gitbranch https://github.com/FreeFem/FreeFem-sources.git $gitbranch-ff++ cd $gitbranch-ff++ ffscr=$dircompilation/$gitbranch-ff++ -echo -ver=`git describe --tags` -verb=`git describe --tags| sed s/v// | sed 's/-.*$//'` +echo +ver=$(git describe --tags) +verb=$(git describe --tags | sed s/v// | sed 's/-.*$//') dirpkg=$dircompilation/pkg-ff-$gitbranch-$ver dirdmgpkg=FreeFEM-$ver-$ARCH$nameopt LOG=$dircompilation/log-ff-$ver-$ARCH$nameopt.log echo the LOG file $LOG -exec 1>$LOG 2>&1 # save log is $LOG +# exec 1>$LOG 2>&1 # save log is $LOG -echo2 compilation FreeFEM version ${ver} on Mac ${arch} in $(pwd) +echo2 compilation FreeFEM version ${ver} on Mac ${arch} in $(pwd) echo2 ========================================================== prefix=/Applications/FreeFem++.app/Contents/ff-$verb$addprefix #prefix=/usr/local/ff-$verb$addprefix @@ -85,29 +97,32 @@ echo2 copy lib fortran in $prefix/gnu/ ## copy lib fortran in $prefix/gnu/ echo2 ========================================================== ( -fftmp=/tmp/ff++-tmp-$$ -test -d fftmp ||mkdir $fftmp -cd $ffsrc -printf " program sizeofint\n integer i\n end\n" >$fftmp/ffff.f -gfortran $fftmp/ffff.f -o $fftmp/ffff -(export DYLD_PRINT_LIBRARIES=1;$fftmp/ffff ) 2>&1 | awk '{print $NF}'| egrep -v '/usr/lib|$fftmp/ffff|grep .dylib' >$prefix/gnu/list-dylib-gfortran -rm -rf $fftmp + fftmp=/tmp/ff++-tmp-$$ + test -d fftmp || mkdir $fftmp + cd $ffsrc + printf " program sizeofint\n integer i\n end\n" >$fftmp/ffff.f + gfortran $fftmp/ffff.f -o $fftmp/ffff + ( + export DYLD_PRINT_LIBRARIES=1 + $fftmp/ffff + ) 2>&1 | awk '{print $NF}' | egrep -v '/usr/lib|$fftmp/ffff|grep .dylib' >$prefix/gnu/list-dylib-gfortran + rm -rf $fftmp ) -brewlibgfortran=`grep gfortran $prefix/gnu/list-dylib-gfortran` -brewlibquadmath=`grep libquadmath $prefix/gnu/list-dylib-gfortran` -brewlibgcc_s=`grep libgcc_s $prefix/gnu/list-dylib-gfortran` -( -cd $(dirname $brewlibgfortran) -cp -f libgfortran.5.dylib libquadmath.0.dylib libgcc_s.1.1.dylib $prefix/gnu/ -cd $prefix/gnu/ -ln -sf libgfortran.?.dylib libgfortran.dylib -ln -sf libquadmath.?.dylib libquadmath.dylib -## inutile ???? je ne retouve plus cette lib ???? FH.. -test -d /opt/homebrew && libemutls_w=`find /opt/homebrew -name libemutls_w.a` -if [ -f "$libemutls_w" ] ; then - cp $libemutls_w . -fi -$mvdylib $prefix/gnu $prefix/gnu/*.dylib +brewlibgfortran=$(grep gfortran $prefix/gnu/list-dylib-gfortran) +brewlibquadmath=$(grep libquadmath $prefix/gnu/list-dylib-gfortran) +brewlibgcc_s=$(grep libgcc_s $prefix/gnu/list-dylib-gfortran) +( + cd $(dirname $brewlibgfortran) + cp -f libgfortran.5.dylib libquadmath.0.dylib libgcc_s.1.1.dylib $prefix/gnu/ + cd $prefix/gnu/ + ln -sf libgfortran.?.dylib libgfortran.dylib + ln -sf libquadmath.?.dylib libquadmath.dylib + ## inutile ???? je ne retouve plus cette lib ???? FH.. + test -d /opt/homebrew && libemutls_w=$(find /opt/homebrew -name libemutls_w.a) + if [ -f "$libemutls_w" ]; then + cp $libemutls_w . + fi + $mvdylib $prefix/gnu $prefix/gnu/*.dylib ) dirlibgfortranold=$(dirname $brewlibgfortran) dirlibgfortrannew=$prefix/gnu @@ -115,8 +130,8 @@ libgfortrandylib=$(basename $brewlibgfortran) libquadmathdylib=$(basename $brewlibquadmath) libgccsdylib=$(basename $brewlibgcc_s) echo2 dylibfort : $libgfortrandylib $libquadmathdylib $libgccsdylib -cd - -test -d pkg || mkdir -v pkg +cd - +test -d pkg || mkdir -v pkg ( VERSION_MPI=4.3.0 VERSION_GSL=2.8 @@ -190,27 +205,27 @@ grep use_dylibs mpicc mpicxx mpifort echo2 "succeed to compile gsl, hdf5 in intsall petsc real and complex in $prefix dir" ) -echo2 ================================ -echo2 compilation de freefem++ -echo2 ================================ + echo2 ================================ + echo2 compilation de freefem++ + echo2 ================================ -./reconfigure -make -j $njob + ./reconfigure + make -j $njob ) -make FreeFem++.app.tgz +make FreeFem++.app.tgz echo2 ================================ -echo2 instalation de freefem++ in $dirpkg +echo2 instalation de freefem++ in $dirpkg echo2 ================================ ## copy pre installed in DESTDIR ($dirpkg) mkdir -p $dirpkg/$prefix || echo2 dir $dirpkg/$prefix exist -echo2 create Mac application in $dirpkg/Applications bof bof !! -tar zxvf FreeFem++.app.tgz -C $dirpkg/Applications -echo2 rsync -av $prefix/. $dirpkg/$prefix/. -rsync -av $prefix/. $dirpkg/$prefix/. +echo2 create Mac application in $dirpkg/Applications bof bof !! +tar zxvf FreeFem++.app.tgz -C $dirpkg/Applications +echo2 rsync -av $prefix/. $dirpkg/$prefix/. +rsync -av $prefix/. $dirpkg/$prefix/. make install DESTDIR=$dirpkg # remove ref on fg echo2 ================================ -echo2 fix gfortran lib distribution $dirpkg/$prefix +echo2 fix gfortran lib distribution $dirpkg/$prefix echo2 ================================ tmpdylib=/tmp/dylib-ff-$$.txt tmplst=/tmp/otool-ff-$$.txt @@ -224,55 +239,55 @@ done ## verification echo2 dylib to brew in installation for debug !!!! cat $tmpdylib| xargs otool -L | egrep -i 'brew|/opt/' ||echo2 OK - + echo2 ================================ -## build of PACKAGE directory -echo2 build of PACKAGE/DMG directory /tmp/$dirdmgpkg +## build of PACKAGE directory +echo2 build of PACKAGE/DMG directory /tmp/$dirdmgpkg echo2 ================================ -## to rebuild all distribution !!! +## to rebuild all distribution !!! test -d /tmp/$dirdmgpkg && rm -rf /tmp/$dirdmgpkg -test -d /tmp/$dirdmgpkg || ( -mkdir /tmp/$dirdmgpkg -cd /tmp/$dirdmgpkg -mv $dirpkg/Applications/FreeFem++.app /tmp/$dirdmgpkg -cp $dirscript/script/Install-app.sh /tmp/$dirdmgpkg -fftestedp=`find . -name Laplace.edp` -sed -e "s/@VV@/$ver/" -e "s%@APPFF@%$dirdmgpkg%" -e s%@FFTEST@%$fftestedp% <$dirscript/script/README.md.in > README.md +test -d /tmp/$dirdmgpkg || ( + mkdir /tmp/$dirdmgpkg + cd /tmp/$dirdmgpkg + mv $dirpkg/Applications/FreeFem++.app /tmp/$dirdmgpkg + cp $dirscript/script/Install-app.sh /tmp/$dirdmgpkg + fftestedp=$(find . -name Laplace.edp) + sed -e "s/@VV@/$ver/" -e "s%@APPFF@%$dirdmgpkg%" -e s%@FFTEST@%$fftestedp% <$dirscript/script/README.md.in >README.md ) # verif brew lib !!! -# remove -e option abort on err -set +e +# remove -e option abort on err +set +e ( -echo2 " verif PB brew lib in installation ?? /tmp/$dirdmgpkg " -listoo=/tmp/list-otool-$$ -find /tmp/$dirdmgpkg -name '*.dylib' |xargs otool -L >$listoo - grep brew $listoo 1>&3 -ret=$? -echo2 "ret : $ret " -if [ "$ret" -eq 0 ] ; then -echo2 " try to refix fortran lib " -find /tmp/$dirdmgpkg -name '*.dylib' |xargs $changedylibgfortran $dirlibgfortrannew -if grep brew $listoo ; then - echo2 " fatal BUG " some brew lib - exit 1; -else - echo " OK no brew lib in dylib" -fi -fi -# clean xattr -xattr -rc /tmp/$dirdmgpkg/FreeFem++.app/ + echo2 " verif PB brew lib in installation ?? /tmp/$dirdmgpkg " + listoo=/tmp/list-otool-$$ + find /tmp/$dirdmgpkg -name '*.dylib' | xargs otool -L >$listoo + grep brew $listoo 1>&3 + ret=$? + echo2 "ret : $ret " + if [ "$ret" -eq 0 ]; then + echo2 " try to refix fortran lib " + find /tmp/$dirdmgpkg -name '*.dylib' | xargs $changedylibgfortran $dirlibgfortrannew + if grep brew $listoo; then + echo2 " fatal BUG " some brew lib + exit 1 + else + echo " OK no brew lib in dylib" + fi + fi + # clean xattr + xattr -rc /tmp/$dirdmgpkg/FreeFem++.app/ ) -set -e +set -e cp $dirscript/script/Install-app.sh /tmp/$dirdmgpkg exec 1>&3 # save log is close $LOG -cat $LOG >> /tmp/$dirdmgpkg/build-log.log +# cat $LOG >>/tmp/$dirdmgpkg/build-log.log # build dmg file $HOME/desktop/$dirdmgpkg.dmg -echo hdiutil create -srcfolder /tmp/$dirdmgpkg -fs HFS+ $HOME/desktop/$dirdmgpkg.dmg +echo hdiutil create -srcfolder /tmp/$dirdmgpkg -fs HFS+ $HOME/desktop/$dirdmgpkg.dmg test -f $HOME/desktop/$dirdmgpkg.dmg && rm $HOME/desktop/$dirdmgpkg.dmg -hdiutil create -srcfolder /tmp/$dirdmgpkg -fs HFS+ $HOME/desktop/$dirdmgpkg.dmg -echo /tmp/$dirdmgpkg +hdiutil create -srcfolder /tmp/$dirdmgpkg -fs HFS+ $HOME/desktop/$dirdmgpkg.dmg +echo /tmp/$dirdmgpkg diff --git a/bin/script/Install-app.sh b/bin/script/Install-app.sh index d10572cef..bd09ec389 100755 --- a/bin/script/Install-app.sh +++ b/bin/script/Install-app.sh @@ -1,99 +1,113 @@ -#!/bin/bash +#!/usr/bin/env bash # Apple # hdiutil create -srcfolder /Users/hecht/Desktop/FF-dmg/FreeFEM-4.12-Apple-M1 -fs HFS+ FreeFEM-4.12-Apple-M1.dmg scriptpath=$0 -cd `dirname $scriptpath` -ppwd=`pwd` +cd $(dirname $scriptpath) +ppwd=$(pwd) vffapp=$ppwd/FreeFem++.app vffver=$ppwd/FreeFem++.app/Contents/ff-* -ffver=`basename $vffver` -ver=`expr "//$ffver" : '//ff-\(.*\)'` -vffexe=$vffver/bin/FreeFem++ -tyexe=`file -b $vffexe` -case $tyexe-`arch` in - *arm64*-*arm64*) ARCH=Apple-Silicon ;echo same arch arm64 arm64 ok;; - *x86*-*x86*) ARCH=Intel; echo same arch x86 x86 ok;; - *x86*-*i386*) ARCH=Intel; echo same arch x86 i386 ok;; - *) echo bad arch : sorry, abort!; exit 1;; - esac +ffver=$(basename $vffver) +ver=$(expr "//$ffver" : '//ff-\(.*\)') +vffexe=$vffver/bin/FreeFem++ +tyexe=$(file -b $vffexe) +case $tyexe-$(arch) in +*arm64*-*arm64*) + ARCH=Apple-Silicon + echo same arch arm64 arm64 ok + ;; +*x86*-*x86*) + ARCH=Intel + echo same arch x86 x86 ok + ;; +*x86*-*i386*) + ARCH=Intel + echo same arch x86 i386 ok + ;; +*) + echo bad arch : sorry, abort! + exit 1 + ;; +esac #sudo cp -rf FreeFem++.app /Applications #sudo xattr -rc /Applications/FreeFem++.app -# echo verif arch +# echo verif arch echo Install FreeFEM version $ver in /Applications/FreeFem++.app/Contents/$ffver/bin ARCH $ARCH -cd +cd filerc=".profile" case "$SHELL" in - *zsh) filerc=".zprofile";; - *bash) filerc=".bash_profile";; - *) echo erreur SHELL $SHELL; exit 1;; -esac; -echo filerc : $filerc +*zsh) filerc=".zprofile" ;; +*bash) filerc=".bash_profile" ;; +*) + echo erreur SHELL $SHELL + exit 1 + ;; +esac +echo filerc : $filerc dirff=/Applications/FreeFem++.app/Contents/$ffver/bin ffexec=/Applications/FreeFem++.app/Contents/$ffver/bin/FreeFem++ ff=$(which FreeFem++) dd=$(dirname "$ff") -if [ ! -x $ffexec ] ; then +if [ ! -x $ffexec ]; then echo " No FreeFem++.app $ffver so copy FreeFem++.app in /Application (with sudo do be sure)" echo ============================= sudo cp -rf $vffapp /Applications - test -L /usr/local/bin/FreeFem++-CoCoa && sudo rm /usr/local/bin/FreeFem++-CoCoa - sudo cp -f /Applications/FreeFem++.app/Contents/$ffver/bin/FreeFem++-CoCoa /usr/local/bin + test -L /usr/local/bin/FreeFem++-CoCoa && sudo rm /usr/local/bin/FreeFem++-CoCoa + sudo cp -f /Applications/FreeFem++.app/Contents/$ffver/bin/FreeFem++-CoCoa /usr/local/bin fi -if test ! -d "$dd" ; then +if test ! -d "$dd"; then echo " bug no directory $dd !" - exit 1; + exit 1 fi -if [ -d $dirff ] ; then +if [ -d $dirff ]; then # verification of com.apple.quarantine - quarantine=`xattr -l /Applications/FreeFem++.app/Contents/$ffver/bin/FreeFem++|grep com.apple.quarantine|wc -l` - if [ $quarantine -ne 0 ] ; then + quarantine=$(xattr -l /Applications/FreeFem++.app/Contents/$ffver/bin/FreeFem++ | grep com.apple.quarantine | wc -l) + if [ $quarantine -ne 0 ]; then echo " remove: com.apple.quarantine from FreeFem++ app (need sudo )" echo do sudo xattr -rc /Applications/FreeFem++.app/ sudo xattr -rc /Applications/FreeFem++.app/ echo " verif quarantine " xattr -l /Applications/FreeFem++.app/Contents/$ffver/bin/FreeFem++ fi -else +else echo " OK : No quarantine " fi -# echo test FreeFem++ with no graphics -/Applications/FreeFem++.app/Contents/$ffver/bin/FreeFem++ /Applications/FreeFem++.app/Contents/$ffver/share/FreeFEM/$ver/examples/tutorial/Laplace.edp -nw +# echo test FreeFem++ with no graphics +/Applications/FreeFem++.app/Contents/$ffver/bin/FreeFem++ /Applications/FreeFem++.app/Contents/$ffver/share/FreeFEM/$ver/examples/tutorial/Laplace.edp -nw -if [ $dd != $dirff ] ; then - echo Update $filerc +if [ $dd != $dirff ]; then + echo Update $filerc echo ============================= - - test -e $filerc || touch $filerc + + test -e $filerc || touch $filerc echo add export PATH=$dirff:\$PATH " >>$filerc" grep -v FreeFem++.app/Contents $filerc >$filerc.new echo export PATH=$dirff:\"\$PATH\" >>$filerc.new diff -u $filerc.new $filerc - if test $? -eq 1; then + if test $? -eq 1; then mv -f $filerc.new $filerc chmod a+x $filerc else rm $filerc.new fi - + fi cd ~/Desktop -echo Create Link of example and Doc +echo Create Link of example and Doc echo ============================= -test -L 'FreeFEM doc and Examples' && rm 'FreeFEM doc and Examples' -test -e 'FreeFEM doc and Examples' || ln -s /Applications/FreeFem++.app/Contents/$ffver/share/FreeFEM/ 'FreeFEM doc and Examples' +test -L 'FreeFEM doc and Examples' && rm 'FreeFEM doc and Examples' +test -e 'FreeFEM doc and Examples' || ln -s /Applications/FreeFem++.app/Contents/$ffver/share/FreeFEM/ 'FreeFEM doc and Examples' cd - - -vvv=`$dirff/FreeFem++ -nw| grep 'version'| wc -l` +vvv=$($dirff/FreeFem++ -nw | grep 'version' | wc -l) if [ $vvv -eq 0 ]; then - echo Error missing install missing lib or quarantine ? + echo Error missing install missing lib or quarantine ? else echo FreeFem++ seems to work! -fi \ No newline at end of file +fi diff --git a/bin/test-driver-ff b/bin/test-driver-ff index 09c3b80ee..6c7f865b3 100755 --- a/bin/test-driver-ff +++ b/bin/test-driver-ff @@ -2,7 +2,7 @@ # test-driver-ff from test-driver - basic testsuite driver script. # modif F. Hecht UPMC. -scriptversion=2013-06-27.18; # UTC +scriptversion=2025-02-21.16; # UTC # Copyright (C) 2011-2013 Free Software Foundation, Inc. # @@ -125,10 +125,12 @@ estatus=$? echo "status " $estatus >>$log_file FAIL_CPU_LIMIT=`tail -100 $log_file|egrep -i 'Cputime limit exceeded|MPIEXEC_TIMEOUT|APPLICATION TIMED OUT|Timeout after'|wc -l` fi - +# Catch ulimit timeout on Linux +if [ $estatus -eq 137 ]; then + FAIL_CPU_LIMIT=2 +fi ## Add an error suffix in order to extract errored tests only -if [ $estatus -ne 0 ] && [ $estatus -ne 77 ] -then +if [ $estatus -ne 0 ] && [ $estatus -ne 77 ]; then cp $log_file "${log_file}.err" fi diff --git a/etc/actions/failed_tests_logs.sh b/etc/actions/failed_tests_logs.sh new file mode 100755 index 000000000..21dc9fd2c --- /dev/null +++ b/etc/actions/failed_tests_logs.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +FAILED_TESTS=( $(grep :test-result examples/*/*.trs | grep FAIL) ) + +for val in ${FAILED_TESTS[@]/#*FAIL/} +do + IFS="::" + read -ra path <<< $val + printf "\n******** ${path%.*}.log ********\n\n" + tail -n 100 ${path%.*}.log + unset IFS +done; diff --git a/etc/actions/macos/link_fortran.sh b/etc/actions/macos/link_fortran.sh new file mode 100755 index 000000000..03cdf1838 --- /dev/null +++ b/etc/actions/macos/link_fortran.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e +set -x + +ARCH=$1 + +LOCAL_PATH=/usr/local +if [ "$ARCH" = "arm" ]; then + LOCAL_PATH=/opt/homebrew +fi + +MAX_GFORTRAN_VERSIONS=$(printf '%s\n' $LOCAL_PATH/bin/gfortran-[0-9]* 2>/dev/null \ + | sort -V \ + | tail -n1) + +sudo ln -fs "$MAX_GFORTRAN_VERSIONS" "$LOCAL_PATH/bin/gfortran" diff --git a/etc/config/m4/WindowsPackage.m4 b/etc/config/m4/WindowsPackage.m4 index 0cc88b2bc..83f48d453 100644 --- a/etc/config/m4/WindowsPackage.m4 +++ b/etc/config/m4/WindowsPackage.m4 @@ -20,7 +20,7 @@ [Setup] AppName=FreeFem++-win`'SIZEOFPTR-VERSION AppVerName=FreeFem++ version VERSION (win SIZEOFPTR bits) -DefaultDirName={pf}\FreeFem++`'SUFF64 +DefaultDirName={commonpf}\FreeFem++`'SUFF64 DefaultGroupName=FreeFem++`'SUFF64 PrivilegesRequired=admin Compression=lzma @@ -96,23 +96,42 @@ Source: "plugin\seq\ff-get-dep"; DestDir: "{app}" IFMGW32 ; mingw32 .... FH. I have put all dll in bin-win32 dir .... -IFMGW32 Source: "C:\MinGW\bin\mingwm10.dll"; DestDir: "{app}" -; Source: "C:\Cygwin\bin\glut32.dll"; DestDir: "{app}" -IFMGW32 Source: "C:\MinGW\msys\1.0\bin\freeglut.dll"; DestDir: "{app}" -IFMGW32 Source: "C:\MinGW\bin\pthreadGC2.dll"; DestDir: "{app}" -IFMGW32 Source: "C:\MinGW\bin\libgcc_s_dw2-1.dll"; DestDir: "{app}" -IFMGW32 Source: "C:\MinGW\bin\libstdc++-6.dll"; DestDir: "{app}" -IFMGW32 Source: "C:\MinGW\bin\libgfortran-*.dll"; DestDir: "{app}" -IFMGW32 Source: "C:\MinGW\bin\libquadmath-*.dll"; DestDir: "{app}" - -IFMGW64 Source: "C:\msys64\mingw64\bin\libgcc_s_seh-*.dll"; DestDir: "{app}" -IFMGW64 Source: "C:\msys64\mingw64\bin\libstdc++-*.dll"; DestDir: "{app}" -IFMGW64 Source: "C:\msys64\mingw64\bin\libwinpthread-1.dll"; DestDir: "{app}" -IFMGW64 Source: "C:\msys64\mingw64\bin\libgfortran-*.dll"; DestDir: "{app}" -IFMGW64 Source: "C:\msys64\mingw64\bin\libquadmath-*.dll"; DestDir: "{app}" -IFMGW64 Source: "C:\msys64\mingw64\bin\libfreeglut.dll"; DestDir: "{app}" -IFMGW64 Source: "C:\msys64\mingw64\bin\libgsl*.dll"; DestDir: "{app}" - +#ifexist "C:\MinGW\bin\mingwm10.dll" + IFMGW32 Source: "C:\MinGW\bin\mingwm10.dll"; DestDir: "{app}" + ; Source: "C:\Cygwin\bin\glut32.dll"; DestDir: "{app}" + IFMGW32 Source: "C:\MinGW\msys\1.0\bin\freeglut.dll"; DestDir: "{app}" + IFMGW32 Source: "C:\MinGW\bin\pthreadGC2.dll"; DestDir: "{app}" + IFMGW32 Source: "C:\MinGW\bin\libgcc_s_dw2-1.dll"; DestDir: "{app}" + IFMGW32 Source: "C:\MinGW\bin\libstdc++-6.dll"; DestDir: "{app}" + IFMGW32 Source: "C:\MinGW\bin\libgfortran-*.dll"; DestDir: "{app}" + IFMGW32 Source: "C:\MinGW\bin\libquadmath-*.dll"; DestDir: "{app}" + + IFMGW64 Source: "C:\msys64\mingw64\bin\libgcc_s_seh-*.dll"; DestDir: "{app}" + IFMGW64 Source: "C:\msys64\mingw64\bin\libstdc++-*.dll"; DestDir: "{app}" + IFMGW64 Source: "C:\msys64\mingw64\bin\libwinpthread-1.dll"; DestDir: "{app}" + IFMGW64 Source: "C:\msys64\mingw64\bin\libgfortran-*.dll"; DestDir: "{app}" + IFMGW64 Source: "C:\msys64\mingw64\bin\libquadmath-*.dll"; DestDir: "{app}" + IFMGW64 Source: "C:\msys64\mingw64\bin\libfreeglut.dll"; DestDir: "{app}" + IFMGW64 Source: "C:\msys64\mingw64\bin\libgsl*.dll"; DestDir: "{app}" +#endif +#ifexist "D:\MinGW\bin\mingwm10.dll" + IFMGW32 Source: "D:\MinGW\bin\mingwm10.dll"; DestDir: "{app}" + ; Source: "D:\Cygwin\bin\glut32.dll"; DestDir: "{app}" + IFMGW32 Source: "D:\MinGW\msys\1.0\bin\freeglut.dll"; DestDir: "{app}" + IFMGW32 Source: "D:\MinGW\bin\pthreadGC2.dll"; DestDir: "{app}" + IFMGW32 Source: "D:\MinGW\bin\libgcc_s_dw2-1.dll"; DestDir: "{app}" + IFMGW32 Source: "D:\MinGW\bin\libstdc++-6.dll"; DestDir: "{app}" + IFMGW32 Source: "D:\MinGW\bin\libgfortran-*.dll"; DestDir: "{app}" + IFMGW32 Source: "D:\MinGW\bin\libquadmath-*.dll"; DestDir: "{app}" + + IFMGW64 Source: "D:\msys64\mingw64\bin\libgcc_s_seh-*.dll"; DestDir: "{app}" + IFMGW64 Source: "D:\msys64\mingw64\bin\libstdc++-*.dll"; DestDir: "{app}" + IFMGW64 Source: "D:\msys64\mingw64\bin\libwinpthread-1.dll"; DestDir: "{app}" + IFMGW64 Source: "D:\msys64\mingw64\bin\libgfortran-*.dll"; DestDir: "{app}" + IFMGW64 Source: "D:\msys64\mingw64\bin\libquadmath-*.dll"; DestDir: "{app}" + IFMGW64 Source: "D:\msys64\mingw64\bin\libfreeglut.dll"; DestDir: "{app}" + IFMGW64 Source: "D:\msys64\mingw64\bin\libgsl*.dll"; DestDir: "{app}" +#endif IFMGW64 ; mingw64 .... FH. I have put all dll in bin-win32 dir .... @@ -154,7 +173,12 @@ IFMPI Source: "examples\bem\*.edp"; DestDir: "{app}\examples\bem" ;Source: "0ldUserReadMe.txt"; DestDir: "{app}\examples\eigen" ;PETSc +#if DirExists("FFPETSC") IFPETSC Source: "FFPETSC\*"; DestDir: "{app}\ff-petsc"; Flags: recursesubdirs +#endif +#if DirExists("D:\a\_temp\msys64\mingw64\ff-petsc\") +IFPETSC Source: "D:\a\_temp\msys64\mingw64\ff-petsc\*"; DestDir: "{app}\ff-petsc"; Flags: recursesubdirs +#endif ; Documentation files may need to be copied from another machine if ; Cygwin refuses to build them. diff --git a/etc/jenkins/README.md b/etc/jenkins/README.md deleted file mode 100644 index a6ddc92c0..000000000 --- a/etc/jenkins/README.md +++ /dev/null @@ -1,305 +0,0 @@ -# Windows 10 - -- [MSYS2](https://www.msys2.org/) -- [git](https://git-scm.com/downloads) -- [Microsoft MPI](https://www.microsoft.com/en-us/download/details.aspx?id=100593) - -MSYS2 packages: - -``` -pacman -S autoconf automake-wrapper bison bsdcpio make git mingw-w64-x86_64-toolchain mingw-w64-x86_64-freeglut patch python \ - flex pkg-config pkgfile tar unzip mingw-w64-x86_64-cmake mingw-w64-x86_64-msmpi mingw-w64-x86_64-gsl \ - mingw-w64-x86_64-hdf5 mingw-w64-x86_64-openblas -pacman -R mingw-w64-x86_64-python mingw-w64-x86_64-gdb mingw-w64-x86_64-gdb-multiarch - -``` - -# Ubuntu 16.04 - VM0 - -``` -sudo apt install gcc g++ gfortran m4 patch git liblapack-dev flex bison -``` - -# Ubuntu 16.04 - VM1 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libopenmpi-dev libhdf5-dev libgsl-dev flex bison -``` - -# Ubuntu 16.04 - VM2 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libhdf5-dev libgsl-dev flex bison wget cmake autoconf automake autotools-dev -``` - -[OpenMPI compilation](#openmpi)4.0.2 -[MPICH compilation](#mpich)3.3.2 - -# Ubuntu 16.04 - VM2-2 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libhdf5-dev libgsl-dev flex bison wget cmake autoconf automake autotools-dev -local Petsc 3.12.4 installed on /Users/Shared (mpich and openmpi version) -``` - -[OpenMPI compilation](#openmpi)4.0.2 -[MPICH compilation](#mpich)3.3.2 - -# Ubuntu 18.04 - VM0 - -``` -sudo apt install gcc g++ gfortran m4 patch git liblapack-dev flex bison -``` - -# Ubuntu 18.04 - VM1 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libopenmpi-dev libhdf5-dev libgsl-dev flex bison -``` - -# Ubuntu 18.04 - VM2 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libhdf5-dev libgsl-dev flex bison wget cmake autoconf automake autotools-dev -``` - -[OpenMPI compilation](#openmpi)4.0.2 -[MPICH compilation](#mpich)3.3.2 - -# Ubuntu 18.04 - VM2-2 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libhdf5-dev libgsl-dev flex bison wget cmake autoconf automake autotools-dev -local Petsc 3.12.4 installed on /Users/Shared (mpich and openmpi version) -``` - -[OpenMPI compilation](#openmpi)4.0.3 -[MPICH compilation](#mpich)3.3.2 - -# Ubuntu 19.10 - VM0 - -``` -sudo apt install gcc g++ gfortran m4 patch git liblapack-dev flex bison -``` - -# Ubuntu 19.10 - VM1 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libopenmpi-dev libhdf5-dev libgsl-dev flex bison -``` - -# Ubuntu 19.10 - VM2 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libhdf5-dev libgsl-dev flex bison wget cmake autoconf automake autotools-dev -``` - -[OpenMPI compilation](#openmpi)4.0.2 -[MPICH compilation](#mpich)3.3.2 - -# Ubuntu 19.10 - VM2-2 - -``` -sudo apt install gcc g++ gfortran m4 patch git libblas-dev liblapack-dev libsuitesparse-dev libhdf5-dev libgsl-dev flex bison wget cmake autoconf automake autotools-dev -local Petsc 3.12.4 installed on /builds/Shared/ (mpich and openmpi version) -``` - -[OpenMPI compilation](#openmpi)4.0.2 -[MPICH compilation](#mpich)3.3.2 - -# MacOS 10.10.5 - VM0 (Xcode 7.2.1, gcc g++ gfortran 5.1) - -``` -brew install gcc@4.9 m4 git flex bison -``` - -# MacOS 10.10.5 - VM1 (Xcode 7.2.1, gcc g++ gfortran 5.1) - -``` -brew install gcc@4.9 m4 git flex bison suitesparse-4.5.4 hdf5 -``` - -# MacOS 10.10.5 - VM2 (Xcode 7.2.1, gcc g++ gfortran 5.1) - -``` -brew install gcc@4.9 m4 git flex bison suitesparse-4.5.4 hdf5 cmake wget autoconf automake -``` - -[OpenMPI compilation](#openmpi) 2.1.6 -[MPICH compilation](#mpich)3.3.2 - -# MacOS 10.10.5 - VM2-2 (Xcode 7.2.1, gcc g++ gfortran 5.1) - -``` -brew install gcc@4.9 m4 git flex bison suitesparse-4.5.4 hdf5 cmake wget autoconf automake -local Petsc 3.12.4 installed on /Users/Shared (mpich and openmpi version) -``` - -[OpenMPI compilation](#openmpi) 2.1.6 -[MPICH compilation](#mpich)3.3.2 - -# MacOS 10.13 - VM0 - -``` -brew install gcc m4 git flex bison -``` - -# MacOS 10.13 - VM1 - -``` -brew install gcc m4 git flex bison suitesparse hdf5 -``` - -# MacOS 10.13 - VM2 - -``` -brew install gcc m4 git flex bison suitesparse hdf5 cmake wget autoconf automake -``` - -[OpenMPI compilation](#openmpi) 4.0.1 -[MPICH compilation](#mpich)3.3.2 - -# MacOS 10.13 - VM2-2 - -``` -brew install gcc m4 git flex bison suitesparse hdf5 cmake wget autoconf automake -local Petsc 3.12.4 installed on /Users/Shared (mpich and openmpi version) -``` - -[OpenMPI compilation](#openmpi)4.0.1 -[MPICH compilation](#mpich)3.3.2 - -# MacOS 10.14 - VM0 - -``` -brew install gcc m4 git flex bison -``` - -# MacOS 10.14 - VM1 - -``` -brew install gcc m4 git flex bison suitesparse hdf5 -``` - -# MacOS 10.14 - VM2 - -``` -brew install gcc m4 git flex bison suitesparse hdf5 cmake wget autoconf automake -``` - -[OpenMPI compilation](#openmpi) 4.0.3 -[MPICH compilation](#mpich)3.3.2 - -# MacOS 10.14 - VM2-2 - -``` -brew install gcc m4 git flex bison suitesparse hdf5 cmake wget autoconf automake -local Petsc 3.12.4 installed on /Users/Shared (mpich and openmpi version) -``` - -[OpenMPI compilation](#openmpi)4.0.3 -[MPICH compilation](#mpich)3.3.2 - -# Windows 7 and 10 - all VM - -``` -pacman -S autoconf automake-wrapper bash bash-completion \ - bison bsdcpio bsdtar bzip2 coreutils curl dash file filesystem \ - findutils flex gawk gcc gcc-fortran gcc-libs grep gzip inetutils info less lndir \ - make man-db git mingw-w64-x86_64-freeglut mingw-w64-x86_64-toolchain mingw-w64-x86_64-gsl mingw-w64-x86_64-hdf5 \ - mingw-w64-x86_64-openblas mintty msys2-keyring \ - msys2-runtime ncurses pacman pacman-mirrors pactoys-git patch pax-git python \ - perl pkg-config pkgfile rebase sed tar tftp-hpa time tzcode unzip util-linux which \ - mingw-w64-x86_64-libmicroutils mingw-w64-x86_64-cmake -pacman -R mingw-w64-x86_64-gcc-ada mingw-w64-x86_64-gcc-objc mingw-w64-x86_64-gdb mingw-w64-x86_64-gdb-multiarch mingw-w64-x86_64-python -``` - -[MSMPI 10.1.2](https://www.microsoft.com/en-us/download/details.aspx?id=100593) - -# OpenMPI - -``` -#MacOS 10.10.5 -curl -L https://download.open-mpi.org/release/open-mpi/v2.1/openmpi-2.1.6.tar.gz--output openmpi-2.1.6.tar.gz -tar xf openmpi-2.1.6.tar.gz -cd openmpi-2.1.6/ -./configure CC=clang CXX=clang++ --prefix=/usr/local VM2 -./configure CC=gcc CXX=g++ --prefix=/usr/local (gcc g++ version5.1) VM2-2 -#MacOS 10.13.5 -curl -L https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.1.tar.gz --output openmpi-4.0.1.tar.gz -tar xf openmpi-4.0.1.tar.gz -cd openmpi-4.0.1/ -./configure CC=clang CXX=clang++ FC=gfortran-9 F77=gfortran-9 --prefix=/usr/local VM2 -./configure CC=gcc-9 CXX=g++-9 FC=gfortran-9 F77=gfortran-9 --prefix=/usr/local VM2-2 -make -j4 all -make check -sudo make install -#Ubuntu 16.04 - Ubuntu 18.04 -openmpi 4.0.2 installed -# Ubuntu 19.10 -openmpi 4.0.3 installed - -``` - -# MPICH - -``` -curl -L http://www.mpich.org/static/downloads/3.3.2/mpich-3.3.2.tar.gz --output mpich-3.3.2.tar.gz -tar xf mpich-3.3.2.tar.gz -cd mpich-3.3.2/ -#MacOS 10.10.5 -./configure CC=clang CXX=clang++ --prefix=/usr/local/mpich3 VM2 -./configure CC=gcc CXX=g++ --prefix=/usr/local/mpich3 (gcc g++ version5.1) VM2-2 -#MacOS 10.13.5 -./configure CC=clang CXX=clang++ FC=gfortran-9 F77=gfortran-9 --prefix=/usr/local/mpich3 VM2 (update v3.3.2) -./configure CC=gcc-9 CXX=g++-9 FC=gfortran-9 F77=gfortran-9 --prefix=/usr/local/mpich3 VM2-2 -make -j4 all -make check -sudo make install - -#Ubuntu 16.04 - Ubuntu 18.04 - Ubuntu 19.10 -wget http://www.mpich.org/static/downloads/3.3.1/mpich-3.3.1.tar.gz -tar xf mpich-3.3.1.tar.gz -cd mpich-3.3.1/ -./configure --prefix=/usr/local/mpich3 -make -j4 -make -j4 install - -``` - -Jenkins projects are [here](https://ci.inria.fr/freefem-dev/) and [here](https://ci.inria.fr/freefem-dev-2/) - -# Job 1 - -without mpi (for macOS, compiled with gcc) -runs on VM0 - -# Job 2 - -without-mpi (for macOS, compiled with clang) -runs on VM1 - -# Job 3 sequential version of FreeFEM - -with 3dparty, without-mpi (for macOS, compiled with clang) -runs on VM2 - -# Job 4_openmpi Full version of FreeFEM compiled in release mode - -with 3dparty, compilation in release mode (for macOS, compiled with gcc), uses a PETSc installed (curent version 3.12.4) -runs on VM2-2 - -# Job 4_mpich Full version of FreeFEM compiled in release mode - -with 3dparty, compilation in release mode (for macOS, compiled with gcc), uses a PETSc installed (curent version 3.12.42) -runs on VM2-2 - -# Job 5_openmpi Full version of FreeFEM compiled in debug mode - -with mpi with 3dparty,, compilation in debug mode (for macOS, compiled with clang) download and install PETSc at each build -runs on VM2 - -# Job 5_mpich Full version of FreeFEM compiled in debug mode - -with mpi with 3dparty,, compilation in debug mode (for macOS, compiled with clang) download and install PETSc at each build -runs on VM2 diff --git a/etc/jenkins/blob/build.sh b/etc/jenkins/blob/build.sh deleted file mode 100755 index 79ce1e6f3..000000000 --- a/etc/jenkins/blob/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -make -j4 diff --git a/etc/jenkins/blob/build_PETSc.sh b/etc/jenkins/blob/build_PETSc.sh deleted file mode 100755 index 30c8f7664..000000000 --- a/etc/jenkins/blob/build_PETSc.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -cd 3rdparty/ff-petsc \ - && make petsc-slepc \ - && cd - \ - && ./reconfigure diff --git a/etc/jenkins/blob/check.sh b/etc/jenkins/blob/check.sh deleted file mode 100755 index e093d367f..000000000 --- a/etc/jenkins/blob/check.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -make check diff --git a/etc/jenkins/blob/install.sh b/etc/jenkins/blob/install.sh deleted file mode 100755 index 6bd9e6d36..000000000 --- a/etc/jenkins/blob/install.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -make install diff --git a/etc/jenkins/blob/uninstall.sh b/etc/jenkins/blob/uninstall.sh deleted file mode 100755 index 5b0e6effb..000000000 --- a/etc/jenkins/blob/uninstall.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -rm -rf /builds/workspace/freefem diff --git a/etc/jenkins/catchErrorLog.sh b/etc/jenkins/catchErrorLog.sh deleted file mode 100644 index 99c87306b..000000000 --- a/etc/jenkins/catchErrorLog.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -## Jenkins variables -workspace="$WORKSPACE" -job="$JOB_NAME" - -## Tests directories -logDirectory="${workspace}/log/${job}" -baseDirectory="examples" -declare -a directories -directories=("3d" "3dSurf" "bamg" "bug" "eigen" "examples" "ffddm" "hpddm" "misc" "mpi" "other" "plugin" "tutorial") - -echo "Log will be put in ${logDirectory}" - -## Create tree and copy log -for directory in "${directories[@]}" -do - ## Create directory - mkdir -p "${logDirectory}/${directory}" - ## Remove files, if any - rm -f "${logDirectory}/${directory}/*" - ## Copy log - cp -f "${baseDirectory}/${directory}/*.err" "${logDirectory}/${directory}/" 2>/dev/null -done - -## Exit with 0 if the last cp failed (just no error log) -exit 0 diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-1.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-1.sh deleted file mode 100644 index a64e045a8..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-1.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=gcc -export CXX=g++ -export FC=gfortran -export F77=gfortran diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-2.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-2.sh deleted file mode 100644 index df0bf717a..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-2.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran -export F77=gfortran diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-3.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-3.sh deleted file mode 100644 index df0bf717a..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-3.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran -export F77=gfortran diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-4_mpich.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-4_mpich.sh deleted file mode 100644 index edd4143fe..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-4_mpich.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=gcc -export CXX=g++ -export FC=gfortran -export F77=gfortran -export MPIRUN=/usr/local/mpich3/bin/mpirun -export MPICXX=/usr/local/mpich3/bin/mpicxx -export MPIFC=/usr/local/mpich3/bin/mpif90 -export MPICC=/usr/local/mpich3/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-4_openmpi.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-4_openmpi.sh deleted file mode 100644 index 0d472aab0..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-4_openmpi.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=gcc -export CXX=g++ -export FC=gfortran -export F77=gfortran -export MPIRUN=/usr/local/bin/mpirun -export MPICXX=/usr/local/bin/mpicxx -export MPIFC=/usr/local/bin/mpif90 -export MPICC=/usr/local/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-5_mpich.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-5_mpich.sh deleted file mode 100644 index 08b3e9b3d..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-5_mpich.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran -export F77=gfortran -export MPIRUN=/usr/local/mpich3/bin/mpirun -export MPICXX=/usr/local/mpich3/bin/mpicxx -export MPIFC=/usr/local/mpich3/bin/mpif90 -export MPICC=/usr/local/mpich3/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-5_openmpi.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-5_openmpi.sh deleted file mode 100644 index abfa417ea..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-14.5.0-5_openmpi.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran -export F77=gfortran -export MPIRUN=/usr/local/bin/mpirun -export MPICXX=/usr/local/bin/mpicxx -export MPIFC=/usr/local/bin/mpif90 -export MPICC=/usr/local/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-1.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-1.sh deleted file mode 100644 index 54afe721d..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-1.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=gcc-9 -export CXX=g++-9 -export FC=gfortran-9 -export F77=gfortran-9 diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-2.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-2.sh deleted file mode 100644 index b26fe5c13..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-2.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran-9 -export F77=gfortran-9 diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-3.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-3.sh deleted file mode 100644 index b26fe5c13..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-3.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran-9 -export F77=gfortran-9 diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-5_mpich.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-5_mpich.sh deleted file mode 100644 index f8bcb65bc..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-5_mpich.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran-9 -export F77=gfortran-9 -export MPIRUN=/usr/local/mpich4/bin/mpirun -export MPICXX=/usr/local/mpich4/bin/mpicxx -export MPIFC=/usr/local/mpich4/bin/mpif90 -export MPICC=/usr/local/mpich4/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-5_openmpi.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-5_openmpi.sh deleted file mode 100644 index db8be5d7a..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-17.5.0-5_openmpi.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran-9 -export F77=gfortran-9 -export MPIRUN=/usr/local/bin/mpirun -export MPICXX=/usr/local/bin/mpicxx -export MPIFC=/usr/local/bin/mpif90 -export MPICC=/usr/local/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-17.7.0-4_mpich.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-17.7.0-4_mpich.sh deleted file mode 100644 index 8c280c9d9..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-17.7.0-4_mpich.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=gcc-9 -export CXX=g++-9 -export FC=gfortran-9 -export F77=gfortran-9 -export MPIRUN=/Users/ci/mpich4/bin/mpirun -export MPICXX=/Users/ci/mpich4/bin/mpicxx -export MPIFC=/Users/ci/mpich4/bin/mpif90 -export MPICC=/Users/ci/mpich4/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-17.7.0-4_openmpi.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-17.7.0-4_openmpi.sh deleted file mode 100644 index d8acb46ba..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-17.7.0-4_openmpi.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=gcc-9 -export CXX=g++-9 -export FC=gfortran-9 -export F77=gfortran-9 -export MPIRUN=/usr/local/bin/mpirun -export MPICXX=/usr/local/bin/mpicxx -export MPIFC=/usr/local/bin/mpif90 -export MPICC=/usr/local/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-1.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-1.sh deleted file mode 100644 index 54afe721d..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-1.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=gcc-9 -export CXX=g++-9 -export FC=gfortran-9 -export F77=gfortran-9 diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-2.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-2.sh deleted file mode 100644 index b26fe5c13..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-2.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran-9 -export F77=gfortran-9 diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-3.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-3.sh deleted file mode 100644 index b26fe5c13..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-3.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran-9 -export F77=gfortran-9 diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-4_mpich.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-4_mpich.sh deleted file mode 100644 index 029e903bc..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-4_mpich.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=gcc-9 -export CXX=g++-9 -export FC=gfortran-9 -export F77=gfortran-9 -export MPIRUN=/usr/local/mpich3/bin/mpirun -export MPICXX=/usr/local/mpich3/bin/mpicxx -export MPIFC=/usr/local/mpich3/bin/mpif90 -export MPICC=/usr/local/mpich3/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-4_openmpi.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-4_openmpi.sh deleted file mode 100644 index d8acb46ba..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-4_openmpi.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=gcc-9 -export CXX=g++-9 -export FC=gfortran-9 -export F77=gfortran-9 -export MPIRUN=/usr/local/bin/mpirun -export MPICXX=/usr/local/bin/mpicxx -export MPIFC=/usr/local/bin/mpif90 -export MPICC=/usr/local/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-5_mpich.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-5_mpich.sh deleted file mode 100644 index 79a06fca9..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-5_mpich.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran-9 -export F77=gfortran-9 -export MPIRUN=/usr/local/mpich3/bin/mpirun -export MPICXX=/usr/local/mpich3/bin/mpicxx -export MPIFC=/usr/local/mpich3/bin/mpif90 -export MPICC=/usr/local/mpich3/bin/mpicc diff --git a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-5_openmpi.sh b/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-5_openmpi.sh deleted file mode 100644 index db8be5d7a..000000000 --- a/etc/jenkins/change_compiler/change_compiler-Darwin-18.5.0-5_openmpi.sh +++ /dev/null @@ -1,8 +0,0 @@ -export CC=clang -export CXX=clang++ -export FC=gfortran-9 -export F77=gfortran-9 -export MPIRUN=/usr/local/bin/mpirun -export MPICXX=/usr/local/bin/mpicxx -export MPIFC=/usr/local/bin/mpif90 -export MPICC=/usr/local/bin/mpicc diff --git a/etc/jenkins/deployRelease/README.md b/etc/jenkins/deployRelease/README.md deleted file mode 100644 index d0e77ef1e..000000000 --- a/etc/jenkins/deployRelease/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# Ubuntu - -**Current system:** Ubuntu 20.04 - -**Jenkins dashboard:** https://ci.inria.fr/freefem/job/FreeFEM-sources-deployDEB/ - -**Output:** FreeFEM-X.X.X-amd64-ubuntuY.Y.deb - -Packages: - -``` -sudo apt-get install cpp freeglut3-dev g++ gcc gfortran \ - m4 make patch pkg-config wget python unzip \ - liblapack-dev libhdf5-dev libgsl-dev mpich \ - autoconf automake autotools-dev bison flex gdb git cmake -``` - -# Windows - -**Current system:** Windows 10 - -**Jenkins dashboard:** https://ci.inria.fr/freefem/job/deployEXE/ - -**Output:** FreeFEM-X.X-X-win64.exe - -Windows Install: - -- [MSYS2](https://www.msys2.org/) -- [git](https://git-scm.com/downloads) -- [Microsoft MPI](https://www.microsoft.com/en-us/download/details.aspx?id=100593) -- [Inno setup](https://jrsoftware.org/isdl.php) - -MSYS2 packages: - -``` -pacman -S autoconf automake-wrapper bison bsdcpio make git mingw-w64-x86_64-toolchain mingw-w64-x86_64-freeglut patch python flex pkg-config pkgfile tar unzip mingw-w64-x86_64-cmake mingw-w64-x86_64-msmpi mingw-w64-x86_64-gsl mingw-w64-x86_64-jq -pacman -R mingw-w64-x86_64-python mingw-w64-x86_64-gdb mingw-w64-x86_64-gdb-multiarch - -``` - -# MacOS system - -Not currently build diff --git a/etc/jenkins/deployRelease/createRelease.sh b/etc/jenkins/deployRelease/createRelease.sh deleted file mode 100755 index b6507a221..000000000 --- a/etc/jenkins/deployRelease/createRelease.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -## Parameters -TOKEN=$1 -ORGANIZATION="FreeFem" -REPOSITORY="FreeFem-sources" - -## Release informations -VERSION=$(grep AC_INIT configure.ac | cut -d"," -f2 | cut -d"[" -f2 | cut -d"]" -f1) -RELEASE_TAG_NAME="v$VERSION" -RELEASE_TARGET_COMMITISH="master" -RELEASE_NAME="FreeFEM v$VERSION" -RELEASE_BODY="**Warning**: this is an automatic release. If you encounter some trouble with packages, post a message in the [forum](https://community.freefem.org)" -RELEASE_DRAFT="false" -RELEASE_PRERELEASE="false" - -echo "Release name: $RELEASE_NAME" - -## Check if release exists -RESPONSE=$(curl "https://api.github.com/repos/$ORGANIZATION/$REPOSITORY/releases/tags/$RELEASE_TAG_NAME") -RESPONSE_URL=$(printf "%s" "$RESPONSE" | jq -r '.url') - -## Create release -if [ "$RESPONSE_URL" = "null" ] -then - RELEASE_PARAMETERS=$(printf '{"tag_name": "%s", "target_commitish": "%s", "name": "%s", "body": "%s.", "draft": %s, "prerelease": %s}' "$RELEASE_TAG_NAME" "$RELEASE_TARGET_COMMITISH" "$RELEASE_NAME" "$RELEASE_BODY" "$RELEASE_DRAFT" "$RELEASE_PRERELEASE") - RELEASE=$(curl -H "Authorization: token $TOKEN" --data "$RELEASE_PARAMETERS" "https://api.github.com/repos/$ORGANIZATION/$REPOSITORY/releases") - echo "Github response:" - echo "$RELEASE" -else - echo "Release already exists" - exit 1 -fi diff --git a/etc/jenkins/deployRelease/deployAppImage.sh b/etc/jenkins/deployRelease/deployAppImage.sh deleted file mode 100755 index ecfba274a..000000000 --- a/etc/jenkins/deployRelease/deployAppImage.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -set -x -set -u -set -e - -## Parameters -TOKEN=$1 -ORGANIZATION="FreeFem" -REPOSITORY="FreeFem-sources" -VERSION=$(grep AC_INIT configure.ac | cut -d"," -f2 | cut -d"[" -f2 | cut -d"]" -f1) -RELEASE_TAG_NAME="v$VERSION" -APPIMAGE_NAME="FreeFEM-x86_64-${RELEASE_TAG_NAME}.AppImage" - -## AppImage build -CONTAINER_NAME="freefem-appimage-builder" -SOURCES_MOUNT_POINT="/home/ubuntu/FreeFem-sources" - -chmod +x etc/AppImage/rebuild-and-run-appimage-builder.sh && ./etc/AppImage/rebuild-and-run-appimage-builder.sh -docker exec $CONTAINER_NAME $SOURCES_MOUNT_POINT/etc/AppImage/build-appimage.sh -# AppImage is created: FreeFEM-x86_64.AppImage - -## Change name -mv FreeFEM-x86_64.AppImage $APPIMAGE_NAME - -## Deploy in GitHub release -RELEASE=`curl 'https://api.github.com/repos/'$ORGANIZATION'/'$REPOSITORY'/releases/tags/'$RELEASE_TAG_NAME` -UPLOAD_URL=`printf "%s" "$RELEASE" | jq -r '.upload_url'` - -if [ -x $UPLOAD_URL ] -then - echo "Release does not exists" - exit 1 -else - RESPONSE=`curl --data-binary "@$APPIMAGE_NAME" -H "Authorization: token $TOKEN" -H "Content-Type: application/octet-stream" "$UPLOAD_URL=$APPIMAGE_NAME"` -fi \ No newline at end of file diff --git a/etc/jenkins/deployRelease/deployDEB.sh b/etc/jenkins/deployRelease/deployDEB.sh deleted file mode 100755 index 109894eee..000000000 --- a/etc/jenkins/deployRelease/deployDEB.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env bash - -set -x -set -u -set -e - -## Parameters -TOKEN=$1 -ORGANIZATION="FreeFem" -REPOSITORY="FreeFem-sources" -VERSION=$(grep AC_INIT configure.ac | cut -d"," -f2 | cut -d"[" -f2 | cut -d"]" -f1) -RELEASE_TAG_NAME="v$VERSION" -OSRELEASE=$(lsb_release -r|awk '{print $2}') - -BUILD_DIR="/usr/local" - -DEB_NAME="freefem-${VERSION}-amd64-ubuntu${OSRELEASE}" -GH_DEB_NAME="FreeFEM-${VERSION}-amd64-ubuntu${OSRELEASE}.deb" - -## DEB build -autoreconf -i -./configure --enable-download --enable-optim --enable-generic --prefix="$BUILD_DIR" -./3rdparty/getall -a -o PETSc,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet,MUMPS -cd 3rdparty/ff-petsc && make petsc-slepc && cd - -./reconfigure -make -j4 -make -j install - -## Create FreeFEM Debian package -mkdir "$DEB_NAME" -mkdir "$DEB_NAME/DEBIAN" -touch "$DEB_NAME/DEBIAN/control" -{ - echo "Package: freefem"; - echo "Version: $VERSION"; - echo "Section: custom"; - echo "Architecture: amd64"; - echo "Depends: libc6 (>= 2.31), g++ (>= 9.3), gcc (>= 9.3), gfortran (>= 9.3), libgsl-dev (>=2.5), libhdf5-dev (>=1.10.4), liblapack-dev (>= 3.9), libopenmpi-dev (>=4.0.3) ,freeglut3-dev (>= 2.8.1)"; - echo "Maintainer: FreeFEM, Frédéric Hecht "; - echo "Description: FreeFEM, Finite Element Language software"; - echo "Homepage: https://freefem.org"; -} >> "$DEB_NAME/DEBIAN/control" -mkdir -p "$DEB_NAME/usr/local/share/FreeFEM" -mkdir -p "$DEB_NAME/usr/local/bin" -mkdir -p "$DEB_NAME/usr/local/lib/ff++" -mkdir -p "$DEB_NAME/usr/share/doc/freefem" - -cp -r "$BUILD_DIR/lib/ff++/$VERSION" "$DEB_NAME/usr/local/lib/ff++/$VERSION" -cp -r "$BUILD_DIR/ff-petsc/" "$DEB_NAME/usr/local/ff-petsc" -cp -r "$BUILD_DIR/share/FreeFEM/$VERSION" "$DEB_NAME/usr/local/share/FreeFEM/$VERSION" -cp -r "$BUILD_DIR/bin/FreeFem++" "$DEB_NAME/usr/local/bin/FreeFem++" -cp -r "$BUILD_DIR/bin/FreeFem++-mpi" "$DEB_NAME/usr/local/bin/FreeFem++-mpi" -cp -r "$BUILD_DIR/bin/FreeFem++-nw" "$DEB_NAME/usr/local/bin/FreeFem++-nw" -cp -r "$BUILD_DIR/bin/bamg" "$DEB_NAME/usr/local/bin/bamg" -cp -r "$BUILD_DIR/bin/cvmsh2" "$DEB_NAME/usr/local/bin/cvmsh2" -cp -r "$BUILD_DIR/bin/ff-c++" "$DEB_NAME/usr/local/bin/ff-c++" -cp -r "$BUILD_DIR/bin/ff-get-dep" "$DEB_NAME/usr/local/bin/ff-get-dep" -cp -r "$BUILD_DIR/bin/ff-mpirun" "$DEB_NAME/usr/local/bin/ff-mpirun" -cp -r "$BUILD_DIR/bin/ff-pkg-download" "$DEB_NAME/usr/local/bin/ff-pkg-download" -cp -r "$BUILD_DIR/bin/ffglut" "$DEB_NAME/usr/local/bin/ffglut" -cp -r "$BUILD_DIR/bin/ffmaster" "$DEB_NAME/usr/local/bin/ffmaster" -cp -r "$BUILD_DIR/bin/ffmedit" "$DEB_NAME/usr/local/bin/ffmedit" -cp AUTHORS "$DEB_NAME/usr/share/doc/freefem/AUTHOR" -cp README.md "$DEB_NAME/usr/share/doc/freefem/README.md" - -dpkg-deb --build "$DEB_NAME/" -mv "$DEB_NAME.deb" "$GH_DEB_NAME" - -## Deploy in GitHub release -RELEASE=$(curl "https://api.github.com/repos/$ORGANIZATION/$REPOSITORY/releases/tags/$RELEASE_TAG_NAME") -UPLOAD_URL=$(printf "%s" "$RELEASE" | jq -r '.upload_url') - -if [ -x "$UPLOAD_URL" ] -then - echo "Release does not exists" - exit 1 -else - RESPONSE=$(curl --data-binary "@$GH_DEB_NAME" -H "Authorization: token $TOKEN" -H "Content-Type: application/octet-stream" "$UPLOAD_URL=$GH_DEB_NAME") - echo "Github response:" - echo "$RESPONSE" -fi - -# clean the VM -rm -rf "$BUILD_DIR/ff-petsc" -rm -rf "$DEB_NAME" -rm "$GH_DEB_NAME" - -./bin/uninstall-ff++ \ No newline at end of file diff --git a/etc/jenkins/deployRelease/deployEXE.sh b/etc/jenkins/deployRelease/deployEXE.sh deleted file mode 100755 index a3604646f..000000000 --- a/etc/jenkins/deployRelease/deployEXE.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!C:\msys64\usr\bin\bash.exe --login -source shell mingw64 - -set -x -set -u -set -e - -## Parameters -TOKEN=$1 -ORGANIZATION="FreeFem" -REPOSITORY="FreeFem-sources" -VERSION=$(grep AC_INIT configure.ac | cut -d"," -f2 | cut -d"[" -f2 | cut -d"]" -f1) -RELEASE_TAG_NAME="v$VERSION" -EXE_NAME="FreeFem++-${VERSION}-win64.exe" -GH_EXE_NAME="FreeFEM-${VERSION}-win64.exe" - -## EXE build -autoreconf -i -./configure --enable-download --enable-optim --enable-generic -./3rdparty/getall -a -o PETSc,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet,MUMPS -cd 3rdparty/ff-petsc && make petsc-slepc && cd - -./reconfigure -make -j4 - -cp AUTHORS readme/AUTHORS -make win32 - -## Deploy in GitHub release -RELEASE=$(curl "https://api.github.com/repos/$ORGANIZATION/$REPOSITORY/releases/tags/$RELEASE_TAG_NAME") -UPLOAD_URL=$(printf "%s" "$RELEASE" | jq -r '.upload_url') - -if [ -x "$UPLOAD_URL" ] -then - echo "Release does not exists" - exit 1 -else - mv "Output/$EXE_NAME" "$GH_EXE_NAME" - RESPONSE=$(curl --data-binary "@$GH_EXE_NAME" -H "Authorization: token $TOKEN" -H "Content-Type: application/octet-stream" "$UPLOAD_URL=$GH_EXE_NAME") - echo "Github response:" - echo "$RESPONSE" -fi diff --git a/etc/jenkins/deployRelease/deployPKG.sh b/etc/jenkins/deployRelease/deployPKG.sh deleted file mode 100755 index 325e4322a..000000000 --- a/etc/jenkins/deployRelease/deployPKG.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -set -x -set -u -set -e diff --git a/etc/jenkins/jobCMake.sh b/etc/jenkins/jobCMake.sh deleted file mode 100644 index b267d8f16..000000000 --- a/etc/jenkins/jobCMake.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -echo "Job CMake" - -export FF_ROOT=$(pwd) -export FF_INCLUDEPATH=$FF_ROOT/idp - -mkdir -p build_cmake \ - && cd build_cmake \ - && cmake -D CMAKE_CXX_COMPILER=g++ -D CMAKE_C_COMPILER=gcc -D CMAKE_INSTALL_PREFIX=/builds/workspace/freefem .. \ - && make -j 8 VERBOSE=1 \ - && make install \ - && cd $FF_ROOT/build_cmake/examples/3d \ - && make test CTEST_OUTPUT_ON_FAILURE=On \ - && cd $FF_ROOT/build_cmake/examples/eigen \ - && make test CTEST_OUTPUT_ON_FAILURE=On \ - && cd $FF_ROOT/build_cmake/examples/mpi \ - && make test CTEST_OUTPUT_ON_FAILURE=On \ - && cd $FF_ROOT/build_cmake/examples/other \ - && make test CTEST_OUTPUT_ON_FAILURE=On \ - && cd $FF_ROOT/build_cmake/examples/tutorial \ - && make test CTEST_OUTPUT_ON_FAILURE=On diff --git a/etc/jenkins/jobCMakeWindows.sh b/etc/jenkins/jobCMakeWindows.sh deleted file mode 100644 index 52e68ff04..000000000 --- a/etc/jenkins/jobCMakeWindows.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!C:\msys64\usr\bin\bash.exe --login -source shell mingw64 - -echo "Job CMake" - -export FF_ROOT=$(pwd) -export FF_INCLUDEPATH=$FF_ROOT/idp - -mkdir -p build_cmake \ - && cd build_cmake \ - && cmake -D CMAKE_CXX_COMPILER=g++ -D CMAKE_C_COMPILER=gcc -D CMAKE_INSTALL_PREFIX=/builds/workspace/freefem .. \ - && make -j 8 VERBOSE=1 \ - && make install \ - && cd $FF_ROOT/build_cmake/examples/3d \ - && make test CTEST_OUTPUT_ON_FAILURE=On \ - && cd $FF_ROOT/build_cmake/examples/eigen \ - && make test CTEST_OUTPUT_ON_FAILURE=On \ - && cd $FF_ROOT/build_cmake/examples/mpi \ - && make test CTEST_OUTPUT_ON_FAILURE=On \ - && cd $FF_ROOT/build_cmake/examples/other \ - && make test CTEST_OUTPUT_ON_FAILURE=On \ - && cd $FF_ROOT/build_cmake/examples/tutorial \ - && make test CTEST_OUTPUT_ON_FAILURE=On diff --git a/etc/jenkins/job_Unix/check_ffpetsc/check_ffpetscVersion.sh b/etc/jenkins/job_Unix/check_ffpetsc/check_ffpetscVersion.sh deleted file mode 100755 index 8fcadb01e..000000000 --- a/etc/jenkins/job_Unix/check_ffpetsc/check_ffpetscVersion.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -./etc/jenkins/job_Unix/check_ffpetsc/job_ffpetsc.sh - -if [ $? -eq 0 ] -then - echo " ************* upgrading mpich ffpetsc success *************" -else - echo " ************* upgrading mpich ffpetsc FAIL *************" - exit 1 -fi diff --git a/etc/jenkins/job_Unix/check_ffpetsc/job_ffpetsc.sh b/etc/jenkins/job_Unix/check_ffpetsc/job_ffpetsc.sh deleted file mode 100755 index 54d726cc3..000000000 --- a/etc/jenkins/job_Unix/check_ffpetsc/job_ffpetsc.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash - -releaseVersionffpetsc=$(grep "VERSION=" 3rdparty/ff-petsc/Makefile | cut -c9-15) -echo "release Version ffpetsc" $releaseVersionffpetsc - -# compilation with openmpi -if [ "$(uname)" == "Darwin" ]; then - # in case where the OS type is Darwin - MAJOR=$(grep "#define PETSC_VERSION_MAJOR" /Users/Shared/openmpi/ff-petsc/c/include/petscversion.h | cut -c34-35 ) - MINOR=$(grep "#define PETSC_VERSION_MINOR" /Users/Shared/openmpi/ff-petsc/c/include/petscversion.h | cut -c34-36 ) - SUBMINOR=$(grep "#define PETSC_VERSION_SUBMINOR" /Users/Shared/openmpi/ff-petsc/c/include/petscversion.h | cut -c34-35 ) - installedVersionffpetscO=$MAJOR.$MINOR.$SUBMINOR - ffpetscDirectory=/Users/Shared/openmpi/ -elif [ "$(uname)" == "Linux" ]; then - # in case where the OS type is Linux - MAJOR=$(grep "#define PETSC_VERSION_MAJOR" /builds/Shared/openmpi/ff-petsc/c/include/petscversion.h | cut -c34-35 ) - MINOR=$(grep "#define PETSC_VERSION_MINOR" /builds/Shared/openmpi/ff-petsc/c/include/petscversion.h | cut -c34-36 ) - SUBMINOR=$(grep "#define PETSC_VERSION_SUBMINOR" /builds/Shared/openmpi/ff-petsc/c/include/petscversion.h | cut -c34-35 ) - installedVersionffpetscO=$MAJOR.$MINOR.$SUBMINOR - ffpetscDirectory=/builds/Shared/openmpi/ -fi -echo "installed Version ffpetsc openmpi" $installedVersionffpetscO - -# check the version -if [ "$releaseVersionffpetsc" == "$installedVersionffpetscO" ]; then - echo "installed release version PETSc is up to date" -else - # change default compiler load in update_ffpetsc_*.sh - echo "installed release version PETSc will be upgrated" - rm -rf $ffpetscDirectory - ./etc/jenkins/job_Unix/check_ffpetsc/update_ffpetsc_openmpi.sh \ - && echo " ************* upgrading openmpi ffpetsc success *************" - cd 3rdparty/ff-petsc/ && rm -rf petsc-$releaseVersionffpetsc && cd ../.. && make clean -fi - -#define PETSC_VERSION_SUBMINOR 4 -# compilation with mpich -if [ "$(uname)" == "Darwin" ]; then - # in case where the OS type is Darwin - MAJOR=$(grep "#define PETSC_VERSION_MAJOR" /Users/Shared/mpich/ff-petsc/c/include/petscversion.h | cut -c34-35 ) - MINOR=$(grep "#define PETSC_VERSION_MINOR" /Users/Shared/mpich/ff-petsc/c/include/petscversion.h | cut -c34-36 ) - SUBMINOR=$(grep "#define PETSC_VERSION_SUBMINOR" /Users/Shared/mpich/ff-petsc/c/include/petscversion.h | cut -c34-35 ) - installedVersionffpetscM=$MAJOR.$MINOR.$SUBMINOR - ffpetscDirectory=/Users/Shared/mpich/ -elif [ "$(uname)" == "Linux" ]; then - # in case where the OS type is Linux - MAJOR=$(grep "#define PETSC_VERSION_MAJOR" /builds/Shared/mpich/ff-petsc/c/include/petscversion.h | cut -c34-35 ) - MINOR=$(grep "#define PETSC_VERSION_MINOR" /builds/Shared/mpich/ff-petsc/c/include/petscversion.h | cut -c34-36 ) - SUBMINOR=$(grep "#define PETSC_VERSION_SUBMINOR" /builds/Shared/mpich/ff-petsc/c/include/petscversion.h | cut -c34-35 ) - installedVersionffpetscM=$MAJOR.$MINOR.$SUBMINOR - ffpetscDirectory=/builds/Shared/mpich/ -fi -echo "installed Version ffpetsc mpich" $installedVersionffpetscM - -# check the version -if [ "$releaseVersionffpetsc" == "$installedVersionffpetscM" ]; then - echo "installed release version PETSc is up to date" -else - # change default compiler load in update_ffpetsc_*.sh - echo "installed release version PETSc will be upgrated" - rm -rf $ffpetscDirectory - ./etc/jenkins/job_Unix/check_ffpetsc/update_ffpetsc_mpich.sh -fi diff --git a/etc/jenkins/job_Unix/check_ffpetsc/update_ffpetsc_mpich.sh b/etc/jenkins/job_Unix/check_ffpetsc/update_ffpetsc_mpich.sh deleted file mode 100755 index e861ceabf..000000000 --- a/etc/jenkins/job_Unix/check_ffpetsc/update_ffpetsc_mpich.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash - -## This script allows to install PETSc on vm2-2 -## See ./README.md - -echo "update ffPETSc(mpich)" -set -e - -# change default compiler -if [ "$(uname)" == "Darwin" ]; then - # in case where the OS type is Darwin - PETSC_INSTALLDIR='/Users/Shared/mpich' - change_compiler=etc/jenkins/change_compiler/change_compiler-`uname -s`-`uname -r`-4_mpich.sh -elif [ "$(uname)" == "Linux" ]; then - # in case where the OS type is Linux - PETSC_INSTALLDIR='/builds/Shared/mpich' - change_compiler=etc/jenkins/change_compiler/change_compiler-`uname -s`-4_mpich.sh -fi -echo try to source file "$change_compiler" -test -f "$change_compiler" && echo source file "$change_compiler" -test -f "$change_compiler" && cat "$change_compiler" -test -f "$change_compiler" && source "$change_compiler" - -# configuration & build -autoreconf -i \ - && ./configure --enable-download --prefix=$PETSC_INSTALLDIR \ - && ./3rdparty/getall -a -o PETSc \ - && ./etc/jenkins/blob/build_PETSc.sh - -if [ $? -eq 0 ] -then - echo "ffpetsc update complete" -else - echo "ffpetsc update fail" - rm -rf $PETSC_INSTALLDIR/ff-petsc - exit 1 -fi diff --git a/etc/jenkins/job_Unix/check_ffpetsc/update_ffpetsc_openmpi.sh b/etc/jenkins/job_Unix/check_ffpetsc/update_ffpetsc_openmpi.sh deleted file mode 100755 index f715fdbaa..000000000 --- a/etc/jenkins/job_Unix/check_ffpetsc/update_ffpetsc_openmpi.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash - -## This script allows to install PETSc on vm2-2 -## See ./README.md - -echo "update ffPETSc(openmpi)" -set -e - -# change default compiler -if [ "$(uname)" == "Darwin" ]; then - # in case where the OS type is Darwin - PETSC_INSTALLDIR='/Users/Shared/openmpi' - change_compiler=etc/jenkins/change_compiler/change_compiler-`uname -s`-`uname -r`-4_openmpi.sh -elif [ "$(uname)" == "Linux" ]; then - # in case where the OS type is Linux - PETSC_INSTALLDIR='/builds/Shared/openmpi' - change_compiler=etc/jenkins/change_compiler/change_compiler-`uname -s`-4_openmpi.sh -fi -echo try to source file "$change_compiler" -test -f "$change_compiler" && echo source file "$change_compiler" -test -f "$change_compiler" && cat "$change_compiler" -test -f "$change_compiler" && source "$change_compiler" - -# configuration & build -autoreconf -i \ - && ./configure --enable-download --prefix=$PETSC_INSTALLDIR \ - && ./3rdparty/getall -a -o PETSc \ - && ./etc/jenkins/blob/build_PETSc.sh - -if [ $? -eq 0 ] -then - echo "ffpetsc update complete" -else - echo "ffpetsc update fail" - rm -rf $PETSC_INSTALLDIR/ff-petsc - exit 1 -fi diff --git a/etc/jenkins/job_Unix/job1.sh b/etc/jenkins/job_Unix/job1.sh deleted file mode 100755 index 271b8ea4f..000000000 --- a/etc/jenkins/job_Unix/job1.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash - -echo "Job 1" - -# change default compiler -if [ "$(uname)" = "Darwin" ] -then - export CC=gcc - export CXX=g++ - export FC=gfortran - export F77=gfortran -fi - -# configuration & build -tar xvf AutoGeneratedFile.tar.gz -./configure --without-mpi --prefix="$WORKSPACE/install" -./etc/jenkins/blob/build.sh - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -./etc/jenkins/blob/check.sh - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -./etc/jenkins/blob/install.sh - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -./etc/jenkins/blob/uninstall.sh - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Unix/job2.sh b/etc/jenkins/job_Unix/job2.sh deleted file mode 100755 index 890946f74..000000000 --- a/etc/jenkins/job_Unix/job2.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash - -echo "Job 2" - -# change default compiler -if [ "$(uname)" = "Darwin" ] -then - export CC=clang - export CXX=clang++ - export FC=gfortran - export F77=gfortran -fi - -# configuration & build -tar xvf AutoGeneratedFile.tar.gz -./configure --without-mpi --prefix="$WORKSPACE/install" -./etc/jenkins/blob/build.sh - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -./etc/jenkins/blob/check.sh - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -./etc/jenkins/blob/install.sh - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -./etc/jenkins/blob/uninstall.sh - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Unix/job3.sh b/etc/jenkins/job_Unix/job3.sh deleted file mode 100755 index 24e7772f6..000000000 --- a/etc/jenkins/job_Unix/job3.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash - -echo "Job 3" - -# change default compiler -if [ "$(uname)" = "Darwin" ] -then - export CC=clang - export CXX=clang++ - export FC=gfortran - export F77=gfortran -fi - -# configuration & build -autoreconf -i -./configure --enable-download --without-mpi --prefix="$WORKSPACE/install" -./3rdparty/getall -a -o ARPACK,METIS,ParMETIS,ScaLAPACK,Scotch,SuiteSparse,SuperLU,mmg,parmmg,hpddm,bemtool,Boost,libpthread-google,TetGen,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet,MUMPS,htool -./etc/jenkins/blob/build.sh - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -./etc/jenkins/blob/check.sh - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -./etc/jenkins/blob/install.sh - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" -exit 1 -fi - -# uninstall -./etc/jenkins/blob/uninstall.sh - -if [ $? -eq 0 ] -then -echo "Uninstall process complete" -else -echo "Uninstall process failed" -exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Unix/job4_mpich.sh b/etc/jenkins/job_Unix/job4_mpich.sh deleted file mode 100755 index 78269dbd1..000000000 --- a/etc/jenkins/job_Unix/job4_mpich.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash - -echo "Job 4 (mpich)" - -casejob=4_mpich - -# change default compiler -if [ "$(uname)" = "Darwin" ] -then - # MacOS - PETSC_DIR='/Users/Shared/mpich/ff-petsc' - change_compiler=etc/jenkins/change_compiler/change_compiler-$(uname -s)-$(uname -r)-$casejob.sh -elif [ "$(uname)" = "Linux" ] -then - # Linux - PETSC_DIR='/media/builds/shared/mpich/ff-petsc' - - export MPIRUN=/usr/bin/mpirun.mpich - export MPICXX=/usr/bin/mpicxx.mpich - export MPIFC=/usr/bin/mpif90.mpich - export MPICC=/usr/bin/mpicc.mpich -fi - -petscVersion=$(grep "VERSION_GIT" "$PETSC_DIR/c/include/petscversion.h" | cut -c36-42 | cut -f1 -d "\"" ) -echo "Installed PETSc version: $petscVersion" -echo "Try to source file $change_compiler" -test -f "$change_compiler" && echo "Source file $change_compiler" -test -f "$change_compiler" && cat "$change_compiler" -test -f "$change_compiler" && source "$change_compiler" - -# configuration & build -autoreconf -i -./configure --enable-download --prefix="$WORKSPACE/install" \ - --with-petsc=$PETSC_DIR/r/lib \ - --with-petsc_complex=$PETSC_DIR/c/lib -./3rdparty/getall -a -o Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet,MUMPS -./etc/jenkins/blob/build.sh - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -./etc/jenkins/blob/check.sh - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -./etc/jenkins/blob/install.sh - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -./etc/jenkins/blob/uninstall.sh - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Unix/job4_openmpi.sh b/etc/jenkins/job_Unix/job4_openmpi.sh deleted file mode 100755 index 89f26fe1b..000000000 --- a/etc/jenkins/job_Unix/job4_openmpi.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash - -echo "Job 4 (openmpi)" - -casejob=4_openmpi - -# change default compiler -if [ "$(uname)" = "Darwin" ] -then - # MacOS - PETSC_DIR='/Users/Shared/openmpi/ff-petsc' - change_compiler=etc/jenkins/change_compiler/change_compiler-$(uname -s)-$(uname -r)-$casejob.sh -elif [ "$(uname)" = "Linux" ] -then - # Linux - PETSC_DIR='/media/builds/shared/openmpi/ff-petsc' - - export MPIRUN=/usr/bin/mpirun.openmpi - export MPICXX=/usr/bin/mpicxx.openmpi - export MPIFC=/usr/bin/mpif90.openmpi - export MPICC=/usr/bin/mpicc.openmpi -fi - -petscVersion=$(grep "VERSION_GIT" "$PETSC_DIR/c/include/petscversion.h" | cut -c36-42 | cut -f1 -d "\"" ) -echo "Installed PETSc version: $petscVersion" -echo "Try to source file $change_compiler" -test -f "$change_compiler" && echo "Source file $change_compiler" -test -f "$change_compiler" && cat "$change_compiler" -test -f "$change_compiler" && source "$change_compiler" - -# configuration & build -autoreconf -i -./configure --enable-download --prefix="$WORKSPACE/install" \ - --with-petsc=$PETSC_DIR/r/lib \ - --with-petsc_complex=$PETSC_DIR/c/lib -./3rdparty/getall -a -o Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet,MUMPS -./etc/jenkins/blob/build.sh - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -./etc/jenkins/blob/check.sh - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -./etc/jenkins/blob/install.sh - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -./etc/jenkins/blob/uninstall.sh - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi \ No newline at end of file diff --git a/etc/jenkins/job_Unix/job5_mpich.sh b/etc/jenkins/job_Unix/job5_mpich.sh deleted file mode 100755 index b72f53efb..000000000 --- a/etc/jenkins/job_Unix/job5_mpich.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env bash - -echo "Job 5 (mpich)" - -casejob=5_mpich - -# change default compiler -if [ "$(uname)" = "Darwin" ] -then - # MacOS - change_compiler=etc/jenkins/change_compiler/change_compiler-$(uname -s)-$(uname -r)-$casejob.sh -elif [ "$(uname)" = "Linux" ] -then - # Linux - export MPIRUN=/usr/bin/mpirun.mpich - export MPICXX=/usr/bin/mpicxx.mpich - export MPIFC=/usr/bin/mpif90.mpich - export MPICC=/usr/bin/mpicc.mpich -fi - -echo "Try to source file $change_compiler" -test -f "$change_compiler" && echo "Source file $change_compiler" -test -f "$change_compiler" && cat "$change_compiler" -test -f "$change_compiler" && source "$change_compiler" - -# configuration & build -autoreconf -i -./configure --enable-download --enable-debug --prefix="$WORKSPACE/install" -./3rdparty/getall -a -o PETSc,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet,MUMPS -./etc/jenkins/blob/build_PETSc.sh -./etc/jenkins/blob/build.sh - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -./etc/jenkins/blob/check.sh - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -./etc/jenkins/blob/install.sh - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -./etc/jenkins/blob/uninstall.sh - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Unix/job5_openmpi.sh b/etc/jenkins/job_Unix/job5_openmpi.sh deleted file mode 100755 index b53bb9714..000000000 --- a/etc/jenkins/job_Unix/job5_openmpi.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env bash - -echo "Job 5 (openmpi)" - -casejob=5_openmpi - -# change default compiler -if [ "$(uname)" = "Darwin" ] -then - # MacOS - change_compiler=etc/jenkins/change_compiler/change_compiler-$(uname -s)-$(uname -r)-$casejob.sh -elif [ "$(uname)" == "Linux" ] -then - # Linux - export MPIRUN=/usr/bin/mpirun.openmpi - export MPICXX=/usr/bin/mpicxx.openmpi - export MPIFC=/usr/bin/mpif90.openmpi - export MPICC=/usr/bin/mpicc.openmpi -fi - -echo "Try to source file $change_compiler" -test -f "$change_compiler" && echo "Source file $change_compiler" -test -f "$change_compiler" && cat "$change_compiler" -test -f "$change_compiler" && source "$change_compiler" - -# configuration & build -autoreconf -i -./configure --enable-download --enable-debug --prefix="$WORKSPACE/install" -./3rdparty/getall -a -o PETSc,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet,MUMPS -./etc/jenkins/blob/build_PETSc.sh -./etc/jenkins/blob/build.sh - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -./etc/jenkins/blob/check.sh - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -./etc/jenkins/blob/install.sh - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -./etc/jenkins/blob/uninstall.sh - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Unix/job_petsc.sh b/etc/jenkins/job_Unix/job_petsc.sh deleted file mode 100755 index 37846661e..000000000 --- a/etc/jenkins/job_Unix/job_petsc.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash - -echo "Job PETsc" - -freefemPETScVersion=$(grep "VERSION=" 3rdparty/ff-petsc/Makefile | cut -c9-15) - -################# -# OpenMPI version -if [ "$(uname)" == "Darwin" ] -then - # Macos - openmpiPETScDir='' - ## TODO -elif [ "$(uname)" == "Linux" ] -then - # Linux - openmpiPETScDir='/media/builds/shared/openmpi' -fi - -major=$(grep "#define PETSC_VERSION_MAJOR" "$openmpiPETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-35 ) -minor=$(grep "#define PETSC_VERSION_MINOR" "$openmpiPETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-36 ) -subminor=$(grep "#define PETSC_VERSION_SUBMINOR" "$openmpiPETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-35 ) -openmpiPETScVersion=$major.$minor.$subminor - -echo "Installer OpenMPI PETSc version: $openmpiPETScVersion" - -# Check version -if [ "$freefemPETScVersion" = "$openmpiPETScVersion" ] -then - echo "OpenMPI PETSc is up-to-date" - echo "Nothing to do" -else - echo "OpenMPI PETSc is outdated" - echo "Update" - rm -rf $openmpiPETScDir/ff-petsc - ./etc/jenkins/job_Unix/petsc/install-petsc-openmpi.sh -fi - -############### -# MPICH version -if [ "$(uname)" == "Darwin" ] -then - # Macos - mpichPETScDir='' - ## TODO -elif [ "$(uname)" == "Linux" ] -then - # Linux - mpichPETScDir='/media/builds/shared/mpich' -fi - -major=$(grep "#define PETSC_VERSION_MAJOR" "$mpichPETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-35 ) -minor=$(grep "#define PETSC_VERSION_MINOR" "$mpichPETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-36 ) -subminor=$(grep "#define PETSC_VERSION_SUBMINOR" "$mpichPETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-35 ) -mpichPETScVersion=$major.$minor.$subminor - -echo "Installer MPICH PETSc version: $mpichPETScVersion" - -# Check version -if [ "$freefemPETScVersion" = "$mpichPETScVersion" ] -then - echo "MPICH PETSc is up-to-date" - echo "Nothing to do" -else - echo "MPICH PETSc is outdated" - echo "Update" - rm -rf $mpichPETScDir/ff-petsc - ./etc/jenkins/job_Unix/petsc/install-petsc-mpich.sh -fi \ No newline at end of file diff --git a/etc/jenkins/job_Unix/petsc/install-petsc-mpich.sh b/etc/jenkins/job_Unix/petsc/install-petsc-mpich.sh deleted file mode 100755 index 510c63834..000000000 --- a/etc/jenkins/job_Unix/petsc/install-petsc-mpich.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -if [ "$(uname)" = "Darwin" ] -then - # TODO - : -elif [ "$(uname)" = "Linux" ] -then - PETSC_INSTALL_DIR='/media/builds/shared/mpich' - - export MPIRUN=/usr/bin/mpirun.mpich - export MPICXX=/usr/bin/mpicxx.mpich - export MPIFC=/usr/bin/mpif90.mpich - export MPICC=/usr/bin/mpicc.mpich -fi - -PETScVersion=$(grep "VERSION=" 3rdparty/ff-petsc/Makefile | cut -c9-15) - -# configuration & build -autoreconf -i -./configure --enable-download --prefix="$PETSC_INSTALL_DIR" -./3rdparty/getall -a -o PETSc -./etc/jenkins/blob/build_PETSc.sh -rm -rf "3rdparty/ff-petsc/petsc-$PETScVersion" - -if [ $? -eq 0 ] -then - echo "PETSc update complete" -else - echo "PETSc update failed" - rm -rf "$PETSC_INSTALL_DIR/ff-petsc" -fi diff --git a/etc/jenkins/job_Unix/petsc/install-petsc-openmpi.sh b/etc/jenkins/job_Unix/petsc/install-petsc-openmpi.sh deleted file mode 100755 index 3bbe3cc35..000000000 --- a/etc/jenkins/job_Unix/petsc/install-petsc-openmpi.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -if [ "$(uname)" = "Darwin" ] -then - # TODO - : -elif [ "$(uname)" = "Linux" ] -then - PETSC_INSTALL_DIR='/media/builds/shared/openmpi' - - export MPIRUN=/usr/bin/mpirun.openmpi - export MPICXX=/usr/bin/mpicxx.openmpi - export MPIFC=/usr/bin/mpif90.openmpi - export MPICC=/usr/bin/mpicc.openmpi -fi - -PETScVersion=$(grep "VERSION=" 3rdparty/ff-petsc/Makefile | cut -c9-15) - -# configuration & build -autoreconf -i -./configure --enable-download --prefix="$PETSC_INSTALL_DIR" -./3rdparty/getall -a -o PETSc -./etc/jenkins/blob/build_PETSc.sh -rm -rf "3rdparty/ff-petsc/petsc-$PETScVersion" - -if [ $? -eq 0 ] -then - echo "PETSc update complete" -else - echo "PETSc update failed" - rm -rf "$PETSC_INSTALL_DIR/ff-petsc" -fi diff --git a/etc/jenkins/job_Windows/job1.sh b/etc/jenkins/job_Windows/job1.sh deleted file mode 100755 index 5102a4155..000000000 --- a/etc/jenkins/job_Windows/job1.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!C:\msys64\usr\bin\bash.exe --login -source shell mingw64 - -echo "Job 1 Windows" - -WORKSPACEunix=$(echo "/$WORKSPACE" | sed -e 's/\\/\//g' -e 's/://') - -# configuration & build -tar xf AutoGeneratedFile.tar.gz -./configure --enable-generic --enable-optim --without-mpi --enable-maintainer-mode \ - CXXFLAGS=-mtune=generic CFLAGS=-mtune=generic FFLAGS=-mtune=generic \ - --prefix="$WORKSPACEunix/install" -make -j4 - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -make check - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -make install - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -make uninstall - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Windows/job3.sh b/etc/jenkins/job_Windows/job3.sh deleted file mode 100755 index cb789e841..000000000 --- a/etc/jenkins/job_Windows/job3.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!C:\msys64\usr\bin\bash.exe --login -source shell mingw64 - -echo "Job 3" - -WORKSPACEunix=$(echo "/$WORKSPACE" | sed -e 's/\\/\//g' -e 's/://') - -# configuration & build -autoreconf -i -./configure --enable-generic --enable-optim --enable-download --enable-maintainer-mode \ - CXXFLAGS=-mtune=generic CFLAGS=-mtune=generic FFLAGS=-mtune=generic \ - --prefix="$WORKSPACEunix/install" -./3rdparty/getall -a -make -j4 - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -make check - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -make install - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -make uninstall - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Windows/job4.sh b/etc/jenkins/job_Windows/job4.sh deleted file mode 100755 index 22d91c17f..000000000 --- a/etc/jenkins/job_Windows/job4.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!C:\msys64\usr\bin\bash.exe --login -source shell mingw64 - -echo "Job 4" - -WORKSPACEunix=$(echo "/$WORKSPACE" | sed -e 's/\\/\//g' -e 's/://') - -PETSC_DIR='/c/builds/shared/ff-petsc' - -# configuration & build -autoreconf -i -./configure --enable-generic --enable-optim --enable-download --enable-maintainer-mode \ - CXXFLAGS=-mtune=generic CFLAGS=-mtune=generic FFLAGS=-mtune=generic \ - --prefix="$WORKSPACEunix/install" \ - --with-petsc=$PETSC_DIR/real/lib \ - --with-petsc_complex=$PETSC_DIR/complex/lib -./3rdparty/getall -a -make -j4 - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -make check - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -make install - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -make uninstall - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Windows/job5.sh b/etc/jenkins/job_Windows/job5.sh deleted file mode 100755 index e30333fbf..000000000 --- a/etc/jenkins/job_Windows/job5.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!C:\msys64\usr\bin\bash.exe --login -source shell mingw64 - -echo "Job 5" - -WORKSPACEunix=$(echo "/$WORKSPACE" | sed -e 's/\\/\//g' -e 's/://') - -# configuration & build -autoreconf -i -./configure --enable-generic --enable-optim --enable-download --enable-maintainer-mode \ - --prefix="$WORKSPACEunix/install" -./3rdparty/getall -a -o PETSc,Ipopt,NLopt,freeYams,FFTW,Gmm++,MMG3D,mshmet,MUMPS -cd 3rdparty/ff-petsc && make petsc-slepc && cd - -./reconfigure -make -j4 - -if [ $? -eq 0 ] -then - echo "Build process complete" -else - echo "Build process failed" - exit 1 -fi - -# check -make check - -if [ $? -eq 0 ] -then - echo "Check process complete" -else - echo "Check process failed" -fi - -# install -make install - -if [ $? -eq 0 ] -then - echo "Install process complete" -else - echo "Install process failed" - exit 1 -fi - -# uninstall -make uninstall - -if [ $? -eq 0 ] -then - echo "Uninstall process complete" -else - echo "Uninstall process failed" - exit 1 -fi - -# Jenkins tests results analyser -./etc/jenkins/resultForJenkins/resultForJenkins.sh - -if [ $? -eq 0 ] -then - echo "Jenkins process complete" -else - echo "Jenkins process failed" -fi diff --git a/etc/jenkins/job_Windows/job_petsc.sh b/etc/jenkins/job_Windows/job_petsc.sh deleted file mode 100755 index 413310e0b..000000000 --- a/etc/jenkins/job_Windows/job_petsc.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!C:\msys64\usr\bin\bash.exe --login -source shell mingw64 - -echo "Job PETsc" - -freefemPETScVersion=$(grep "VERSION=" 3rdparty/ff-petsc/Makefile | cut -c9-15) - -PETScDir='/c/builds/shared/' - -major=$(grep "#define PETSC_VERSION_MAJOR" "$PETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-35 ) -minor=$(grep "#define PETSC_VERSION_MINOR" "$PETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-36 ) -subminor=$(grep "#define PETSC_VERSION_SUBMINOR" "$PETScDir/ff-petsc/c/include/petscversion.h" | cut -c34-35 ) -PETScVersion=$major.$minor.$subminor - -# Check version -if [ "$freefemPETScVersion" = "$PETScVersion" ] -then - echo "PETSc is up-to-date" - echo "Nothing to do" -else - echo "PETSc is outdated" - echo "Update" - rm -rf $PETScDir/ff-petsc - - # configuration & build - autoreconf -i - ./configure --enable-generic --enable-optim --enable-download \ - --prefix="$PETScDir" - ./3rdparty/getall -a -o PETSc - cd 3rdparty/ff-petsc && make petsc-slepc -fi diff --git a/etc/jenkins/resultForJenkins/resultForJenkins.sh b/etc/jenkins/resultForJenkins/resultForJenkins.sh deleted file mode 100755 index fb45e68ef..000000000 --- a/etc/jenkins/resultForJenkins/resultForJenkins.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env bash - -# script to generate a xml report, make a visualization with the Test Results Analyser plugin - -grep 'global-test-result: XFAIL' examples/*/*trs | sed -e "s/.trs::global-test-result/ /g ; s/\//:/g ; s/ : /:/g " | cut -c10- >> result.txt -grep 'global-test-result: CPU' examples/*/*trs | sed -e "s/.trs::global-test-result/ /g ; s/\//:/g ; s/ : /:/g " | cut -c10- >> result.txt -grep 'global-test-result: SKIP' examples/*/*trs | sed -e "s/.trs::global-test-result/ /g ; s/\//:/g ; s/ : /:/g " | cut -c10- >> result.txt -grep 'global-test-result: PASS' examples/*/*trs | sed -e "s/.trs::global-test-result/ /g ; s/\//:/g ; s/ : /:/g " | cut -c10- >> result.txt - -tests=0 failures=0 errors=0 skipped=0 xerrors=0 cpu=0 -Gtests=0 Gfailures=0 Gerrors=0 Gskipped=0 Gxerrors=0 Gcpu=0 -endclass=0 -folder=toto -first=1 - -echo "" >> report.xml -echo "" >> report.xml -while IFS=: read classname name result -do - -if [ "$classname" != "$folder" ] && [ $first==1 ] ; then -if [ "$folder" != 'toto' ]; then echo " " >> report.xml ; fi -sed -i -e "s/beginTest/ /g" report.xml -echo "beginTest" >> report.xml -tests=0 failures=0 errors=0 skipped=0 xerrors=0 -folder=$classname -first=1 -else -first=0 -fi - -if [ "$result" == "PASS" ]; then - tests=$((tests+1)) - Gtests=$((Gtests+1)) - echo " " >> report.xml -elif [ "$result" == "SKIP" ]; then - skipped=$((skipped+1)) - Gskipped=$((Gskipped+1)) - echo " " >> report.xml - echo " Skipped test, not library/plugin on the VM " >> report.xml - echo " " >> report.xml - elif [ "$result" == "CPU" ]; then - cpu=$((cpu+1)) - Gcpu=$((Gcpu+1)) - echo " " >> report.xml - echo " Cputime limit exceeded " >> report.xml - echo " " >> report.xml -elif [ "$result" == "XFAIL" ]; then - errors=$((errors+1)) - Gerrors=$((Gerrors+1)) - echo " " >> report.xml - echo " This is the end of edp script with the error:" >> report.xml - cat -v examples/$classname/$name.log | tail -35 | sed -e "s/\&/\&;/g" -e "s//\>/g" -e "s/'/\'/g" >> report.xml - echo " " >> report.xml - echo " " >> report.xml -elif [ "$result" == "FAIL" ]; then - failures=$((failures+1)) - Gfailures=$((Gfailures+1)) - echo " " >> report.xml - echo " This is the end of edp script with the error:" >> report.xml - cat -v examples/$classname/$name.log | tail -35 | sed -e "s/\&/\&;/g" -e "s//\>/g" -e "s/'/\'/g" >> report.xml - echo " " >> report.xml - echo " " >> report.xml -fi - -done < result.txt 2>/dev/null - -echo " " >> report.xml -echo "" >> report.xml -sed -i -e "s/beginTest/ /g" report.xml - -sed -i -e "s///g" report.xml - -mv report.xml etc/jenkins/resultForJenkins/report.xml -echo " ****************Make check results************ " -echo " PASS: $Gtests SKIPPED: $Gskipped XFAIL: $Gerrors FAIL:$Gfailures CPU: $Gcpu" - -[ "$Gfailures" -ne 0 ] && exit 1 || [ "$Gerrors" -ne 0 ] && exit 1 - -if [ "$Gfailures" -ne 0 ] || [ "$Gerrors" -ne 0 ]; then -exit 1 -fi diff --git a/examples/3d/Makefile.am b/examples/3d/Makefile.am index 762b07cbd..f1c4816da 100644 --- a/examples/3d/Makefile.am +++ b/examples/3d/Makefile.am @@ -31,7 +31,6 @@ TESTS_OTHER = 3d-leman.md \ cone.md \ convect-3d.md \ cube-period.md \ - cylinder-3d.md \ EqPoisson.md \ extract-boundary3d.md \ first.md \ @@ -60,6 +59,7 @@ TESTS_OTHER = 3d-leman.md \ TESTS_METIS = schwarz-nm-3d.md TESTS_TETGEN = cylinder.edp \ + cylinder-3d.md \ Poisson3d.md \ Poisson-cube-ballon.md \ refinesphere.md \ diff --git a/plugin/seq/iovtk.cpp b/plugin/seq/iovtk.cpp index 54d932de1..af1d461f0 100644 --- a/plugin/seq/iovtk.cpp +++ b/plugin/seq/iovtk.cpp @@ -1385,7 +1385,7 @@ class VTK_LoadMesh_Op : public E_F0mps { basicAC_F0::name_and_type VTK_LoadMesh_Op::name_param[] = {{"reft", &typeid(long)}, {"swap", &typeid(bool)}, {"refe", &typeid(long)}, - {"namelabel", &typeid(string)}, + {"namelabel", &typeid(string*)}, {"fields", &typeid( KN >*)}}; class VTK_LoadMesh : public OneOperator { @@ -3235,7 +3235,7 @@ class VTK_LoadMesh3_Op : public E_F0mps { basicAC_F0::name_and_type VTK_LoadMesh3_Op::name_param[] = { {"reftet", &typeid(long)}, {"swap", &typeid(bool)}, - {"refface", &typeid(long)}, {"namelabel", &typeid(string)}, + {"refface", &typeid(long)}, {"namelabel", &typeid(string*)}, {"cleanmesh", &typeid(bool)}, {"removeduplicate", &typeid(bool)}, {"precisvertice", &typeid(double)}, {"fields", &typeid( KN >*)} @@ -5635,9 +5635,9 @@ class VTK_WriteMeshT_Op : public E_F0mps { vector< Expression2 > l; #ifndef COMMON_HPDDM_PARALLEL_IO - static const int n_name_param = 8; + static const int n_name_param = std::is_same::value ? 8 : 7; #else - static const int n_name_param = 9; + static const int n_name_param = std::is_same::value ? 9 : 8;; #endif static basicAC_F0::name_and_type name_param[]; Expression nargs[n_name_param]; @@ -5650,6 +5650,9 @@ class VTK_WriteMeshT_Op : public E_F0mps { bool arg(int i, Stack stack, bool a) const { return nargs[i] ? GetAny< bool >((*nargs[i])(stack)) : a; } + string* arg(int i, Stack stack, string* a) const { + return nargs[i] ? GetAny< string* >((*nargs[i])(stack)) : a; + } double arg(int i, Stack stack, double a) const { return nargs[i] ? GetAny< double >((*nargs[i])(stack)) : a; } @@ -6337,6 +6340,7 @@ class VTK_LoadMeshT_Op : public E_F0mps { double arg(int i, Stack stack, double a) const { return nargs[i] ? GetAny< double >((*nargs[i])(stack)) : a; } + string* arg(int i, Stack stack, string* a) const { return nargs[i] ? GetAny< string* >((*nargs[i])(stack)) : a;} KN >* arg(int i, Stack stack,KN >*p) const { return nargs[i] ? GetAny< KN >* >((*nargs[i])(stack)) : p; } @@ -6358,7 +6362,7 @@ basicAC_F0::name_and_type VTK_LoadMeshT_Op< MeshS >::name_param[] = { {"reftri", &typeid(long)}, {"swap", &typeid(bool)}, {"refedge", &typeid(long)}, - {"namelabel", &typeid(string)}, + {"namelabel", &typeid(string*)}, {"cleanmesh", &typeid(bool)}, {"removeduplicate", &typeid(bool)}, {"precisvertice", &typeid(double)}, @@ -6371,7 +6375,7 @@ basicAC_F0::name_and_type VTK_LoadMeshT_Op< MeshL >::name_param[] = { {"refedge", &typeid(long)}, {"swap", &typeid(bool)}, {"refbdpoint", &typeid(long)}, - {"namelabel", &typeid(string)}, + {"namelabel", &typeid(string*)}, {"cleanmesh", &typeid(bool)}, {"removeduplicate", &typeid(bool)}, {"precisvertice", &typeid(double)},