# This is a docker build check and publish job: # 1. PR Triggered docker image build check # - is for image build check # - Enable on main/*-dev branch # - push: ${{ github.event_name != 'pull_request' }} ==> false # 2. branches push trigger image publish # - is for branch/dev/nightly image # - commits are merge into main/*-dev ==> vllm-ascend:main / vllm-ascend:*-dev # 3. tags push trigger image publish # - is for final release image # - Publish when tag with v* (pep440 version) ===> vllm-ascend:v1.2.3 / vllm-ascend:v1.2.3rc1 name: Image Build and Push on: push: # Publish image when tagging, the Dockerfile in tag will be build as tag image branches: - 'releases/*' tags: - 'v*' paths: - '.github/workflows/schedule_image_build_and_push.yaml' - 'Dockerfile*' - 'vllm_ascend/**' - 'setup.py' - 'pyproject.toml' - 'requirements.txt' - 'cmake/**' - 'CMakeLists.txt' - 'csrc/**' pull_request: branches: - 'releases/*' paths: - '.github/workflows/schedule_image_build_and_push.yaml' - 'Dockerfile*' - 'vllm_ascend/**' - 'setup.py' - 'pyproject.toml' - 'requirements.txt' - 'cmake/**' - 'CMakeLists.txt' - 'csrc/**' types: [ labeled, synchronize ] workflow_dispatch: inputs: tag: description: 'Docker tag for build results' default: main required: true type: choice options: - main - v0.17.0rc1 - v0.16.0rc1 - v0.15.0rc1 - v0.14.0rc1 - v0.13.0rc3 concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: image_build: name: Image Build and Push if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'image-build') }} strategy: matrix: build_meta: - name: A2 Ubuntu dockerfile: Dockerfile suffix: '' - name: A2 openeuler dockerfile: Dockerfile.openEuler suffix: 'openeuler' - name: A3 Ubuntu dockerfile: Dockerfile.a3 suffix: 'a3' - name: A3 openEuler dockerfile: Dockerfile.a3.openEuler suffix: 'a3-openeuler' - name: 310P Ubuntu dockerfile: Dockerfile.310p suffix: '310p' - name: 310P openEuler dockerfile: Dockerfile.310p.openEuler suffix: '310p-openeuler' uses: ./.github/workflows/_schedule_image_build.yaml with: dockerfile: ${{ matrix.build_meta.dockerfile }} suffix: ${{ matrix.build_meta.suffix }} quay_username: ${{ vars.QUAY_USERNAME }} should_push: ${{ github.repository_owner == 'vllm-project' && github.event_name == 'push'}} workflow_dispatch_tag: ${{ inputs.tag }} secrets: QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}