Add uv project, and run TestEnvironmentReproducibility tests #26
Workflow file for this run
This file contains hidden or 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: PyRosetta | |
| on: | |
| push: | |
| branches: ['*'] | |
| tags: ['*'] | |
| pull_request: | |
| branches: ['*'] | |
| schedule: | |
| # Run Every Monday 4 AM UTC | |
| - cron: '0 4 * * 1' | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| # ============================================================ | |
| # PIXI JOB | |
| # ============================================================ | |
| pixi: | |
| name: Pixi | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [3.13] | |
| # TODO: [3.10, 3.11, 3.12, 3.13, 3.14] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Pixi | |
| uses: prefix-dev/[email protected] | |
| with: | |
| environments: py313 | |
| manifest-path: pyrosetta/pixi/pixi.toml | |
| - name: Run tests (pixi) | |
| run: | | |
| cd pyrosetta/pixi | |
| pixi run python -u -m unittest pyrosetta.tests.distributed.cluster.test_reproducibility.TestEnvironmentReproducibility.test_recreate_environment_pixi -v | |
| # ============================================================ | |
| # UV JOB | |
| # ============================================================ | |
| uv: | |
| name: Uv | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [3.13] | |
| # TODO: [3.10, 3.11, 3.12, 3.13, 3.14] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| run: | | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| uv --version | |
| - name: Create new uv project | |
| run: | | |
| export PATH="$HOME/.local/bin:$PATH" | |
| uv init pyrosetta_uv_project | |
| - name: Create uv virtual environment | |
| run: | | |
| export PATH="$HOME/.local/bin:$PATH" | |
| cd pyrosetta_uv_project | |
| uv venv | |
| - name: Install PyRosetta installer | |
| run: | | |
| export PATH="$HOME/.local/bin:$PATH" | |
| cd pyrosetta_uv_project | |
| # Note: 'pip' is a required dependency of 'pyrosetta-installer' | |
| uv pip install pyrosetta-installer pip | |
| - name: Install PyRosetta via installer in uv project | |
| run: | | |
| export PATH="$HOME/.local/bin:$PATH" | |
| cd pyrosetta_uv_project | |
| uv run python - <<'EOF' | |
| import pyrosetta_installer | |
| try: | |
| pyrosetta_installer.install_pyrosetta( | |
| distributed=True, | |
| serialization=True, | |
| skip_if_installed=True, | |
| mirror=0 | |
| ) | |
| except Exception as e: | |
| print(f"PyRosetta installation with 'mirror=0' failed: {e}. Retrying with 'mirror=1'.") | |
| pyrosetta_installer.install_pyrosetta( | |
| distributed=True, | |
| serialization=True, | |
| skip_if_installed=True, | |
| mirror=1 | |
| ) | |
| EOF | |
| - name: Run tests (uv) | |
| run: | | |
| export PATH="$HOME/.local/bin:$PATH" | |
| cd pyrosetta_uv_project | |
| uv run python -u -m unittest pyrosetta.tests.distributed.cluster.test_reproducibility.TestEnvironmentReproducibility.test_recreate_environment_uv -v | |
| # ============================================================ | |
| # CONDA JOB | |
| # ============================================================ | |
| conda: | |
| name: Conda | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [3.13] | |
| # TODO: [3.10, 3.11, 3.12, 3.13, 3.14] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Conda | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| auto-update-conda: true | |
| activate-environment: pyrosetta-env | |
| environment-file: pyrosetta/conda/environment.yml | |
| channel-priority: strict | |
| - name: Run tests (conda) | |
| shell: bash -l {0} | |
| run: | | |
| # Initialize conda for the current shell | |
| eval "$(conda shell.bash hook)" | |
| # Activate the environment | |
| conda activate pyrosetta-env | |
| # Run unittest | |
| python -u -m unittest pyrosetta.tests.distributed.cluster.test_reproducibility.TestEnvironmentReproducibility.test_recreate_environment_conda -v | |
| # ============================================================ | |
| # MAMBA JOB | |
| # ============================================================ | |
| mamba: | |
| name: Mamba | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [3.13] | |
| # TODO: [3.10, 3.11, 3.12, 3.13, 3.14] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Miniconda | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| auto-update-conda: true | |
| - name: Set up Mamba | |
| run: | | |
| conda install -n base -c conda-forge mamba | |
| mamba env create -f pyrosetta/conda/environment.yml | |
| - name: Run tests (mamba) | |
| shell: bash -l {0} | |
| run: | | |
| # Initialize conda for the current shell | |
| eval "$(conda shell.bash hook)" | |
| # Activate the environment | |
| conda activate pyrosetta-env | |
| # Run unittest | |
| python -u -m unittest pyrosetta.tests.distributed.cluster.test_reproducibility.TestEnvironmentReproducibility.test_recreate_environment_mamba -v |