112 lines
3.7 KiB
Django/Jinja
112 lines
3.7 KiB
Django/Jinja
// -*- mode: groovy -*-
|
|
|
|
// Licensed to the Apache Software Foundation (ASF) under one
|
|
// or more contributor license agreements. See the NOTICE file
|
|
// distributed with this work for additional information
|
|
// regarding copyright ownership. The ASF licenses this file
|
|
// to you 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.
|
|
|
|
// Jenkins pipeline
|
|
// See documents at https://jenkins.io/doc/book/pipeline/jenkinsfile/
|
|
|
|
// Docker env used for testing
|
|
// Different image may have different version tag
|
|
// because some of them are more stable than anoter.
|
|
//
|
|
// Docker images are maintained by PMC, cached in dockerhub
|
|
// and remains relatively stable over the time.
|
|
// Flow for upgrading docker env(need commiter)
|
|
//
|
|
// - Send PR to upgrade build script in the repo
|
|
// - Build the new docker image
|
|
// - Tag the docker image with a new version and push to a binary cache.
|
|
// - Update the version in the Jenkinsfile, send a PR
|
|
// - Fix any issues wrt to the new image version in the PR
|
|
// - Merge the PR and now we are in new version
|
|
// - Tag the new version as the lates
|
|
// - Periodically cleanup the old versions on local workers
|
|
//
|
|
|
|
// ============================= IMPORTANT NOTE =============================
|
|
// This file is generated by 'jenkins/generate.py'. Do not edit this file directly!
|
|
// Make edits to 'jenkins/Jenkinsfile.j2' and regenerate this with
|
|
// 'python3 jenkins/generate.py'
|
|
// Note: This timestamp is here to ensure that updates to the Jenkinsfile are
|
|
// always rebased on main before merging:
|
|
// Generated at {{ generated_time }}
|
|
|
|
import org.jenkinsci.plugins.pipeline.modeldefinition.Utils
|
|
{% import 'utils/macros.j2' as m with context -%}
|
|
|
|
|
|
// These are set at runtime from data in ci/jenkins/docker-images.yml, update
|
|
// image tags in that file
|
|
ci_gpu = ''
|
|
ci_cpu = ''
|
|
ci_minimal = ''
|
|
ci_wasm = ''
|
|
ci_cortexm = ''
|
|
ci_arm = ''
|
|
ci_riscv = ''
|
|
|
|
// Parameters to allow overriding (in Jenkins UI), the images
|
|
// to be used by a given build. When provided, they take precedence
|
|
// over default values above.
|
|
properties([
|
|
parameters([
|
|
{% for image in images %}
|
|
string(name: '{{ image.name }}_param', defaultValue: ''),
|
|
{% endfor %}
|
|
])
|
|
])
|
|
|
|
// Placeholders for newly built Docker image names (if rebuild_docker_images
|
|
// is used)
|
|
{% for image in images %}
|
|
built_{{ image.name }} = null;
|
|
{% endfor %}
|
|
|
|
// Global variable assigned during Sanity Check that holds the sha1 which should be
|
|
// merged into the PR in all branches.
|
|
upstream_revision = null
|
|
|
|
// command to start a docker container
|
|
docker_run = 'docker/bash.sh --env CI --env PLATFORM --env SKIP_SLOW_TESTS --env TEST_STEP_NAME'
|
|
docker_build = 'docker/build.sh'
|
|
// timeout in minutes
|
|
max_time = 180
|
|
rebuild_docker_images = false
|
|
|
|
s3_bucket = 'tvm-jenkins-artifacts-prod'
|
|
s3_prefix = "tvm/${env.BRANCH_NAME}/${env.BUILD_NUMBER}"
|
|
|
|
// Jenkins script root directory
|
|
jenkins_scripts_root = "ci/scripts/jenkins"
|
|
|
|
|
|
// General note: Jenkins has limits on the size of a method (or top level code)
|
|
// that are pretty strict, so most usage of groovy methods in these templates
|
|
// are purely to satisfy the JVM
|
|
{% include "utils/Prepare.groovy.j2" %}
|
|
{% include "utils/Build.groovy.j2" %}
|
|
{% include "utils/Test.groovy.j2" %}
|
|
|
|
cancel_previous_build()
|
|
|
|
try {
|
|
prepare('CPU-SMALL-SPOT')
|
|
} catch(Exception ex) {
|
|
prepare('CPU-SMALL')
|
|
}
|