lint executes before testing (#395) #1714
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: LazyLLM ci | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- "**.md" | |
- ".git*" | |
- "docs/assets/**" | |
env: | |
CI_PATH: '/home/mnt/platform_ci/GitHub/${{ github.repository }}/${GITHUB_RUN_NUMBER}' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
Clone: | |
if: | | |
!contains(github.event.head_commit.message, '[skip ci]') | |
&& !contains(github.event.pull_request.title, '[skip ci]') | |
runs-on: tps_sco_nv | |
steps: | |
- name: Check for required label | |
if: github.event_name == 'pull_request' | |
run: | | |
echo "Checking for 'lint_pass' label..." | |
TIMEOUT=360 | |
INTERVAL=10 | |
ELAPSED_TIME=0 | |
while [ $ELAPSED_TIME -lt $TIMEOUT ]; do | |
echo $ELAPSED_TIME | |
PR_LABELS=$(curl -s "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.number }}/labels" | \ | |
jq -r '.[].name') | |
if echo "$PR_LABELS" | grep -q 'lint_pass'; then | |
echo "'lint_pass' label found, proceeding with CI process." | |
break | |
fi | |
echo "Label not found, waiting $INTERVAL seconds..." | |
sleep $INTERVAL | |
ELAPSED_TIME=$((ELAPSED_TIME + INTERVAL)) | |
done | |
if [ $ELAPSED_TIME -ge $TIMEOUT ]; then | |
echo "The 'lint_pass' label was not added within $TIMEOUT seconds. Skipping CI process." | |
exit 1 | |
fi | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Build doc | |
run: | | |
set -e | |
pip install -r requirements.txt | |
pip install -r docs/requirements.txt | |
python docs/add_docstrings.py | |
- name: Create custom directory | |
run: | | |
set -ex | |
echo ${{ env.CI_PATH }} | |
mkdir -p ${{ env.CI_PATH }} | |
- name: Clean custom directory | |
run: | | |
set -ex | |
if [ -d "${{ env.CI_PATH }}" ]; then | |
rm -rf ${{ env.CI_PATH }}/* | |
fi | |
- name: Move code to custom directory | |
run: | | |
set -ex | |
mv $GITHUB_WORKSPACE/* ${{ env.CI_PATH }}/ | |
BasicTests: | |
runs-on: tps_sco_nv | |
needs: [Clone] | |
steps: | |
- name: RunTests | |
run: | | |
set -ex | |
cd ${{ env.CI_PATH }} | |
pip install -r tests/requirements.txt | |
realpath . | |
env | grep '^SCC' | |
export LAZYLLM_SCO_ENV_NAME=lazyllm | |
export LAZYLLM_DEFAULT_LAUNCHER=sco | |
export PYTHONPATH=$PWD:$PYTHONPATH | |
export LAZYLLM_DATA_PATH=/mnt/lustre/share_data/lazyllm/data/ | |
export LAZYLLM_MODEL_PATH=/mnt/lustre/share_data/lazyllm/models | |
export LAZYLLM_HOME="${{ env.CI_PATH }}/${{ github.run_id }}-${{ github.job }}" | |
mkdir -p $LAZYLLM_HOME | |
python -m pytest --lf --last-failed-no-failures=all --durations=0 --reruns=2 -v tests/basic_tests/ | |
AdvancedStandardTests: | |
runs-on: tps_sco_nv | |
needs: [Clone] | |
steps: | |
- name: RunTests | |
run: | | |
cd ${{ env.CI_PATH }} | |
pip install -r tests/requirements.txt | |
env | grep '^SCC' | |
export LAZYLLM_SCO_ENV_NAME=lazyllm | |
export LAZYLLM_DEFAULT_LAUNCHER=sco | |
export PYTHONPATH=$PWD:$PYTHONPATH | |
export LAZYLLM_DATA_PATH=/mnt/lustre/share_data/lazyllm/data/ | |
export LAZYLLM_MODEL_PATH=/mnt/lustre/share_data/lazyllm/models | |
export LAZYLLM_HOME="${{ env.CI_PATH }}/${{ github.run_id }}-${{ github.job }}" | |
mkdir -p $LAZYLLM_HOME | |
source ~/ENV/env.sh | |
python -m pytest --lf --last-failed-no-failures=all --durations=0 --reruns=2 -v tests/advanced_tests/standard_test/ | |
AdvancedFullTests: | |
runs-on: tps_sco_nv | |
needs: [Clone] | |
steps: | |
- name: RunTests | |
run: | | |
cd ${{ env.CI_PATH }} | |
env | grep '^SCC' | |
export LAZYLLM_SCO_ENV_NAME=lazyllm | |
export LAZYLLM_DEFAULT_LAUNCHER=sco | |
export PYTHONPATH=$PWD:$PYTHONPATH | |
export LAZYLLM_DATA_PATH=/mnt/lustre/share_data/lazyllm/data/ | |
export LAZYLLM_MODEL_PATH=/mnt/lustre/share_data/lazyllm/models | |
export LAZYLLM_HOME="${{ env.CI_PATH }}/${{ github.run_id }}-${{ github.job }}" | |
mkdir -p $LAZYLLM_HOME | |
python -m pytest --lf --last-failed-no-failures=all --durations=0 --reruns=2 -v tests/advanced_tests/full_test/ | |
ChargeTests: | |
runs-on: tps_sco_nv | |
needs: [ Clone ] | |
steps: | |
- name: RunTests | |
run: | | |
cd ${{ env.CI_PATH }} | |
pip install -r tests/requirements.txt | |
export PYTHONPATH=$PWD:$PYTHONPATH | |
export LAZYLLM_DATA_PATH=/mnt/lustre/share_data/lazyllm/data/ | |
export LAZYLLM_MODEL_PATH=/mnt/lustre/share_data/lazyllm/models | |
export LAZYLLM_HOME="${{ env.CI_PATH }}/${{ github.run_id }}-${{ github.job }}" | |
mkdir -p $LAZYLLM_HOME | |
source ~/ENV/env.sh | |
python -m pytest --lf --last-failed-no-failures=all --durations=0 --reruns=2 -v tests/charge_tests |