add image (#350) #410
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: ci | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| run_tests: | |
| description: 'Run tests-bash' | |
| required: false | |
| type: boolean | |
| default: false | |
| pull_request: | |
| types: [labeled, unlabeled, opened, synchronize, reopened] | |
| paths-ignore: | |
| - '**.md' | |
| - 'docs/**' | |
| push: | |
| branches: [main, feat/Sana-public, feat/Sana-public-for-NVLab] | |
| paths-ignore: | |
| - '**.md' | |
| - 'docs/**' | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| # if: ${{ github.repository == 'Efficient-Large-Model/Sana' }} | |
| jobs: | |
| pre-commit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v4 | |
| # - name: Set up Python | |
| # uses: actions/setup-python@v5 | |
| # with: | |
| # python-version: 3.10.10 | |
| - name: Test pre-commit hooks | |
| uses: pre-commit/action@v3.0.1 | |
| test-inference: | |
| needs: pre-commit | |
| if: | | |
| github.event_name == 'workflow_dispatch' && github.event.inputs.run_tests == 'true' || | |
| github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'run-tests') | |
| runs-on: | |
| - self-hosted | |
| - sana-runner | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v4 | |
| # - name: Set up Python | |
| # uses: actions/setup-python@v5 | |
| # with: | |
| # python-version: 3.10.10 | |
| - name: Clean Python caches | |
| run: | | |
| echo "Removing stale Python byte code files..." | |
| find . -type d -name "__pycache__" -exec rm -rf {} + | |
| find . -type f -name "*.pyc" -delete | |
| - name: Set up the environment | |
| env: | |
| SANA_SLURM_ACCOUNT: ${{ secrets.SANA_SLURM_ACCOUNT }} | |
| SANA_SLURM_PARTITION: ${{ secrets.SANA_SLURM_PARTITION }} | |
| SKIP_ENV_SETUP: true | |
| run: | | |
| bash environment_setup.sh | |
| - name: Update 'sana-run' command in the Runner's default env | |
| env: | |
| CONDA_SH_PATH: ${{ secrets.CONDA_SH_PATH }} | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| run: | | |
| echo "--- Updating 'sana-run' command on the CI runner ---" | |
| source "$CONDA_SH_PATH" | |
| conda activate "$CONDA_ENV_NAME" | |
| pip install -e . | |
| echo "--- 'sana-run' command updated. ---" | |
| - name: Run inference tests | |
| env: | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| sana-run --pty -m ci -J test-inference bash tests/bash/inference/test_inference.sh | |
| test-training-vae: | |
| needs: pre-commit | |
| if: | | |
| github.event_name == 'workflow_dispatch' && github.event.inputs.run_tests == 'true' || | |
| github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'run-tests') | |
| runs-on: | |
| - self-hosted | |
| - sana-runner | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v4 | |
| # - name: Set up Python | |
| # uses: actions/setup-python@v5 | |
| # with: | |
| # python-version: 3.10.10 | |
| - name: Clean Python caches | |
| run: | | |
| echo "Removing stale Python byte code files..." | |
| find . -type d -name "__pycache__" -exec rm -rf {} + | |
| find . -type f -name "*.pyc" -delete | |
| - name: Set up the environment | |
| env: | |
| SANA_SLURM_ACCOUNT: ${{ secrets.SANA_SLURM_ACCOUNT }} | |
| SANA_SLURM_PARTITION: ${{ secrets.SANA_SLURM_PARTITION }} | |
| SKIP_ENV_SETUP: true | |
| run: | | |
| bash environment_setup.sh | |
| - name: Update 'sana-run' command in the Runner's default env | |
| env: | |
| CONDA_SH_PATH: ${{ secrets.CONDA_SH_PATH }} | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| run: | | |
| echo "--- Updating 'sana-run' command on the CI runner ---" | |
| source "$CONDA_SH_PATH" | |
| conda activate "$CONDA_ENV_NAME" | |
| pip install -e . | |
| echo "--- 'sana-run' command updated. ---" | |
| - name: Run online VAE training test | |
| env: | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| sana-run --pty -m ci -J test-training-online-vae bash tests/bash/training/test_training_vae.sh | |
| test-training-fsdp: | |
| needs: pre-commit | |
| if: | | |
| github.event_name == 'workflow_dispatch' && github.event.inputs.run_tests == 'true' || | |
| github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'run-tests') | |
| runs-on: | |
| - self-hosted | |
| - sana-runner | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v4 | |
| # - name: Set up Python | |
| # uses: actions/setup-python@v5 | |
| # with: | |
| # python-version: 3.10.10 | |
| - name: Clean Python caches | |
| run: | | |
| echo "Removing stale Python byte code files..." | |
| find . -type d -name "__pycache__" -exec rm -rf {} + | |
| find . -type f -name "*.pyc" -delete | |
| - name: Set up the environment | |
| env: | |
| SANA_SLURM_ACCOUNT: ${{ secrets.SANA_SLURM_ACCOUNT }} | |
| SANA_SLURM_PARTITION: ${{ secrets.SANA_SLURM_PARTITION }} | |
| SKIP_ENV_SETUP: true | |
| run: | | |
| bash environment_setup.sh | |
| - name: Update 'sana-run' command in the Runner's default env | |
| env: | |
| CONDA_SH_PATH: ${{ secrets.CONDA_SH_PATH }} | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| run: | | |
| echo "--- Updating 'sana-run' command on the CI runner ---" | |
| source "$CONDA_SH_PATH" | |
| conda activate "$CONDA_ENV_NAME" | |
| pip install -e . | |
| echo "--- 'sana-run' command updated. ---" | |
| - name: Run FSDP training test | |
| env: | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| sana-run --pty -m ci -J test-training-fsdp bash tests/bash/training/test_training_fsdp.sh | |
| test-training-video: | |
| needs: pre-commit | |
| if: | | |
| github.event_name == 'workflow_dispatch' && github.event.inputs.run_tests == 'true' || | |
| github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'run-tests') | |
| runs-on: | |
| - self-hosted | |
| - sana-runner | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v4 | |
| # - name: Set up Python | |
| # uses: actions/setup-python@v5 | |
| # with: | |
| # python-version: 3.10.10 | |
| - name: Clean Python caches | |
| run: | | |
| echo "Removing stale Python byte code files..." | |
| find . -type d -name "__pycache__" -exec rm -rf {} + | |
| find . -type f -name "*.pyc" -delete | |
| - name: Set up the environment | |
| env: | |
| SANA_SLURM_ACCOUNT: ${{ secrets.SANA_SLURM_ACCOUNT }} | |
| SANA_SLURM_PARTITION: ${{ secrets.SANA_SLURM_PARTITION }} | |
| SKIP_ENV_SETUP: true | |
| run: | | |
| bash environment_setup.sh | |
| - name: Update 'sana-run' command in the Runner's default env | |
| env: | |
| CONDA_SH_PATH: ${{ secrets.CONDA_SH_PATH }} | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| run: | | |
| echo "--- Updating 'sana-run' command on the CI runner ---" | |
| source "$CONDA_SH_PATH" | |
| conda activate "$CONDA_ENV_NAME" | |
| pip install -e . | |
| echo "--- 'sana-run' command updated. ---" | |
| - name: Run video training test | |
| env: | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| sana-run --pty -m ci -J test-training-video bash tests/bash/training/test_training_video.sh | |
| test-training-longsana: | |
| needs: pre-commit | |
| if: | | |
| github.event_name == 'workflow_dispatch' && github.event.inputs.run_tests == 'true' || | |
| github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'run-tests') | |
| runs-on: | |
| - self-hosted | |
| - sana-runner | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v4 | |
| - name: Clean Python caches | |
| run: | | |
| echo "Removing stale Python byte code files..." | |
| find . -type d -name "__pycache__" -exec rm -rf {} + | |
| find . -type f -name "*.pyc" -delete | |
| - name: Set up the environment | |
| env: | |
| SANA_SLURM_ACCOUNT: ${{ secrets.SANA_SLURM_ACCOUNT }} | |
| SANA_SLURM_PARTITION: ${{ secrets.SANA_SLURM_PARTITION }} | |
| SKIP_ENV_SETUP: true | |
| run: | | |
| bash environment_setup.sh | |
| - name: Update 'sana-run' command in the Runner's default env | |
| env: | |
| CONDA_SH_PATH: ${{ secrets.CONDA_SH_PATH }} | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| run: | | |
| echo "--- Updating 'sana-run' command on the CI runner ---" | |
| source "$CONDA_SH_PATH" | |
| conda activate "$CONDA_ENV_NAME" | |
| pip install -e . | |
| echo "--- 'sana-run' command updated. ---" | |
| - name: Run longsana training test | |
| env: | |
| CONDA_ENV_NAME: ${{ secrets.CONDA_ENV_NAME }} | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| sana-run --pty -m ci -J test-training-longsana bash tests/bash/training/test_training_longsana.sh | |
| remove-label: | |
| needs: [test-inference, test-training-vae, test-training-fsdp, test-training-video, test-training-longsana] | |
| if: | | |
| always() && | |
| github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| steps: | |
| - name: Remove label | |
| uses: actions/github-script@v6 | |
| with: | |
| script: | | |
| const labels = context.payload.pull_request.labels || []; | |
| const hasRunTestsLabel = labels.some(label => label.name === 'run-tests'); | |
| if (hasRunTestsLabel) { | |
| await github.rest.issues.removeLabel({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| name: 'run-tests' | |
| }); | |
| } | |
| # tests-python: | |
| # needs: pre-commit | |
| # runs-on: self-hosted | |
| # steps: | |
| # - name: Check out Git repository | |
| # uses: actions/checkout@v4 | |
| # - name: Set up Python | |
| # uses: actions/setup-python@v5 | |
| # with: | |
| # python-version: 3.10.10 | |
| # - name: Set up the environment | |
| # run: | | |
| # ./environment_setup.sh | |
| # - name: Run tests with Slurm | |
| # run: | | |
| # sana-run --pty -m ci -J tests-python pytest tests/python |