ci #2538
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: ci | |
on: | |
push: | |
branches: [master, main] | |
pull_request: | |
schedule: | |
- cron: '0 0 * * *' | |
concurrency: | |
# <workflow_name>-<branch_name>-<true || commit_sha (if branch is protected)> | |
group: ci-${{ github.ref_name }}-${{ !(github.ref_protected) || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
runs-on: ${{ matrix.os }} | |
env: | |
RUN_SLOW_TESTS: 1 | |
OMP_NUM_THREADS: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
template: | |
[ | |
text-classification, | |
vision-dcgan, | |
vision-classification, | |
vision-segmentation | |
] | |
test: [all, simple, launch, spawn] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.pnpm-store | |
~/.cache/pip | |
key: pnpm-and-pip-cache-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: | | |
pnpm-and-pip-cache- | |
- name: Cache datasets | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/data | |
key: datasets | |
restore-keys: | | |
datasets | |
- name: Install dependencies | |
run: | | |
pip install wheel setuptools pip -Uqq | |
pip install -r ./scripts/requirements.txt -f https://download.pytorch.org/whl/cpu/torch_stable.html -q | |
pip uninstall -y tqdm | |
npm install -g pnpm | |
pnpm i --frozen-lockfile --color | |
bash scripts/run_code_style.sh install | |
# Show all installed dependencies | |
pip list | |
- name: Download datasets | |
run: | | |
python ./scripts/download_datasets.py | |
pip install tqdm | |
- run: pnpm build | |
- name: 'pnpm test:ci ${{ matrix.template }}' | |
env: | |
NPM_CONFIG: ${{ matrix.template }} | |
run: pnpm test:ci | |
- run: sh ./scripts/run_tests.sh unzip | |
- run: pnpm dist_lint ${{ matrix.template }} argparse | |
- run: pnpm dist_lint ${{ matrix.template }} fire | |
- run: pnpm dist_lint ${{ matrix.template }} hydra | |
- name: 'Run ${{ matrix.template }} ${{ matrix.test }}' | |
run: sh ./scripts/run_tests.sh ${{ matrix.test }} ${{ matrix.template }} argparse | |
- name: 'Run ${{ matrix.template }} ${{ matrix.test }} - Python Fire' | |
run: sh ./scripts/run_tests.sh ${{ matrix.test }} ${{ matrix.template }} fire | |
- name: 'Run ${{ matrix.template }} ${{ matrix.test }} - Hydra' | |
run: sh ./scripts/run_tests.sh ${{ matrix.test }} ${{ matrix.template }} hydra | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.pnpm-store | |
key: pnpm-and-pip-cache-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: | | |
pnpm-and-pip-cache- | |
- run: pip install -Uq pip wheel && bash scripts/run_code_style.sh install | |
- run: npm install -g pnpm | |
- run: pnpm i --frozen-lockfile --color | |
- run: pnpm source_lint |