Skip to content

ci test - #4407

Open
dtrawins wants to merge 10 commits into
mainfrom
test-ci-gated
Open

ci test#4407
dtrawins wants to merge 10 commits into
mainfrom
test-ci-gated

Conversation

@dtrawins

@dtrawins dtrawins commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

🛠 Summary

CI groovy changes to expose github status for each stage - it will give visibility for external contributors which stage is failing
Added approval stage for PRs from fork

🧪 Checklist

  • Unit tests added.
  • The documentation updated.
  • Change follows security best practices.
    ``

dtrawins and others added 10 commits July 25, 2026 01:49
### 🛠 Summary

JIRA/Issue if applicable.
Describe the changes.

### 🧪 Checklist

- [ ] Unit tests added.
- [ ] The documentation updated.
- [ ] Change follows security best practices.
``
@dtrawins
dtrawins requested a review from Copilot August 2, 2026 21:11
@dtrawins
dtrawins marked this pull request as ready for review August 2, 2026 21:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the on-commit Jenkins pipeline to publish per-stage GitHub commit statuses for PR visibility and adds a manual approval gate for pull requests coming from forks.

Changes:

  • Introduces a withGithubStageStatus wrapper to send PENDING/SUCCESS/FAILURE/ERROR GitHub statuses around stage bodies.
  • Wraps multiple build/test stages with the new status wrapper to expose granular progress/failures on GitHub.
  • Adds an “Approve fork PR” stage using input to gate execution for forked PRs.
Suppressed comments (1)

ci/build_test_OnCommit.groovy:460

  • In the Windows documentation tests stage, withGithubStageStatus sends the initial PENDING notification before checkout scm. Since this stage uses agent none + node(...), there is no default checkout, so githubNotify may run without SCM metadata and fail or attach to the wrong SHA.
                  script {
                    withGithubStageStatus('jenkins/oncommit/doc-tests-windows', 'Windows doc tests') {
                      checkout scm
                      dir ('documentation_tests') {
                        checkout scmGit(branches: [[name: validation_branch]], userRemoteConfigs: [[credentialsId: 'workflow-lab', url: 'https://github.com/intel-innersource/frameworks.ai.openvino.model-server.tests.git']])

Comment on lines +67 to +75
stage('Approve fork PR') {
when {
expression { env.CHANGE_ID && env.CHANGE_FORK }
}
steps {
input message: "Approve build for fork PR #${env.CHANGE_ID}?",
ok: 'Approve'
}
}
Comment on lines +17 to +37
def withGithubStageStatus = { String context, String stageName, Closure body ->
if (env.CHANGE_ID) {
githubNotify context: context, status: 'PENDING', description: "${stageName} started"
}
try {
body.call()
if (env.CHANGE_ID) {
githubNotify context: context, status: 'SUCCESS', description: "${stageName} passed"
}
} catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException ex) {
if (env.CHANGE_ID) {
githubNotify context: context, status: 'ERROR', description: "${stageName} aborted"
}
throw ex
} catch (Exception ex) {
if (env.CHANGE_ID) {
githubNotify context: context, status: 'FAILURE', description: "${stageName} failed"
}
throw ex
}
}
Comment on lines 386 to +390
script {
dir ('documentation_tests') {
checkout scmGit(branches: [[name: validation_branch]], userRemoteConfigs: [[credentialsId: 'workflow-lab', url: 'https://github.com/intel-innersource/frameworks.ai.openvino.model-server.tests.git']])
sh "pwd"
def pwd = sh(returnStdout:true, script: "pwd").strip()
def ovms_c_repo_path = sh(returnStdout:true, script: "cd .. && pwd").strip()
def test_doc_files_str = test_doc_files_linux.split('\n').join(' or ')
sh "make create-venv && rm -f tests/functional && ln -s ${pwd}/../tests/functional tests/functional"
def cmd_venv_activate = ". .venv/bin/activate"
def cmd_export = "export TT_OVMS_C_REPO_PATH=../ && export TT_RUN_REGRESSION_TESTS=True && export TT_REGRESSION_WEEKLY_TESTS=True && export TT_TARGET_DEVICE=CPU,GPU,NPU && export TT_ENABLE_UAT_TESTS=True && export TT_ENABLE_SMOKE_TESTS=False && export TT_OVMS_C_REPO_PATH=${ovms_c_repo_path} && export TT_LOGGING_LEVEL_OVMS=DEBUG && export TT_WAIT_FOR_MESSAGES_TIMEOUT=1500 && export CORE_BRANCH=${env.CHANGE_BRANCH ?: 'main'}"
def cmd_pytest = "pytest tests/non_functional/documentation -k '${test_doc_files_str}' -n 0 --dist loadgroup"
def cmd = ""
if ( image_build_needed == "true" ) {
unstash 'ovms-release-image'
sh "gunzip -c ovms_release_image.tar.gz | docker load"
sh "rm -f ovms_release_image.tar.gz"
withGithubStageStatus('jenkins/oncommit/doc-tests-linux', 'Linux doc tests') {
checkout scm
dir ('documentation_tests') {
checkout scmGit(branches: [[name: validation_branch]], userRemoteConfigs: [[credentialsId: 'workflow-lab', url: 'https://github.com/intel-innersource/frameworks.ai.openvino.model-server.tests.git']])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants