diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 0a9f62a9..00000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,406 +0,0 @@ -stages: - - build - - test - - synthesis - - release - -variables: - PKG_CONFIG_PATH: /opt/openssl-3.5.4/lib/pkgconfig:/opt/openssl-3.5.4/lib64/pkgconfig - CMAKE_PREFIX_PATH: /opt/qt-6.9.0-static:/opt/eigen-3.4 - -build:x86:gcc-12: - stage: build - variables: - CC: gcc - CXX: g++ - tags: - - gcc - - x86 - needs: [] - script: - - mkdir build - - cd build - - source /opt/rh/gcc-toolset-12/enable - - cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_VIEWER_BUILD=ON .. - - make -j48 - -build:x86:gcc-13: - stage: build - variables: - CC: gcc - CXX: g++ - tags: - - gcc - - x86 - needs: [] - script: - - mkdir build - - cd build - - source /opt/rh/gcc-toolset-13/enable - - cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_VIEWER_BUILD=ON .. - - make -j48 - -build:x86:gcc_writer: - stage: build - variables: - CC: gcc - CXX: g++ - tags: - - gcc - - x86 - needs: [] - script: - - mkdir build - - cd build - - source /opt/rh/gcc-toolset-12/enable - - cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_WRITER_ONLY=ON .. - - make -j48 - -build:x86:gcc_nocuda: - stage: build - variables: - CC: gcc - CXX: g++ - tags: - - gcc - - x86 - needs: [] - script: - - mkdir build - - cd build - - source /opt/rh/gcc-toolset-12/enable - - cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_USE_CUDA=OFF .. - - make -j48 - -build:x86:driver: - stage: build - variables: - CC: gcc - CXX: g++ - tags: - - gcc - - x86 - needs: [] - script: - - cd fpga/pcie_driver - - make - -build:x86:python_client: - stage: build - needs: [] - tags: - - python - script: - - bash gen_python_client.sh - artifacts: - paths: - - dist/jfjoch_client-*whl - - dist/jfjoch_client-*tar.gz - expire_in: 1 week - -build:x86:frontend: - stage: build - tags: - - x86 - needs: [] - script: - - mkdir build - - cd build - - /usr/bin/cmake .. - - make frontend - - cd ../frontend/dist - - tar czf ../../jfjoch_frontend.tar.gz * - artifacts: - paths: - - jfjoch_frontend.tar.gz - expire_in: 1 week - -build:x86:rpm: - stage: build - tags: - - x86 - needs: [] - script: - - mkdir build - - cd build - - source /opt/rh/gcc-toolset-12/enable - - cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_INSTALL_DRIVER_SOURCE=ON -DJFJOCH_VIEWER_BUILD=ON .. - - make frontend - - make -j48 package - - mv *.rpm .. - artifacts: - paths: - - "jfjoch-*.rpm" - expire_in: 1 week - -build:x86:rpm_nocuda: - stage: build - tags: - - x86 - needs: [] - script: - - mkdir build - - cd build - - source /opt/rh/gcc-toolset-12/enable - - cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_INSTALL_DRIVER_SOURCE=ON -DJFJOCH_VIEWER_BUILD=ON -DJFJOCH_USE_CUDA=OFF .. - - make frontend - - make -j48 package - - mv *.rpm .. - artifacts: - paths: - - "jfjoch-viewer*.rpm" - expire_in: 1 week - - -build:x86:sls9:rpm: - stage: build - tags: - - x86 - needs: [] - script: - - mkdir build - - cd build - - source /opt/rh/gcc-toolset-12/enable - - cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_INSTALL_DRIVER_SOURCE=OFF -DJFJOCH_VIEWER_BUILD=OFF -DSLS9=ON .. - - make frontend - - make -j48 package - - mv *.rpm .. - artifacts: - paths: - - "jfjoch-slsdet9*.rpm" - expire_in: 1 week - -test:x86:gcc: - stage: test - timeout: 90m - variables: - CTEST_OUTPUT_ON_FAILURE: 1 - CC: gcc - CXX: g++ - needs: ["build:x86:gcc-12"] - dependencies: [] - tags: - - gcc - - x86 - script: - - source /opt/rh/gcc-toolset-12/enable - - mkdir -p build - - cd build - - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j48 jfjoch_test jfjoch_hdf5_test - - cd tests - - ./jfjoch_test -r junit -o report.xml - - cd ../tools - - ./jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 - artifacts: - expire_in: 1 week - reports: - junit: build/tests/report.xml - -test:x86:crystfel: - stage: test - timeout: 90m - variables: - CTEST_OUTPUT_ON_FAILURE: 1 - CC: gcc - CXX: g++ - needs: ["build:x86:gcc-12"] - dependencies: [] - tags: - - gcc - - x86 - - crystfel - script: - - source /opt/rh/gcc-toolset-12/enable - - mkdir -p build - - cd build - - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 jfjoch_hdf5_test - - cd ../tests/crystfel - - ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 10 - - indexamajig -i writing_test.lst -g jf4m.geom -o x.stream --indexing=xgandalf - -test:x86:xds_durin: - stage: test - timeout: 90m - variables: - CTEST_OUTPUT_ON_FAILURE: 1 - CC: gcc - CXX: g++ - needs: ["build:x86:gcc-12"] - dependencies: [] - tags: - - gcc - - x86 - - xds - script: - - source /opt/rh/gcc-toolset-12/enable - - mkdir -p build - - cd build - - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 jfjoch_hdf5_test - - cd ../tests/xds_durin - - ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 25 - - xds_par |grep -a1 ISa |tail -n1 - -test:x86:xds_durin_new_hdf5_format: - stage: test - timeout: 90m - variables: - CTEST_OUTPUT_ON_FAILURE: 1 - CC: gcc - CXX: g++ - needs: ["build:x86:gcc-12"] - dependencies: [] - tags: - - gcc - - x86 - - xds - script: - - source /opt/rh/gcc-toolset-12/enable - - mkdir -p build - - cd build - - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 jfjoch_hdf5_test - - cd ../tests/xds_durin - - HDF5MASTER_NEW_FORMAT=1 ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 25 - - xds_par |grep -a1 ISa |tail -n1 - -test:x86:xds_neggia: - stage: test - timeout: 90m - variables: - CTEST_OUTPUT_ON_FAILURE: 1 - CC: gcc - CXX: g++ - needs: ["build:x86:gcc-12"] - dependencies: [] - tags: - - gcc - - x86 - - xds - script: - - source /opt/rh/gcc-toolset-12/enable - - mkdir -p build - - cd build - - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 jfjoch_hdf5_test - - cd ../tests/xds_neggia - - ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 25 - - xds_par |grep -a1 ISa |tail -n1 - -test:x86:xia2.ssx: - stage: test - timeout: 90m - variables: - CTEST_OUTPUT_ON_FAILURE: 1 - CC: gcc - CXX: g++ - needs: ["build:x86:gcc-12"] - dependencies: [] - tags: - - gcc - - x86 - - xds - script: - - source /opt/rh/gcc-toolset-12/enable - - mkdir -p build - - mkdir -p dials_test - - cd build - - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 jfjoch_hdf5_test - - cd ../dials_test - - ../build/tools/jfjoch_hdf5_test ../tests/test_data/compression_benchmark.h5 100 - - source /usr/local/dials-v3-17-0/dials_env.sh - - xia2.ssx image=writing_test_master.h5 space_group=P43212 unit_cell=78.551,78.551,36.914,90.000,90.000,90.000 - -synthesis:hls: - stage: synthesis - dependencies: [] - variables: - CC: gcc - CXX: g++ - rules: - - if: $CI_COMMIT_MESSAGE =~ /^FPGA/ - - if: $CI_COMMIT_MESSAGE =~ /^HLS/ - tags: - - vivado - script: - - source /opt/rh/gcc-toolset-12/enable - - source /opt/Xilinx/Vivado/2022.2/settings64.sh - - mkdir -p build - - cd build - - /usr/bin/cmake .. - - make hls - needs: ["build:x86:gcc-12", "test:x86:gcc"] - -synthesis:100g: - stage: synthesis - dependencies: [] - retry: 2 - variables: - CC: gcc - CXX: g++ - allow_failure: true - rules: - - if: $CI_COMMIT_MESSAGE =~ /^FPGA/ - - if: $CI_COMMIT_MESSAGE =~ /^100G/ - tags: - - vivado - artifacts: - paths: - - "jfjoch_fpga_pcie_100g.mcs" - expire_in: 1 week - script: - - source /opt/rh/gcc-toolset-12/enable - - source /opt/Xilinx/Vivado/2022.2/settings64.sh - - mkdir -p build - - cd build - - /usr/bin/cmake .. - - make -j4 pcie_100g - - mv fpga/jfjoch_fpga_pcie_100g.mcs .. - needs: ["build:x86:gcc-12", "test:x86:gcc"] - -synthesis:8x10g: - stage: synthesis - dependencies: [] - variables: - CC: gcc - CXX: g++ - retry: 2 - allow_failure: true - rules: - - if: $CI_COMMIT_MESSAGE =~ /^FPGA/ - - if: $CI_COMMIT_MESSAGE =~ /^8x10G/ - tags: - - vivado - artifacts: - paths: - - "jfjoch_fpga_pcie_8x10g.mcs" - expire_in: 1 week - script: - - source /opt/rh/gcc-toolset-12/enable - - source /opt/Xilinx/Vivado/2022.2/settings64.sh - - mkdir -p build - - cd build - - /usr/bin/cmake .. - - make -j4 pcie_8x10g - - mv fpga/jfjoch_fpga_pcie_8x10g.mcs .. - needs: [ "build:x86:gcc-12", "test:x86:gcc" ] - -release: - stage: release - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - when: manual - tags: - - x86 - - python - dependencies: - - build:x86:frontend - - build:x86:rpm - - build:x86:rpm_nocuda - - build:x86:sls9:rpm - - build:x86:python_client - script: - - bash gitlab_upload_release.sh diff --git a/gitlab_upload_release.sh b/gitlab_upload_release.sh deleted file mode 100644 index 7849f026..00000000 --- a/gitlab_upload_release.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -# -# Copyright (2019-2024) Paul Scherrer Institute -# - -export PACKAGE_VERSION_SEM=`head -n1 VERSION` -export PACKAGE_VERSION=${PACKAGE_VERSION_SEM//-/_} -export PACKAGE_VERSION_PYTHON=${PACKAGE_VERSION_SEM//-rc./rc} -export PACKAGE_VERSION_PYTHON=${PACKAGE_VERSION_PYTHON//-alpha./a} -export PACKAGE_VERSION_PYTHON=${PACKAGE_VERSION_PYTHON//-beta./b} - -export PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/jungfraujoch/${PACKAGE_VERSION_SEM}" - -gunzip fpga/images/jfjoch_fpga_pcie_100g.mcs.gz -gunzip fpga/images/jfjoch_fpga_pcie_8x10g.mcs.gz - -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file jfjoch-driver-dkms-${PACKAGE_VERSION}-1.el8.noarch.rpm "${PACKAGE_REGISTRY_URL}/jfjoch-driver-dkms-${PACKAGE_VERSION}-1.el8.noarch.rpm" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file jfjoch-writer-${PACKAGE_VERSION}-1.el8.x86_64.rpm "${PACKAGE_REGISTRY_URL}/jfjoch-writer-${PACKAGE_VERSION}-1.el8.x86_64.rpm" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file jfjoch-viewer-${PACKAGE_VERSION}-1.el8.x86_64.rpm "${PACKAGE_REGISTRY_URL}/jfjoch-viewer-${PACKAGE_VERSION}-1.el8.x86_64.rpm" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file jfjoch-${PACKAGE_VERSION}-1.el8.x86_64.rpm "${PACKAGE_REGISTRY_URL}/jfjoch-${PACKAGE_VERSION}-1.el8.x86_64.rpm" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file jfjoch-slsdet9-${PACKAGE_VERSION}-1.el8.x86_64.rpm "${PACKAGE_REGISTRY_URL}/jfjoch-slsdet9-${PACKAGE_VERSION}-1.el8.x86_64.rpm" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file jfjoch_frontend.tar.gz "${PACKAGE_REGISTRY_URL}/jfjoch_frontend.tar.gz" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file fpga/images/jfjoch_fpga_pcie_100g.mcs "${PACKAGE_REGISTRY_URL}/jfjoch_fpga_pcie_100g.mcs" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file fpga/images/jfjoch_fpga_pcie_8x10g.mcs "${PACKAGE_REGISTRY_URL}/jfjoch_fpga_pcie_8x10g.mcs" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file dist/jfjoch_client-${PACKAGE_VERSION_PYTHON}.tar.gz "${PACKAGE_REGISTRY_URL}/jfjoch_client-${PACKAGE_VERSION_PYTHON}.tar.gz" -curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file dist/jfjoch_client-${PACKAGE_VERSION_PYTHON}-py3-none-any.whl "${PACKAGE_REGISTRY_URL}/jfjoch_client-${PACKAGE_VERSION_PYTHON}-py3-none-any.whl" - -release-cli create --name "Release $PACKAGE_VERSION_SEM" --tag-name $PACKAGE_VERSION_SEM \ - --assets-link "{\"name\":\"jfjoch_frontend.tar.gz\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch_frontend.tar.gz\"}" \ - --assets-link "{\"name\":\"jfjoch_fpga_pcie_8x10g.mcs\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch_fpga_pcie_8x10g.mcs\"}" \ - --assets-link "{\"name\":\"jfjoch_fpga_pcie_100g.mcs\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch_fpga_pcie_100g.mcs\"}" \ - --assets-link "{\"name\":\"jfjoch-${PACKAGE_VERSION}-1.el8.x86_64.rpm\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch-${PACKAGE_VERSION}-1.el8.x86_64.rpm\",\"link_type\":\"package\"}" \ - --assets-link "{\"name\":\"jfjoch-slsdet9-${PACKAGE_VERSION}-1.el8.x86_64.rpm\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch-slsdet9-${PACKAGE_VERSION}-1.el8.x86_64.rpm\",\"link_type\":\"package\"}" \ - --assets-link "{\"name\":\"jfjoch-writer-${PACKAGE_VERSION}-1.el8.x86_64.rpm\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch-writer-${PACKAGE_VERSION}-1.el8.x86_64.rpm\",\"link_type\":\"package\"}" \ - --assets-link "{\"name\":\"jfjoch-viewer-${PACKAGE_VERSION}-1.el8.x86_64.rpm\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch-viewer-${PACKAGE_VERSION}-1.el8.x86_64.rpm\",\"link_type\":\"package\"}" \ - --assets-link "{\"name\":\"jfjoch-driver-dkms-${PACKAGE_VERSION}-1.el8.noarch.rpm\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch-driver-dkms-${PACKAGE_VERSION}-1.el8.noarch.rpm\",\"link_type\":\"package\"}" \ - --assets-link "{\"name\":\"jfjoch_client-${PACKAGE_VERSION_PYTHON}-py3-none-any.whl\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch_client-${PACKAGE_VERSION_PYTHON}-py3-none-any.whl\",\"link_type\":\"package\"}" \ - --assets-link "{\"name\":\"jfjoch_client-${PACKAGE_VERSION_PYTHON}.tar.gz\",\"url\":\"${PACKAGE_REGISTRY_URL}/jfjoch_client-${PACKAGE_VERSION_PYTHON}.tar.gz\",\"link_type\":\"package\"}"