-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Test] Modularized tests and CI (#15)
* amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * empty * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * remove hydra dependency Signed-off-by: Matteo Bettini <[email protected]> * rename folder Signed-off-by: Matteo Bettini <[email protected]> * rename file Signed-off-by: Matteo Bettini <[email protected]> * update tasks Signed-off-by: Matteo Bettini <[email protected]> * update models Signed-off-by: Matteo Bettini <[email protected]> * update models Signed-off-by: Matteo Bettini <[email protected]> * amend Signed-off-by: Matteo Bettini <[email protected]> * update algos Signed-off-by: Matteo Bettini <[email protected]> * add test Signed-off-by: Matteo Bettini <[email protected]> --------- Signed-off-by: Matteo Bettini <[email protected]>
- Loading branch information
1 parent
00efda3
commit 64590d4
Showing
50 changed files
with
656 additions
and
286 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 @@ | ||
|
||
|
||
python -m pip install --upgrade pip | ||
python -m pip install flake8 pytest pytest-cov hydra-core | ||
|
||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | ||
|
||
python -m pip install --pre torch --extra-index-url https://download.pytorch.org/whl/nightly/cpu --force-reinstall | ||
|
||
cd .. | ||
python -m pip install git+https://github.com/pytorch-labs/tensordict.git | ||
git clone https://github.com/pytorch/rl.git | ||
cd rl | ||
python setup.py develop | ||
cd ../BenchMARL | ||
pip install -e . |
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,22 @@ | ||
|
||
|
||
root_dir="$(git rev-parse --show-toplevel)" | ||
cd "${root_dir}" | ||
|
||
starcraft_path="${root_dir}/StarCraftII" | ||
map_dir="${starcraft_path}/Maps" | ||
printf "* Installing StarCraft 2 and SMACv2 maps into ${starcraft_path}\n" | ||
cd "${root_dir}" | ||
wget https://blzdistsc2-a.akamaihd.net/Linux/SC2.4.10.zip | ||
# The archive contains StarCraftII folder. Password comes from the documentation. | ||
unzip -qo -P iagreetotheeula SC2.4.10.zip | ||
mkdir -p "${map_dir}" | ||
# Install Maps | ||
wget https://github.com/oxwhirl/smacv2/releases/download/maps/SMAC_Maps.zip | ||
unzip SMAC_Maps.zip | ||
mkdir "${map_dir}/SMAC_Maps" | ||
mv *.SC2Map "${map_dir}/SMAC_Maps" | ||
printf "StarCraft II and SMAC are installed." | ||
|
||
pip install numpy==1.23.0 | ||
pip install git+https://github.com/oxwhirl/smacv2.git |
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,4 @@ | ||
|
||
python -m pip install vmas | ||
sudo apt-get update | ||
sudo apt-get install python3-opengl xvfb |
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 @@ | ||
# This workflow will install Python dependencies, run tests and lint with a single version of Python | ||
# For more information see: | ||
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | ||
|
||
|
||
name: lint | ||
|
||
on: | ||
push: | ||
branches: [ $default-branch , "main" ] | ||
pull_request: | ||
branches: [ $default-branch , "main" ] | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ["3.10"] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Lint | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install pre-commit | ||
set +e | ||
pre-commit run --all-files | ||
if [ $? -ne 0 ]; then | ||
git --no-pager diff | ||
exit 1 | ||
fi | ||
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# This workflow will install Python dependencies, run tests and lint with a single version of Python | ||
# For more information see: | ||
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | ||
|
||
|
||
name: smacv2_tests | ||
|
||
on: | ||
push: | ||
branches: [ $default-branch , "main" ] | ||
pull_request: | ||
branches: [ $default-branch , "main" ] | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'smacv2') }} | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ["3.10"] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
bash .github/unittest/install_dependencies.sh | ||
- name: Install smacv2 | ||
run: | | ||
bash .github/unittest/install_smacv2.sh | ||
- name: Test with pytest | ||
run: | | ||
root_dir="$(git rev-parse --show-toplevel)" | ||
export SC2PATH="${root_dir}/StarCraftII" | ||
echo 'SC2PATH is set to ' "$SC2PATH" | ||
pytest test/test_smacv2.py --doctest-modules --junitxml=junit/test-results.xml --cov=. --cov-report=xml --cov-report=html |
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,37 @@ | ||
# This workflow will install Python dependencies, run tests and lint with a single version of Python | ||
# For more information see: | ||
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | ||
|
||
|
||
name: unit_tests | ||
|
||
on: | ||
push: | ||
branches: [ $default-branch , "main" ] | ||
pull_request: | ||
branches: [ $default-branch , "main" ] | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ["3.8", "3.9", "3.10"] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
bash .github/unittest/install_dependencies.sh | ||
- name: Test with pytest | ||
run: | | ||
pytest test/ --doctest-modules --junitxml=junit/test-results.xml --cov=. --cov-report=xml --cov-report=html |
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,39 @@ | ||
# This workflow will install Python dependencies, run tests and lint with a single version of Python | ||
# For more information see: | ||
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | ||
|
||
|
||
name: vmas_tests | ||
|
||
on: | ||
push: | ||
branches: [ $default-branch , "main" ] | ||
pull_request: | ||
branches: [ $default-branch , "main" ] | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ["3.8", "3.9", "3.10"] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
bash .github/unittest/install_dependencies.sh | ||
- name: Install vmas | ||
run: | | ||
bash .github/unittest/install_vmas.sh | ||
- name: Test with pytest | ||
run: | | ||
xvfb-run -s "-screen 0 1024x768x24" pytest test/test_vmas.py --doctest-modules --junitxml=junit/test-results.xml --cov=. --cov-report=xml --cov-report=html |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,25 @@ | ||
def load_hydra_schemas(): | ||
from hydra.core.config_store import ConfigStore | ||
import importlib | ||
|
||
from benchmarl.algorithms import algorithm_config_registry | ||
from benchmarl.environments import _task_class_registry | ||
from benchmarl.experiment import ExperimentConfig | ||
_has_hydra = importlib.util.find_spec("hydra") is not None | ||
|
||
# Create instance to load hydra schemas | ||
cs = ConfigStore.instance() | ||
# Load experiment schema | ||
cs.store(name="experiment_config", group="experiment", node=ExperimentConfig) | ||
# Load algos schemas | ||
for algo_name, algo_schema in algorithm_config_registry.items(): | ||
cs.store(name=f"{algo_name}_config", group="algorithm", node=algo_schema) | ||
# Load rask schemas | ||
for task_schema_name, task_schema in _task_class_registry.items(): | ||
cs.store(name=task_schema_name, group="task", node=task_schema) | ||
if _has_hydra: | ||
|
||
def load_hydra_schemas(): | ||
from hydra.core.config_store import ConfigStore | ||
|
||
load_hydra_schemas() | ||
from benchmarl.algorithms import algorithm_config_registry | ||
from benchmarl.environments import _task_class_registry | ||
from benchmarl.experiment import ExperimentConfig | ||
|
||
# Create instance to load hydra schemas | ||
cs = ConfigStore.instance() | ||
# Load experiment schema | ||
cs.store(name="experiment_config", group="experiment", node=ExperimentConfig) | ||
# Load algos schemas | ||
for algo_name, algo_schema in algorithm_config_registry.items(): | ||
cs.store(name=f"{algo_name}_config", group="algorithm", node=algo_schema) | ||
# Load task schemas | ||
for task_schema_name, task_schema in _task_class_registry.items(): | ||
cs.store(name=task_schema_name, group="task", node=task_schema) | ||
|
||
load_hydra_schemas() |
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.