mirror of
https://github.com/KosinskiLab/AlphaPulldown.git
synced 2026-06-07 16:34:25 +08:00
138 lines
4.6 KiB
YAML
138 lines
4.6 KiB
YAML
name: AlphaPulldown-CI-CD
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
release:
|
|
types: [published]
|
|
|
|
jobs:
|
|
build-and-test:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.10.12"]
|
|
install-type: ['user', 'developer']
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- run: ls -la -R
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
cache: "pip"
|
|
- run: python -c "import sys; print(sys.version)"
|
|
- run: |
|
|
echo $CONDA/bin >> $GITHUB_PATH
|
|
echo "$GITHUB_WORKSPACE/alphapulldown" >> $GITHUB_PATH
|
|
- if: matrix.install-type == 'user'
|
|
run: |
|
|
conda create -n AlphaPulldown -c omnia -c bioconda -c conda-forge python==${{ matrix.python-version }} openmm==8.0 pdbfixer==1.9 kalign2 cctbx-base pytest importlib_metadata
|
|
eval "$(conda shell.bash hook)"
|
|
conda activate AlphaPulldown
|
|
conda install -c bioconda hmmer hhsuite
|
|
pip install alphapulldown
|
|
- if: matrix.install-type == 'developer'
|
|
run: |
|
|
conda create -n AlphaPulldown -c omnia -c bioconda -c conda-forge python==${{ matrix.python-version }} openmm==8.0 pdbfixer==1.9 kalign2 cctbx-base pytest importlib_metadata
|
|
eval "$(conda shell.bash hook)"
|
|
conda activate AlphaPulldown
|
|
conda install -c bioconda hmmer hhsuite
|
|
pip install -e .
|
|
pip install -e ColabFold --no-deps
|
|
pip install -e alphafold --no-deps
|
|
export PYTHONPATH=$PWD/AlphaLink2:$PYTHONPATH
|
|
# install dependencies for AlphaLink backend
|
|
# pip install torch==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
|
|
# pip install setuptools==69.5.1 # Downgrade setuptools to avoid crashes when installing unicore
|
|
# git clone https://github.com/dptech-corp/Uni-Core.git
|
|
# cd Uni-Core
|
|
# python setup.py install --disable-cuda-ext
|
|
# cd .
|
|
python test/test_python_imports.py
|
|
- if: matrix.install-type == 'developer'
|
|
run: |
|
|
eval "$(conda shell.bash hook)"
|
|
conda activate AlphaPulldown
|
|
pytest -s test/test_custom_db.py
|
|
pytest -s test/test_remove_clashes_low_plddt.py
|
|
|
|
build-fold-container:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Free disk space
|
|
run: |
|
|
rm -rf /opt/hostedtoolcache
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Build and push fold container
|
|
if: github.event_name == 'push'
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
file: ./docker/pulldown.dockerfile
|
|
push: true
|
|
tags: ${{ secrets.DOCKER_USERNAME }}/fold:latest
|
|
|
|
- name: Build and push fold container with version
|
|
if: github.event_name == 'release' && github.event.action == 'published'
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
file: ./docker/pulldown.dockerfile
|
|
push: true
|
|
tags: ${{ secrets.DOCKER_USERNAME }}/fold:${{ github.event.release.tag_name }}
|
|
|
|
build-analysis-container:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Free disk space
|
|
run: |
|
|
rm -rf /opt/hostedtoolcache
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Build and push analysis container
|
|
if: github.event_name == 'push'
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
file: ./docker/analysis.dockerfile
|
|
push: true
|
|
tags: ${{ secrets.DOCKER_USERNAME }}/fold_analysis:latest
|
|
|
|
- name: Build and push analysis container with version
|
|
if: github.event_name == 'release' && github.event.action == 'published'
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
file: ./docker/analysis.dockerfile
|
|
push: true
|
|
tags: ${{ secrets.DOCKER_USERNAME }}/fold_analysis:${{ github.event.release.tag_name }}
|