diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b8ba0b31..1ccf97f4f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,18 +3,19 @@ name: CI on: [push, pull_request] jobs: - build: + build-Linux: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4.0.0 - name: Install system dependencies run: > sudo apt-get update; sudo apt-get --no-install-recommends install catch2 + cmake libfreetype6-dev libglew-dev libglm-dev @@ -25,7 +26,7 @@ jobs: python-is-python3 python3-biopython python3-dev - python3-distutils + python3-setuptools python3-numpy python3-pil python3-pytest @@ -49,3 +50,85 @@ jobs: - name: Test run: | ./install-prefix/bin/pymol -ckqy testing/testing.py --run all + + build-Windows: + + runs-on: windows-latest + + env: + CONDA_ROOT: ${{github.workspace}}\..\tmp\mambaforge + MAMBAFORGE_EXEC: ${{github.workspace}}\..\tmp\mambaforge.exe + + steps: + - uses: actions/checkout@v4.0.0 + - name: Download miniconda + shell: cmd + run: |- + if not exist %CONDA_ROOT% mkdir %CONDA_ROOT% + curl -L -o %MAMBAFORGE_EXEC% https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-24.3.0-0-Windows-x86_64.exe + start /wait %MAMBAFORGE_EXEC% /S /D=%CONDA_ROOT% + + - name: Set up Miniconda + shell: cmd + run: |- + CALL %CONDA_ROOT%\\Scripts\\activate.bat + conda install -y -c conda-forge -c schrodinger python cmake libpng freetype pyqt glew libxml2 numpy catch2=2.13.3 glm libnetcdf collada2gltf pytest + + - name: Conda info + shell: cmd + run: |- + CALL %CONDA_ROOT%\\Scripts\\activate.bat + conda info + + - name: Get additional sources + shell: cmd + run: | + git clone --depth 1 https://github.com/rcsb/mmtf-cpp.git + cp -R mmtf-cpp/include/mmtf* include/ + + - name: Build PyMOL + shell: cmd + run: | + CALL %CONDA_ROOT%\\Scripts\\activate.bat + python setup.py --testing install --prefix=install-prefix + + - name: Test + shell: cmd + run: | + CALL %CONDA_ROOT%\\Scripts\\activate.bat + install-prefix\\Scripts\\pymol.bat -ckqy testing\\testing.py --run all + + build-MacOS: + + runs-on: macos-latest + + env: + CONDA_ROOT: "/tmp/miniconda" + MAMBAFORGE_EXEC: ${{github.workspace}}\..\tmp\mambaforge.exe + + steps: + - uses: actions/checkout@v4.0.0 + - name: Set up Miniconda and Build + run: |- + curl -L -o $CONDA_ROOT.sh https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-MacOSX-x86_64.sh + bash $CONDA_ROOT.sh -b -p $CONDA_ROOT + export PATH="$CONDA_ROOT/bin:$PATH" + conda config --set quiet yes + conda install -y -c conda-forge -c schrodinger python cmake libpng freetype pyqt glew libxml2 numpy catch2=2.13.3 glm libnetcdf collada2gltf pytest + conda info + + - name: Get additional sources + run: | + git clone --depth 1 https://github.com/rcsb/mmtf-cpp.git + cp -R mmtf-cpp/include/mmtf* include/ + + - name: Build PyMOL + run: |- + export MACOSX_DEPLOYMENT_TARGET=12.0 + export PATH="$CONDA_ROOT/bin:$PATH" + python setup.py install --prefix=install-prefix + + - name: Test + run: |- + export PATH="$CONDA_ROOT/bin:$PATH" + ./install-prefix/bin/pymol -ckqy testing/testing.py --run all