update github workflow (#2943)

cherry-picks aa1c52f

Signed-off-by: Tyler Burt <195370667+tburt-nv@users.noreply.github.com>
This commit is contained in:
tburt-nv 2025-03-19 10:20:46 +08:00 committed by GitHub
parent 3aa6b11d13
commit c2ac9e6269
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 94 additions and 45 deletions

93
.github/workflows/blossom-ci.yml vendored Normal file
View File

@ -0,0 +1,93 @@
# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# A workflow to trigger ci on hybrid infra (github + self hosted runner)
name: Blossom-CI
on:
issue_comment:
types: [created]
workflow_dispatch:
inputs:
platform:
description: 'runs-on argument'
required: false
args:
description: 'argument'
required: false
jobs:
Authorization:
name: Authorization
runs-on: blossom
outputs:
args: ${{ env.args }}
# This job only runs for pull request comments
if: |
startsWith( github.event.comment.body, '/bot' ) && contains(
fromJson('["byshiue","chuangz0","funatiq","hypdeb","jdemouth-nvidia","joyang-nv","lowsfer","Tabrizian","yweng0828","Shixiaowei02","MartinMarciniszyn","schetlur-nv","dcampora","pcastonguay","Naveassaf","lfr-0531","nekorobov","PerkzZheng","kaiyux","nv-guomingz","LinPoly","thorjohnsen","jiahanc","latency1024","tburt-nv","zeroepoch","chzblych","niukuo","ZhanruiSunCh","EmmaQiaoCh","yiqingy0","achartier","suyoggupta","amukkara","mk-nvidia","QiJune","lucaslie","davidmlw","hlu1","nvzhou","syuoni","NVGaryJi","symphonylyh","hello-11","zongfeijing","Jackch-NV","jinyangyuan-nvidia","LarryXFly","crazydemo","jaedeok-nvidia","wm2012011492","rosenrodt","zhuoyao1012","xinhe-nv","Yuening-wa","Shunkangz","zhengd-nv","yibinl-nvidia","StanleySun639","KingsleyLiu-NV","kxdc","yingcanw","BestJuly","ChristinaZ","bobboli","xueweilnvidia","kunlunl","cherichy","lucifer1004","Autumn1998","litaotju","peaceh-nv","liji-nv","SimengLiu-nv","yuxianq","yechank-nvidia","vallis-neria","DylanChen-NV","Tracin","zhhuang-nv","ISEEKYAN","xupinjie","tongyuantongyu","laikhtewari","zhuolingwang","dominicshanshan","jershi425","shifangx","StudyingShao","Superjomn","dongjiyingdjy","guangyunh-nv","wili-65535","tiffany940107","DanBlanaru","mikeiovine","djns99","ruodil","xiaoweiw-nv","xuwchen","bashimao","yizhang-nv","hyukn","nvpohanh","yuki-666","juney-nvidia","barry-delaney","Kefeng-Duan","MinaHuai","yilin-void","jtchen0528","jmydurant","katec846","CarstyYou","Njuapp","Jie-Fang","nvbrantz","inocsin","ruoqianguo","chenfeiz0326","ming-wei","eopXD","longlee0622","dongfengy","georgeliu95","evezhier","rakib-hasan","shangz-ai","JyChang012","wangsiping1997","yuanjings-nvda","tomeras91","roikoren755","amirkl94","shaharmor98","danielafrimi","amitz-nv","hijkzzz","rzilberstein-nvidia","dc3671","hchings","yuhengxnv","dongxuy04","qiaoxj07","omera-nv"]'),
github.actor)
steps:
- name: Check if comment is issued by authorized person
run: blossom-ci
env:
OPERATION: 'AUTH'
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO_KEY_DATA: ${{ secrets.BLOSSOM_KEY }}
Vulnerability-scan:
name: Vulnerability scan
needs: [Authorization]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
repository: ${{ fromJson(needs.Authorization.outputs.args).repo }}
ref: ${{ fromJson(needs.Authorization.outputs.args).ref }}
lfs: 'true'
- name: Run blossom action
uses: NVIDIA/blossom-action@main
env:
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO_KEY_DATA: ${{ secrets.BLOSSOM_KEY }}
with:
args1: ${{ fromJson(needs.Authorization.outputs.args).args1 }}
args2: ${{ fromJson(needs.Authorization.outputs.args).args2 }}
args3: ${{ fromJson(needs.Authorization.outputs.args).args3 }}
Job-trigger:
name: Start ci job
needs: [Vulnerability-scan]
runs-on: blossom
steps:
- name: Start ci job
run: blossom-ci
env:
OPERATION: 'START-CI-JOB'
CI_SERVER: ${{ secrets.CI_SERVER }}
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Upload-Log:
name: Upload log
runs-on: blossom
if : github.event_name == 'workflow_dispatch'
steps:
- name: Jenkins log for pull request ${{ fromJson(github.event.inputs.args).pr }} (click here)
run: blossom-ci
env:
OPERATION: 'POST-PROCESSING'
CI_SERVER: ${{ secrets.CI_SERVER }}
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -16,8 +16,6 @@
# A workflow to trigger ci on hybrid infra (github + self hosted runner)
name: L0-Test
on:
issue_comment:
types: [created]
workflow_dispatch:
inputs:
sha:
@ -30,48 +28,6 @@ on:
description: 'test results url'
required: true
jobs:
Authorization:
runs-on: ubuntu-latest
name: Authorization
if: startsWith( github.event.comment.body, '/bot' )
steps:
- name: Check Team Membership
uses: actions/github-script@v6
with:
github-token: ${{ secrets.CI_TEAM_TOKEN }}
script: |
try {
const { data: membership } = await github.rest.teams.getMembershipForUserInOrg({
org: context.repo.owner,
team_slug: 'trt-llm-ci-approvers',
username: context.actor,
});
if (membership.state != 'active') {
core.setFailed('only member in [trt-llm-ci-approvers] can run', membership)
}
} catch (error) {
console.log('check membership failed:', error);
core.setFailed('only member in [trt-llm-ci-approvers] can run')
}
Job-trigger:
name: Start ci job
needs: [Authorization]
runs-on: [self-hosted, Linux, Jenkins]
steps:
- name: Start ci job
run: |
CI_SERVER="${{ secrets.CI_SERVER }}"
JENKINS_URL=$(echo "$CI_SERVER" | cut -d '@' -f 1)
TOKEN=$(echo "$CI_SERVER" | cut -d '@' -f 2)
echo '${{ toJson(github.event) }}' > githubData.json
curl -s --fail-with-body -X POST \
-H "Content-Type: application/json" \
-d @githubData.json \
"$JENKINS_URL/generic-webhook-trigger/invoke?token=$TOKEN"
Upload-Test:
name: Upload test results
runs-on: linux-amd64-cpu4
@ -83,7 +39,7 @@ jobs:
script: |
state = 'pending'
description = 'collecting test results'
if ('${{ github.event.inputs.test_result }}' == 'SUCCESS') {
if ('${{ github.event.inputs.test_result }}' == 'success') {
state = 'success'
description = 'test passed, collecting test results'
}