-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move deps to pyproject toml and setup ci/cd cpu+gpu install testing (#37
) Move dependencies from `requirements.txt` to`pyproject.toml`, introduce pdm/pip tests for both CPU and GPU based testing to ensure this new way of defining dependencies works for both CPU and GPU installs (GPU tests running on AWS EC2) and remove cap on numpy version (to make it clear we support `numpy >= 2.0.0`.
- Loading branch information
Showing
12 changed files
with
319 additions
and
70 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# setup for using github runners via https://cirun.io/ | ||
runners: | ||
- name: "aws-runner" | ||
# Cloud Provider: AWS | ||
cloud: "aws" | ||
# https://aws.amazon.com/ec2/instance-types/g4/ | ||
instance_type: "g4ad.xlarge" | ||
# Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04), Frankfurt region | ||
machine_image: "ami-0ba41b554b28d24a4" | ||
# use Frankfurt region | ||
region: "eu-central-1" | ||
preemptible: false | ||
# Add this label in the "runs-on" param in .github/workflows/<workflow-name>.yml | ||
# So that this runner is created for running the workflow | ||
labels: | ||
- "cirun-aws-runner" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# cicd workflow for running tests with pytest | ||
# needs to first install pdm, then install torch cpu manually and then install the package | ||
# then run the tests | ||
|
||
name: test (pdm install, cpu) | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install pdm | ||
run: | | ||
python -m pip install pdm | ||
- name: Create venv | ||
run: | | ||
pdm venv create --with-pip | ||
pdm use --venv in-project | ||
- name: Install torch (CPU) | ||
run: | | ||
pdm run python -m pip install torch --index-url https://download.pytorch.org/whl/cpu | ||
# check that the CPU version is installed | ||
- name: Install package (including dev dependencies) | ||
run: | | ||
pdm install --group :all | ||
- name: Print and check torch version | ||
run: | | ||
pdm run python -c "import torch; print(torch.__version__)" | ||
pdm run python -c "import torch; assert torch.__version__.endswith('+cpu')" | ||
- name: Load cache data | ||
uses: actions/cache/restore@v4 | ||
with: | ||
path: data | ||
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0 | ||
restore-keys: | | ||
${{ runner.os }}-meps-reduced-example-data-v0.1.0 | ||
- name: Run tests | ||
run: | | ||
pdm run pytest | ||
- name: Save cache data | ||
uses: actions/cache/save@v4 | ||
with: | ||
path: data | ||
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# cicd workflow for running tests with pytest | ||
# needs to first install pdm, then install torch cpu manually and then install the package | ||
# then run the tests | ||
|
||
name: test (pdm install, gpu) | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
tests: | ||
runs-on: "cirun-aws-runner--${{ github.run_id }}" | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set up Python 3.9 | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.9 | ||
|
||
- name: Install pdm | ||
run: | | ||
python -m pip install pdm | ||
- name: Create venv | ||
run: | | ||
pdm config venv.in_project False | ||
pdm config venv.location /opt/dlami/nvme/venv | ||
pdm venv create --with-pip | ||
- name: Install torch (GPU CUDA 12.1) | ||
run: | | ||
pdm run python -m pip install torch --index-url https://download.pytorch.org/whl/cu121 | ||
- name: Print and check torch version | ||
run: | | ||
pdm run python -c "import torch; print(torch.__version__)" | ||
pdm run python -c "import torch; assert not torch.__version__.endswith('+cpu')" | ||
- name: Install package (including dev dependencies) | ||
run: | | ||
pdm install --group :all | ||
- name: Load cache data | ||
uses: actions/cache/restore@v4 | ||
with: | ||
path: data | ||
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0 | ||
restore-keys: | | ||
${{ runner.os }}-meps-reduced-example-data-v0.1.0 | ||
- name: Run tests | ||
run: | | ||
pdm run pytest | ||
- name: Save cache data | ||
uses: actions/cache/save@v4 | ||
with: | ||
path: data | ||
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# cicd workflow for running tests with pytest | ||
# needs to first install pdm, then install torch cpu manually and then install the package | ||
# then run the tests | ||
|
||
name: test (pip install, cpu) | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install torch (CPU) | ||
run: | | ||
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu | ||
- name: Install package (including dev dependencies) | ||
run: | | ||
python -m pip install ".[dev]" | ||
- name: Print and check torch version | ||
run: | | ||
python -c "import torch; print(torch.__version__)" | ||
python -c "import torch; assert torch.__version__.endswith('+cpu')" | ||
- name: Load cache data | ||
uses: actions/cache/restore@v4 | ||
with: | ||
path: data | ||
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0 | ||
restore-keys: | | ||
${{ runner.os }}-meps-reduced-example-data-v0.1.0 | ||
- name: Run tests | ||
run: | | ||
python -m pytest | ||
- name: Save cache data | ||
uses: actions/cache/save@v4 | ||
with: | ||
path: data | ||
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# cicd workflow for running tests with pytest | ||
# needs to first install pdm, then install torch cpu manually and then install the package | ||
# then run the tests | ||
|
||
name: test (pip install, gpu) | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
tests: | ||
runs-on: "cirun-aws-runner--${{ github.run_id }}" | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set up Python 3.9 | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.9 | ||
|
||
- name: Install torch (GPU CUDA 12.1) | ||
run: | | ||
python -m pip install torch --index-url https://download.pytorch.org/whl/cu121 | ||
- name: Install package (including dev dependencies) | ||
run: | | ||
python -m pip install ".[dev]" | ||
- name: Print and check torch version | ||
run: | | ||
python -c "import torch; print(torch.__version__)" | ||
python -c "import torch; assert not torch.__version__.endswith('+cpu')" | ||
- name: Load cache data | ||
uses: actions/cache/restore@v4 | ||
with: | ||
path: data | ||
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0 | ||
restore-keys: | | ||
${{ runner.os }}-meps-reduced-example-data-v0.1.0 | ||
- name: Run tests | ||
run: | | ||
python -m pytest | ||
- name: Save cache data | ||
uses: actions/cache/save@v4 | ||
with: | ||
path: data | ||
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0 |
This file was deleted.
Oops, something went wrong.
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
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
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
Oops, something went wrong.