Fix #400 #1204
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 modelcif | |
eval "$(conda shell.bash hook)" | |
conda activate AlphaPulldown | |
conda install -c bioconda hmmer hhsuite | |
pip install alphapulldown==2.0.0b4 | |
- 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 modelcif | |
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 | |
pytest -s test/test_modelcif.py | |
pytest -s test/test_features_with_templates.py | |
pytest -s test/test_post_prediction.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 }} |