Skip to content

CI

CI #90

Workflow file for this run

name: CI
on:
push:
pull_request:
schedule:
- cron: "0 0 * * *" # @daily
# Run linter with github actions for quick feedbacks.
jobs:
linter:
runs-on: ubuntu-latest
# run on PRs, or commits to facebookresearch (not internal)
if: ${{ github.repository_owner == 'facebookresearch' || github.event_name == 'pull_request' }}
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install dependencies
# flake8-bugbear flake8-comprehensions are useful but not available internally
run: |
python -m pip install --upgrade pip
python -m pip install flake8==6.1.0 isort==4.3.21
python -m pip install black==24.3.0
flake8 --version
- name: Lint
run: |
echo "Running isort"
isort -c -sp .
echo "Running black"
black -l 100 --check .
echo "Running flake8"
flake8 .
macos_tests:
runs-on: macos-latest
# run on PRs, or commits to facebookresearch (not internal)
if: ${{ github.repository_owner == 'facebookresearch' || github.event_name == 'pull_request' }}
strategy:
fail-fast: false
matrix:
torch: ["1.13.1", "2.2.2"]
include:
- torch: "1.13.1"
torchvision: "0.14.1"
- torch: "2.2.2"
torchvision: "0.17.2"
env:
# point datasets to ~/.torch so it's cached by CI
DETECTRON2_DATASETS: ~/.torch/datasets
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Cache dependencies
uses: actions/cache@v2
with:
path: |
${{ env.pythonLocation }}/lib/python3.8/site-packages
~/.torch
key: ${{ runner.os }}-torch${{ matrix.torch }}-${{ hashFiles('setup.py') }}-20220119
- name: Install dependencies
run: |
python -m pip install -U pip
python -m pip install wheel ninja opencv-python-headless onnx pytest-xdist
python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html
# install from github to get latest; install iopath first since fvcore depends on it
python -m pip install -U 'git+https://github.com/facebookresearch/iopath'
python -m pip install -U 'git+https://github.com/facebookresearch/fvcore'
wget https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py
python collect_env.py
- name: Build and install
run: |
CC=clang CXX=clang++ python -m pip install -e .[all]
python -m detectron2.utils.collect_env
./datasets/prepare_for_tests.sh
- name: Run unittests
run: python -m pytest -n 4 --durations=15 -sv tests/
linux_gpu_tests:
runs-on: 4-core-ubuntu-gpu-t4
# run on PRs, or commits to facebookresearch (not internal)
if: ${{ github.repository_owner == 'facebookresearch' || github.event_name == 'pull_request' }}
strategy:
fail-fast: false
matrix:
torch: ["1.13.1", "2.2.2"]
include:
- torch: "1.13.1"
torchvision: "0.14.1"
cuda: "11-7"
- torch: "2.2.2"
torchvision: "0.17.2"
cuda: "12-5"
env:
PYTORCH_INDEX: "https://download.pytorch.org/whl/cu118"
DETECTRON2_DATASETS: ~/.torch/datasets
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Cache dependencies
uses: actions/cache@v2
id: load-cache
with:
path: |
${{ env.pythonLocation }}/lib/python3.8/site-packages
~/.torch
key: ${{ runner.os }}-torch-gpu${{ matrix.torch }}-${{ hashFiles('setup.py') }}-20210827
- name: Install GPU Dependencies
uses: ./.github/actions/install_linux_gpu_dep
with:
cuda-version: ${{matrix.cuda}}
- name: Install Dependencies
uses: ./.github/actions/install_linux_dep
if: steps.load-cache.outputs.cache-hit != 'true'
with:
torch-version: ${{matrix.torch}}
torchvision-version: ${{matrix.torchvision}}
pytorch-index: $PYTORCH_INDEX
- name: Install Detectron2
uses: ./.github/actions/install_detectron2
- name: Run Unit Tests
uses: ./.github/actions/run_unittests
- name: Run Tests After Uninstalling
uses: ./.github/actions/uninstall_tests
linux_cpu_tests:
runs-on: ubuntu-latest
# run on PRs, or commits to facebookresearch (not internal)
if: ${{ github.repository_owner == 'facebookresearch' || github.event_name == 'pull_request' }}
strategy:
fail-fast: false
matrix:
torch: ["1.13.1", "2.2.2"]
include:
- torch: "1.13.1"
torchvision: "0.14.1"
- torch: "2.2.2"
torchvision: "0.17.2"
env:
PYTORCH_INDEX: "https://download.pytorch.org/whl/cu118"
DETECTRON2_DATASETS: ~/.torch/datasets
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Cache dependencies
uses: actions/cache@v2
id: load-cache
with:
path: |
${{ env.pythonLocation }}/lib/python3.8/site-packages
~/.torch
key: ${{ runner.os }}-torch${{ matrix.torch }}-${{ hashFiles('setup.py') }}-20210827
- name: Install Dependencies
uses: ./.github/actions/install_linux_dep
if: steps.load-cache.outputs.cache-hit != 'true'
with:
torch-version: ${{matrix.torch}}
torchvision-version: ${{matrix.torchvision}}
pytorch-index: $PYTORCH_INDEX
- name: Install Detectron2
uses: ./.github/actions/install_detectron2
- name: Run Unit Tests
uses: ./.github/actions/run_unittests
- name: Run Tests After Uninstalling
uses: ./.github/actions/uninstall_tests
windows_cpu_tests:
runs-on: windows-latest
# run on PRs, or commits to facebookresearch (not internal)
if: ${{ github.repository_owner == 'facebookresearch' || github.event_name == 'pull_request' }}
strategy:
fail-fast: false
matrix:
torch: ["1.13.1", "2.2.2"]
include:
- torch: "1.13.1"
torchvision: "0.14.1"
- torch: "2.2.2"
torchvision: "0.17.2"
env:
PYTORCH_INDEX: "https://download.pytorch.org/whl/cu118"
DETECTRON2_DATASETS: ~/.torch/datasets
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Cache dependencies
uses: actions/cache@v2
id: load-cache
with:
path: |
${{ env.pythonLocation }}\Lib\site-packages
~\.torch
key: ${{ runner.os }}-torch${{ matrix.torch }}-${{ hashFiles('setup.py') }}-20210404
- name: Install Dependencies
uses: ./.github/actions/install_windows_dep
if: steps.load-cache.outputs.cache-hit != 'true'
with:
torch-version: ${{matrix.torch}}
torchvision-version: ${{matrix.torchvision}}
pytorch-index: $PYTORCH_INDEX
- name: Install Detectron2
uses: ./.github/actions/install_detectron2_win
- name: Run Unit Tests
uses: ./.github/actions/run_unittests_win