variables: REGISTRY: registry.gitlab.com/frontistr-commons/frontistr image: ${REGISTRY}/build:latest stages: - build - test - build_for_deploy - deploy make_serial: stage: build script: - cmake -Bbuild_serial -DWITH_MPI=OFF -DWITH_OPENMP=OFF -DWITH_ML=OFF -DWITH_MUMPS=OFF -H. - cmake --build build_serial -- -j $(nproc) artifacts: paths: - build_serial/ expire_in: 100min make_openmp: stage: build script: - cmake -Bbuild_openmp -DWITH_MPI=OFF -DWITH_OPENMP=ON -DWITH_ML=OFF -DWITH_MUMPS=OFF -H. - cmake --build build_openmp -- -j $(nproc) artifacts: paths: - build_openmp/ expire_in: 100min make_mpi: stage: build script: - cmake -Bbuild_mpi -DWITH_MPI=ON -DWITH_OPENMP=OFF -H. - cmake --build build_mpi -- -j $(nproc) artifacts: paths: - build_mpi/ expire_in: 100min make_hybrid: stage: build script: - cmake -Bbuild_hybrid -DWITH_MPI=ON -DWITH_OPENMP=ON -H. - cmake --build build_hybrid -- -j $(nproc) artifacts: paths: - build_hybrid/ expire_in: 100min .test: stage: test artifacts: paths: - run_test expire_in: 1week when: on_failure test_serial: extends: .test needs: ["make_serial"] dependencies: - make_serial script: - cd build_serial - ctest -L serial --output-on-failure test_openmp: extends: .test needs: ["make_openmp"] dependencies: - make_openmp script: - cd build_openmp - ctest -L serial --output-on-failure - ctest -L openmp --output-on-failure test_mpi: extends: .test needs: ["make_mpi"] dependencies: - make_mpi script: - cd build_mpi - ctest -L serial --output-on-failure - ctest -L mpi --output-on-failure test_hybrid: extends: .test needs: ["make_hybrid"] dependencies: - make_hybrid script: - cd build_hybrid - ctest -L serial --output-on-failure - ctest -L openmp --output-on-failure - ctest -L mpi --output-on-failure - ctest -L hybrid --output-on-failure document: image: ${REGISTRY}/document:latest stage: build_for_deploy needs: [] script: - echo '/FrontISTR/manual_ja/ /FrontISTR_manual/ja/ 301' >> public/_redirects - echo '/FrontISTR/manual_en/ /FrontISTR_manual/en/ 301' >> public/_redirects artifacts: paths: - public expire_in: 100min variables: GIT_SUBMODULE_STRATEGY: recursive doxygen: image: ${REGISTRY}/document:latest stage: build_for_deploy needs: [] script: - cmake -Bbuild_doc -H. -DWITH_DOC=ON - make -C build_doc doc - rm -rf public/doxygen - mv build_doc/doc/html public/doxygen artifacts: paths: - public expire_in: 100min pages: stage: deploy dependencies: - document - doxygen - binary:x86_64-w64-mingw32 - binary:x86_64-w64-mingw32-msmpi script: - ls public artifacts: paths: - public expire_in: 20min only: - master - release docker:fistr1: image: docker:latest stage: build_for_deploy needs: [] services: - docker:dind script: - apk add make - cd docker/container - make push tags: - docker binary:x86_64-w64-mingw32: image: ${REGISTRY}/x86_64-w64-mingw32-lib stage: build_for_deploy needs: [] script: - LIB_ROOT=/usr/local/x86_64-w64-mingw32 - cmake -Bbuild -H. -DCMAKE_TOOLCHAIN_FILE=${LIB_ROOT}/x86_64-w64-mingw32.cmake -DCMAKE_INSTALL_PREFIX=${LIB_ROOT} -DCMAKE_EXE_LINKER_FLAGS="-static -static-libstdc++ -static-libgcc -lstdc++ -lgcc -lwinpthread" -DMUMPS_INCLUDE_PATH=${LIB_ROOT}/include -DMUMPS_D_LIB=${LIB_ROOT}/lib/libdmumps.a\;${LIB_ROOT}/lib/libmpiseq.a -DMUMPS_PORD_LIB=${LIB_ROOT}/lib/libpord.a -DMUMPS_COMMON_LIB=${LIB_ROOT}/lib/libmumps_common.a -DMETIS_INCLUDE_PATH=${LIB_ROOT}/include -DMETIS_LIBRARIES=${LIB_ROOT}/lib/libmetis.a -DREFINER_INCLUDE_PATH=${LIB_ROOT}/include -DREFINER_LIBRARIES=${LIB_ROOT}/lib/libRcapRefiner.a -DBLAS_LIBRARIES=${LIB_ROOT}/lib/libopenblas.a -DLAPACK_LIBRARIES=${LIB_ROOT}/lib/libopenblas.a -DSCALAPACK_LIBRARIES=${LIB_ROOT}/lib/libdmumps.a -DWITH_METIS=ON -DWITH_MUMPS=ON -DWITH_LAPACK=ON -DWITH_REFINER=ON -DWITH_ML=ON -DWITH_MPI=OFF -DWINDOWS=ON - cmake --build build -- -j $(nproc) - mkdir -p public/release/x86_64-w64-mingw32/ - zip -j public/release/x86_64-w64-mingw32/FrontISTR-latest.zip build/fistr1/fistr1.exe build/fistr1/tools/neu2fstr.exe build/hecmw1/tools/hecmw_part1.exe build/hecmw1/tools/hecmw_vis1.exe build/hecmw1/tools/rmerge.exe build/hecmw1/tools/hec2rcap.exe build/hecmw1/tools/rconv.exe artifacts: paths: - public expire_in: 100min binary:x86_64-w64-mingw32-msmpi: image: ${REGISTRY}/x86_64-w64-mingw32-mpilib stage: build_for_deploy needs: [] script: - LIB_ROOT=/usr/local/x86_64-w64-mingw32 - cmake -Bbuild -H. -DCMAKE_TOOLCHAIN_FILE=${LIB_ROOT}/x86_64-w64-mingw32.cmake -DCMAKE_INSTALL_PREFIX=${LIB_ROOT} -DCMAKE_EXE_LINKER_FLAGS="-static -static-libstdc++ -static-libgcc -lstdc++ -lgcc -lwinpthread" -DCMAKE_CXX_STANDARD_LIBRARIES=${LIB_ROOT}/lib/libmsmpi.a -DMPI_C_INCLUDE_PATH=${LIB_ROOT}/include -DMPI_C_LIBRARIES=${LIB_ROOT}/lib/libmsmpi.a -DMPI_CXX_INCLUDE_PATH=${LIB_ROOT}/include -DMPI_CXX_LIBRARIES=${LIB_ROOT}/lib/libmsmpi.a -DMPI_Fortran_INCLUDE_PATH=${LIB_ROOT}/include -DMPI_Fortran_LIBRARIES=${LIB_ROOT}/lib/libmsmpi.a -DMUMPS_INCLUDE_PATH=${LIB_ROOT}/include -DMUMPS_D_LIB=${LIB_ROOT}/lib/libdmumps.a -DMUMPS_PORD_LIB=${LIB_ROOT}/lib/libpord.a -DMUMPS_COMMON_LIB=${LIB_ROOT}/lib/libmumps_common.a -DMETIS_INCLUDE_PATH=${LIB_ROOT}/include -DMETIS_LIBRARIES=${LIB_ROOT}/lib/libmetis.a -DREFINER_INCLUDE_PATH=${LIB_ROOT}/include -DREFINER_LIBRARIES=${LIB_ROOT}/lib/libRcapRefiner.a -DBLAS_LIBRARIES=${LIB_ROOT}/lib/libopenblas.a -DLAPACK_LIBRARIES=${LIB_ROOT}/lib/libopenblas.a -DSCALAPACK_LIBRARIES=${LIB_ROOT}/lib/libscalapack.a -DWITH_METIS=ON -DWITH_MUMPS=ON -DWITH_LAPACK=ON -DWITH_REFINER=ON -DWITH_ML=ON -DWITH_MPI=ON -DWINDOWS=ON - cmake --build build -- -j $(nproc) - mkdir -p public/release/x86_64-w64-mingw32-msmpi/ - zip -j public/release/x86_64-w64-mingw32-msmpi/FrontISTR-latest.zip build/fistr1/fistr1.exe build/fistr1/tools/neu2fstr.exe build/hecmw1/tools/hecmw_part1.exe build/hecmw1/tools/hecmw_vis1.exe build/hecmw1/tools/rmerge.exe build/hecmw1/tools/hec2rcap.exe build/hecmw1/tools/rconv.exe ${LIB_ROOT}/bin/mpiexec.exe ${LIB_ROOT}/bin/smpd.exe ${LIB_ROOT}/lib/msmpi.dll artifacts: paths: - public expire_in: 100min