add nightly_build workflow (#10533)
* add nightly_build workflow * add create-job-status-badge action * update * update * update * update setup.py * release * revert
This commit is contained in:
		
							parent
							
								
									0a3e4e788f
								
							
						
					
					
						commit
						c563b41491
					
				
					 6 changed files with 171 additions and 14 deletions
				
			
		
							
								
								
									
										72
									
								
								.github/actions/create-job-status-badge/action.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								.github/actions/create-job-status-badge/action.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,72 @@
 | 
			
		|||
name: 'Create Job Status Badge'
 | 
			
		||||
description: 'In a workflow with multiple jobs, create a badge that can display the completion time and status of the job'
 | 
			
		||||
inputs:
 | 
			
		||||
  secret:
 | 
			
		||||
    description: 'use to access gist'
 | 
			
		||||
    required: true
 | 
			
		||||
  gist-id:
 | 
			
		||||
    description: 'gist-id'
 | 
			
		||||
    required: true
 | 
			
		||||
  file-name:
 | 
			
		||||
    description: 'gist file name(.json)'
 | 
			
		||||
    required: true
 | 
			
		||||
  type:
 | 
			
		||||
    description: 'workflow or job'
 | 
			
		||||
    required: true
 | 
			
		||||
  job-name:
 | 
			
		||||
    description: 'job name'
 | 
			
		||||
  is-self-hosted-runner:
 | 
			
		||||
    description: 'If use self-hosted runner it will be true'
 | 
			
		||||
    required: true
 | 
			
		||||
    default: false
 | 
			
		||||
  runner-hosted-on:
 | 
			
		||||
    description: 'Select the region of the runner host to set the proxy'
 | 
			
		||||
    required: true
 | 
			
		||||
    default: ''
 | 
			
		||||
runs:
 | 
			
		||||
  using: "composite"
 | 
			
		||||
  steps:
 | 
			
		||||
    - name: print time
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
        export NOW=$( date '+%F_%H:%M:%S' )
 | 
			
		||||
        echo "TIME=${NOW}" >> $GITHUB_ENV
 | 
			
		||||
        
 | 
			
		||||
    - name: get job status
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
        echo "JOB-STATUS=${{ job.status }}" >>$GITHUB_ENV
 | 
			
		||||
    - name: set badge color
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: if [ ${{ env.JOB-STATUS }} == "success" ] ; then echo "COLOR=green" >> $GITHUB_ENV ; else echo "COLOR=red" >> $GITHUB_ENV; fi
 | 
			
		||||
    
 | 
			
		||||
    - name: Create job badge
 | 
			
		||||
      if: ${{ inputs.type == 'job' && inputs.secret != '' }}
 | 
			
		||||
      uses: analytics-zoo/dynamic-badges-action@master
 | 
			
		||||
      with:
 | 
			
		||||
        auth: ${{ inputs.secret }}
 | 
			
		||||
        gistID: ${{ inputs.gist-id }}
 | 
			
		||||
        isSelfHostedRunner: ${{ inputs.is-self-hosted-runner }}
 | 
			
		||||
        filename: ${{ inputs.file-name }}
 | 
			
		||||
        label: ${{ inputs.job-name }}
 | 
			
		||||
        message: ${{ env.JOB-STATUS }}
 | 
			
		||||
        color: ${{ env.COLOR }}
 | 
			
		||||
        runnerHostedOn: ${{ inputs.runner-hosted-on }}
 | 
			
		||||
        
 | 
			
		||||
    - name: Create time badge
 | 
			
		||||
      if: ${{ inputs.type == 'workflow' && inputs.secret != '' }}
 | 
			
		||||
      uses: analytics-zoo/dynamic-badges-action@master
 | 
			
		||||
      with:
 | 
			
		||||
        auth: ${{ inputs.secret }}
 | 
			
		||||
        gistID: ${{ inputs.gist-id }}
 | 
			
		||||
        isSelfHostedRunner: ${{ inputs.is-self-hosted-runner }}
 | 
			
		||||
        filename: ${{ inputs.file-name }}
 | 
			
		||||
        label: Time is
 | 
			
		||||
        message: ${{ env.TIME }}
 | 
			
		||||
        runnerHostedOn: ${{ inputs.runner-hosted-on }}
 | 
			
		||||
 | 
			
		||||
    - name: print error message
 | 
			
		||||
      if: ${{ inputs.secret == '' }}
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
        echo "Can not get secret! Please check out your workflow!(mainly caused by pr trigger)"
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/actions/llm/setup-llm-env/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/actions/llm/setup-llm-env/action.yml
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -16,10 +16,10 @@ runs:
 | 
			
		|||
        pip uninstall bigdl-core-xe-esimd -y || true
 | 
			
		||||
        pip uninstall bigdl-core-xe-21 -y || true
 | 
			
		||||
        pip uninstall bigdl-core-xe-esimd-21 -y || true
 | 
			
		||||
        sed -i 's/"bigdl-core-xe==" + VERSION + "/"bigdl-core-xe/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-esimd==" + VERSION + "/"bigdl-core-xe-esimd/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-21==" + VERSION/"bigdl-core-xe-21"/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-esimd-21==" + VERSION + "/"bigdl-core-xe-esimd-21/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe==" + CORE_XE_VERSION + "/"bigdl-core-xe/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-esimd==" + CORE_XE_VERSION + "/"bigdl-core-xe-esimd/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-21==" + CORE_XE_VERSION/"bigdl-core-xe-21"/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-esimd-21==" + CORE_XE_VERSION + "/"bigdl-core-xe-esimd-21/g' python/llm/setup.py
 | 
			
		||||
 | 
			
		||||
        pip install requests
 | 
			
		||||
        if [[ ${{ runner.os }} == 'Linux' ]]; then
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								.github/workflows/llm_performance_tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/llm_performance_tests.yml
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -225,9 +225,9 @@ jobs:
 | 
			
		|||
          python -m pip install pandas==1.5.3
 | 
			
		||||
          python csv_to_html.py -f /models/nightly_perf_cpu
 | 
			
		||||
          cd /models/nightly_perf_cpu
 | 
			
		||||
          # for f in *.html; do
 | 
			
		||||
          #   curl -T "$f" ${LLM_FTP_URL}/llm/nightly_perf/nightly_perf_cpu/
 | 
			
		||||
          # done
 | 
			
		||||
          for f in *.html; do
 | 
			
		||||
            curl -T "$f" ${LLM_FTP_URL}/llm/nightly_perf/nightly_perf_cpu/
 | 
			
		||||
          done
 | 
			
		||||
 | 
			
		||||
  llm-performance-test-on-core:
 | 
			
		||||
    if: ${{ github.event.schedule || github.event.inputs.artifact == 'llm-performance-test-on-core' || github.event.inputs.artifact == 'all' }} # please comment it for PR tests
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										84
									
								
								.github/workflows/nightly_build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								.github/workflows/nightly_build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,84 @@
 | 
			
		|||
name: Nightly Build
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  # pull_request:
 | 
			
		||||
  #   branches: [ main ]
 | 
			
		||||
  #   paths:
 | 
			
		||||
  #     - '.github/workflows/nightly_build.yml'
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '30 11 * * *'  # GMT time, 11:30 GMT == 19:30 China
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  GIST_ID: 48dbd87983219d4fe264adfea701815a
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  contents: read
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  
 | 
			
		||||
  llm-cpp-build:
 | 
			
		||||
    uses: ./.github/workflows/llm-binary-build.yml
 | 
			
		||||
 | 
			
		||||
  ipex-llm-build:
 | 
			
		||||
    # python build can only be published once a day, please do not publish it manually
 | 
			
		||||
    if: ${{ github.event.schedule || github.event_name == 'workflow_dispatch' }} 
 | 
			
		||||
    runs-on: [self-hosted, Bree]
 | 
			
		||||
    needs: llm-cpp-build
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
    - name: Set up Python 
 | 
			
		||||
      uses: actions/setup-python@v2
 | 
			
		||||
      with:
 | 
			
		||||
        python-version: '3.7.15'
 | 
			
		||||
 | 
			
		||||
    - name: Install dependencies
 | 
			
		||||
      run: |
 | 
			
		||||
        python -m pip install --upgrade pip
 | 
			
		||||
        pip install build
 | 
			
		||||
        pip install wheel
 | 
			
		||||
        pip install twine
 | 
			
		||||
 | 
			
		||||
    - name: Download llm binary
 | 
			
		||||
      uses: ./.github/actions/llm/download-llm-binary
 | 
			
		||||
 | 
			
		||||
    - name: Build package
 | 
			
		||||
      run: |
 | 
			
		||||
        export TIMESTAMP=`date '+%Y%m%d'`
 | 
			
		||||
        # export TIMESTAMP=20240323
 | 
			
		||||
        export PYPI_VERSION=2.1.0
 | 
			
		||||
        nb_version=${PYPI_VERSION}b${TIMESTAMP}
 | 
			
		||||
        echo ${nb_version}
 | 
			
		||||
 | 
			
		||||
        ## windows ##
 | 
			
		||||
        bash python/llm/dev/release_default_windows.sh ${nb_version} true
 | 
			
		||||
 | 
			
		||||
        ## linux ##
 | 
			
		||||
        bash python/llm/dev/release_default_linux.sh ${nb_version} true
 | 
			
		||||
 | 
			
		||||
    - name: Create Job Badge
 | 
			
		||||
      if: ${{ always() }}
 | 
			
		||||
      uses: ./.github/actions/create-job-status-badge
 | 
			
		||||
      with:
 | 
			
		||||
        secret: ${{ secrets.GIST_SECRET }}
 | 
			
		||||
        gist-id: ${{env.GIST_ID}}
 | 
			
		||||
        is-self-hosted-runner: true
 | 
			
		||||
        file-name: nb-python-build.json
 | 
			
		||||
        type: job
 | 
			
		||||
        job-name: python-build
 | 
			
		||||
        runner-hosted-on: 'Shanghai'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  create-workflow-badge:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # actions/checkout@v3
 | 
			
		||||
    - name: create workflow badge
 | 
			
		||||
      if: ${{ always() }}
 | 
			
		||||
      uses: ./.github/actions/create-job-status-badge
 | 
			
		||||
      with:
 | 
			
		||||
        secret: ${{ secrets.GIST_SECRET }}
 | 
			
		||||
        gist-id: ${{env.GIST_ID}}
 | 
			
		||||
        file-name: nightly-build.json
 | 
			
		||||
        type: workflow
 | 
			
		||||
| 
						 | 
				
			
			@ -35,10 +35,10 @@ upload=$3  # Whether to upload the whl to pypi
 | 
			
		|||
 | 
			
		||||
if [ "${version}" != "default" ]; then
 | 
			
		||||
    echo "User specified version: ${version}"
 | 
			
		||||
    echo $version > $BIGDL_DIR/python/version.txt
 | 
			
		||||
    echo $version > $BIGDL_DIR/python/llm/version.txt
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
ipex_llm_version=$(cat $BIGDL_DIR/python/version.txt | head -1)
 | 
			
		||||
ipex_llm_version=$(cat $BIGDL_DIR/python/llm/version.txt | head -1)
 | 
			
		||||
echo "The effective version is: ${ipex_llm_version}"
 | 
			
		||||
 | 
			
		||||
if [ "$platform" == "linux" ]; then
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,6 +46,7 @@ exclude_patterns = ["*__pycache__*", "*ipynb_checkpoints*"]
 | 
			
		|||
IPEX_LLM_PYTHON_HOME = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
			
		||||
VERSION = open(os.path.join(IPEX_LLM_PYTHON_HOME,
 | 
			
		||||
               './llm/version.txt'), 'r').read().strip()
 | 
			
		||||
CORE_XE_VERSION = VERSION.replace("2.1.0", "2.5.0")
 | 
			
		||||
llm_home = os.path.join(os.path.dirname(os.path.abspath(__file__)), "src")
 | 
			
		||||
github_artifact_dir = os.path.join(llm_home, '../llm-binary')
 | 
			
		||||
libs_dir = os.path.join(llm_home, "ipex_llm", "libs")
 | 
			
		||||
| 
						 | 
				
			
			@ -281,16 +282,16 @@ def setup_package():
 | 
			
		|||
    xpu_20_requires += ["torch==2.0.1a0;platform_system=='Linux'",
 | 
			
		||||
                        "torchvision==0.15.2a0;platform_system=='Linux'",
 | 
			
		||||
                        "intel_extension_for_pytorch==2.0.110+xpu;platform_system=='Linux'",
 | 
			
		||||
                        "bigdl-core-xe==" + VERSION + ";platform_system=='Linux'",
 | 
			
		||||
                        "bigdl-core-xe-esimd==" + VERSION + ";platform_system=='Linux'"]
 | 
			
		||||
                        "bigdl-core-xe==" + CORE_XE_VERSION + ";platform_system=='Linux'",
 | 
			
		||||
                        "bigdl-core-xe-esimd==" + CORE_XE_VERSION + ";platform_system=='Linux'"]
 | 
			
		||||
 | 
			
		||||
    xpu_21_requires = copy.deepcopy(all_requires)
 | 
			
		||||
    xpu_21_requires.remove('torch')
 | 
			
		||||
    xpu_21_requires += ["torch==2.1.0a0",
 | 
			
		||||
                        "torchvision==0.16.0a0",
 | 
			
		||||
                        "intel_extension_for_pytorch==2.1.10+xpu",
 | 
			
		||||
                        "bigdl-core-xe-21==" + VERSION,
 | 
			
		||||
                        "bigdl-core-xe-esimd-21==" + VERSION + ";platform_system=='Linux'"]
 | 
			
		||||
                        "bigdl-core-xe-21==" + CORE_XE_VERSION,
 | 
			
		||||
                        "bigdl-core-xe-esimd-21==" + CORE_XE_VERSION + ";platform_system=='Linux'"]
 | 
			
		||||
    # default to ipex 2.1 for linux and windows
 | 
			
		||||
    xpu_requires = copy.deepcopy(xpu_21_requires)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -323,7 +324,7 @@ def setup_package():
 | 
			
		|||
                        "xpu-2-0": xpu_20_requires,
 | 
			
		||||
                        "xpu-2-1": xpu_21_requires,
 | 
			
		||||
                        "serving": serving_requires,
 | 
			
		||||
                        "cpp": ["bigdl-core-cpp==" + VERSION]},
 | 
			
		||||
                        "cpp": ["bigdl-core-cpp==" + CORE_XE_VERSION]},
 | 
			
		||||
        classifiers=[
 | 
			
		||||
            'License :: OSI Approved :: Apache Software License',
 | 
			
		||||
            'Programming Language :: Python :: 3',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue