Skip to content
Snippets Groups Projects
.gitlab-ci.yml 7.08 KiB
Newer Older
  • Learn to ignore specific revisions
  • Python 3 Intel CPU:
      script:
      - export PY_EXE=python3
    
      - source /opt/enable-intel-cl.sh
    
      - export PYOPENCL_TEST="intel(r):pu"
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - intel-cl-cpu
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    
    Python 3 Nvidia Titan X:
    
      script:
      - export PY_EXE=python3
      - export PYOPENCL_TEST=nvi:titan
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - nvidia-titan-x
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    
    Python 3 Nvidia Titan V:
    
      script:
      - export PY_EXE=python3
      - export PYOPENCL_TEST=nvi:titan
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - nvidia-titan-v
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    Python 3 Nvidia K40:
    
      script:
      - export PY_EXE=python3
      - export PYOPENCL_TEST=nvi:k40
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - nvidia-k40
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    
    Python 3 AMD GPU:
    
      allow_failure: true
    
      script:
      - export PY_EXE=python3
      - export PYOPENCL_TEST=amd:gfx803
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      # https://andreask.cs.illinois.edu/MachineShop/UserNotes
      - export OCL_ICD_VENDORS=/etc/OpenCLwithAMD/vendors
    
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - amd-fiji
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    Python 3 POCL:
      script:
      - export PY_EXE=python3
    
      - export PYOPENCL_TEST=portable:pthread
    
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - pocl
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    Python 3 POCL CL 1.1:
      script:
      - export PY_EXE=python3
    
      - export PYOPENCL_TEST=portable:pthread
    
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - echo "CL_PRETEND_VERSION = '1.1'" > siteconf.py
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - pocl
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    
    Python 3 POCL K40:
    
      script:
      - export PY_EXE=python3
    
      - export PYOPENCL_TEST=portable:k40
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - pocl
      - nvidia-k40
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    Python 3 POCL Titan V:
      script:
      - export PY_EXE=python3
      - export PYOPENCL_TEST=portable:titan
    
      - export EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - pocl
    
      - nvidia-titan-v
    
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    Python 3 POCL (+GL and special functions):
      script:
      - export PY_EXE=python3
    
      - export PYOPENCL_TEST=portable:pthread
    
      - export EXTRA_INSTALL="pybind11 numpy mako scipy pyfmmlib"
      - echo "CL_ENABLE_GL = True" > siteconf.py
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
      tags:
      - python3
      - pocl
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    Python 3 Conda Apple:
    
        # That's where homebrew lives, and it has the curl that doesn't cause
        # cert errors from the OS being too old.
        export PATH="/usr/local/opt/curl/bin:$PATH"
    
    
        CONDA_ENVIRONMENT=.test-conda-env.yml
        grep -v ocl-icd .test-conda-env-py3.yml > $CONDA_ENVIRONMENT
        export CC=gcc
    
        curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh
    
        ./configure.py --cxxflags= --ldflags= --cl-libname=OpenCL
        . ./build-and-test-py-project-within-miniconda.sh
    
      tags:
      - apple
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    
    PyPy3 POCL:
    
      - export PY_EXE=pypy3
    
      - export PYOPENCL_TEST=portable:pthread
    
      # On pypy, this seems to install old versions from the package index
      # independently of whether newer ones are already present.
    
    
      - export NO_DOCTESTS=1
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
    
      - ". ./build-and-test-py-project.sh"
    
      tags:
      - pypy
      - pocl
      except:
      - tags
      artifacts:
        reports:
          junit: test/pytest.xml
    
    
    Matt Wala's avatar
    Matt Wala committed
    Pylint:
      script:
    
      - EXTRA_INSTALL="pybind11 numpy mako matplotlib PyOpenGl IPython"
    
    Matt Wala's avatar
    Matt Wala committed
      # After installation, PyOpenCL cannot be used from the source directory due
      # to package shadowing. To work around this, build in editable mode so there
      # is only one copy of everything.
    
      - PROJECT_INSTALL_FLAGS="--editable"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-pylint.sh
    
      - . ./prepare-and-run-pylint.sh "$CI_PROJECT_NAME" test/test_*.py
    
    Matt Wala's avatar
    Matt Wala committed
      tags:
    
    Matt Wala's avatar
    Matt Wala committed
      except:
      - tags
    
    Examples:
      script: |
    
        curl -L -O https://tiker.net/ci-support-v0
        . ci-support-v0
    
        EXTRA_INSTALL="pillow cgen mako imageio"
    
        build_py_project_in_venv
        (cd examples; rm -f gl_*)
    
        run_examples --no-require-main
    
      except:
      - tags
      tags:
      - python3
      - pocl
    
    
    Documentation:
      script:
      - EXTRA_INSTALL="pybind11 numpy mako"
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-docs.sh
    
      - ". ./build-docs.sh"
      tags:
      - linux
    
    Flake8:
      script:
    
      - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-flake8.sh
    
      - . ./prepare-and-run-flake8.sh "$CI_PROJECT_NAME" test examples
    
      tags:
      - python3
      except:
      - tags
    
    
    Downstream:
      parallel:
        matrix:
        - DOWNSTREAM_PROJECT: [loopy, boxtree, meshmode]
      tags:
      - large-node
      - "docker-runner"
      script: |
        curl -L -O https://tiker.net/ci-support-v0
        . ./ci-support-v0
    
        TEST_ENV_ROOT="$(pwd)/$DOWNSTREAM_PROJECT/.miniforge3/envs/testing"
        ./configure.py --cl-inc-dir="$TEST_ENV_ROOT/include" --cl-lib-dir="$TEST_ENV_ROOT/lib"
        git add -f siteconf.py
    
    
        prepare_downstream_build "https://github.com/inducer/$DOWNSTREAM_PROJECT.git"
    
        sed -i 's/pyopencl/ocl-icd/' .test-conda-env-py3.yml
        build_py_project_in_conda_env
        test_py_project
    
    # vim: sw=2