name: e2e_dapo on: # Trigger the workflow on push or pull request, # but only for the main branch pull_request: branches: - main - v0.2.x paths: - "**/*.py" # Home - "recipe/dapo/src" # Entrypoints - ".github/workflows/e2e_dapo.yml" - "examples/data_preprocess/gsm8k.py" - "tests/e2e/run_dapo.sh" - "!examples" - "!verl/trainer/main_*.py" - "!verl/trainer/fsdp_sft_trainer.py" # Megatron - "!verl/workers/**/megatron_*.py" # Declare permissions just read content. permissions: contents: read jobs: e2e_dapo: runs-on: [L20x8] timeout-minutes: 40 # Increase this timeout value as needed env: HTTP_PROXY: ${{ secrets.PROXY_HTTP }} HTTPS_PROXY: ${{ secrets.PROXY_HTTPS }} NO_PROXY: "localhost,127.0.0.1" HF_HUB_ENABLE_HF_TRANSFER: "0" # This is more stable container: image: whatcanyousee/verl:ngc-th2.6.0-cu124-vllm0.8.2-mcore0.11.0-te2.0 options: --gpus all --shm-size=10g steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 - name: Install the current repository run: | pip3 install -e .[test,gpu] - name: Prepare GSM8K dataset run: | python3 examples/data_preprocess/gsm8k.py - name: Running the E2E test with the DAPO algorithm run: | ray stop --force bash tests/e2e/run_dapo.sh