From 6f184021e0d4ba4995814570f6ec76b650c3ba49 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Mon, 12 Sep 2022 16:53:50 +0100 Subject: [PATCH] ci: enable MacOS M1 stages (#1123) (cherry picked from commit c8c313d470434cbb76db7ea753c937d42c5dca21) # Conflicts: # .ci/Jenkinsfile --- .ci/Jenkinsfile | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/.ci/Jenkinsfile b/.ci/Jenkinsfile index 832dccbeebf..8465a0a1815 100644 --- a/.ci/Jenkinsfile +++ b/.ci/Jenkinsfile @@ -43,6 +43,10 @@ pipeline { // disabled by default, but required for merge: // opt-in with 'ci:extended-windows' tag on PR booleanParam(name: 'extended_windows_ci', defaultValue: false, description: 'Enable Extended Windows tests') + + // disabled by default, but required for merge: + // opt-in with 'ci:extended-m1' tag on PR + booleanParam(name: 'extended_m1_ci', defaultValue: false, description: 'Enable M1 tests') } stages { stage('Checkout') { @@ -56,6 +60,7 @@ pipeline { setEnvVar('PACKAGING_CHANGES', isGitRegionMatch(patterns: [ '(^dev-tools/packaging/.*|.ci/Jenkinsfile)' ], shouldMatchAll: false).toString()) setEnvVar('K8S_CHANGES', isGitRegionMatch(patterns: [ '(^deploy/kubernetes/.*|^version/docs/version.asciidoc|.ci/Jenkinsfile)' ], shouldMatchAll: false).toString()) setEnvVar('EXT_WINDOWS_CHANGES', isGitRegionMatch(patterns: [ '.ci/Jenkinsfile' ], shouldMatchAll: false).toString()) + setEnvVar('EXT_M1_CHANGES', isGitRegionMatch(patterns: [ '.ci/Jenkinsfile' ], shouldMatchAll: false).toString()) } } } @@ -243,6 +248,47 @@ pipeline { } } } +<<<<<<< HEAD +======= + stage('Sync K8s') { //This stage opens a PR to kibana Repository in order to sync k8s manifests + when { + // Only on main branch + // Enable if k8s related changes. + allOf { + branch 'main' // Only runs for branch main + expression { return env.K8S_CHANGES == "true" } // If k8s changes + } + } + failFast false + agent {label 'ubuntu-20.04 && immutable'} + options { skipDefaultCheckout() } + stages { + stage('OpenKibanaPR') { + steps { + withGhEnv(version: '2.4.0') { + deleteDir() + unstashV2(name: 'source', bucket: "${JOB_GCS_BUCKET}", credentialsId: "${JOB_GCS_CREDENTIALS}") + dir("${BASE_DIR}/deploy/kubernetes"){ + sh(label: '[File Creation] Create-Needed-Manifest', script: """ + WITHOUTCONFIG=true make generate-k8s + ./creator_k8s_manifest.sh . """) + sh(label: '[Clone] Kibana-Repository', script: """ + make ci-clone-kibana-repository + cp Makefile ./kibana + cd kibana + make ci-create-kubernetes-templates-pull-request """) + } + } + } + post { + always { + junit(allowEmptyResults: true, keepLongStdio: true, testResults: "${BASE_DIR}/build/TEST-*.xml") + } + } + } + } + } +>>>>>>> c8c313d47 (ci: enable MacOS M1 stages (#1123)) stage('e2e tests') { when { // Always when running builds on branches/tags @@ -326,6 +372,55 @@ pipeline { } } } + stage('m1') { + agent { label 'orka && darwin && aarch64' } + options { skipDefaultCheckout() } + when { + // Always when running builds on branches/tags + // Enable if extended M1 support related changes. + beforeAgent true + anyOf { + not { changeRequest() } + expression { return isExtendedM1Enabled() && env.ONLY_DOCS == "false"} + } + } + stages { + stage('build'){ + steps { + withGithubNotify(context: "Build-darwin-aarch64") { + deleteDir() + unstashV2(name: 'source', bucket: "${JOB_GCS_BUCKET}", credentialsId: "${JOB_GCS_CREDENTIALS}") + withMageEnv(){ + dir("${BASE_DIR}"){ + cmd(label: 'Go build', script: 'mage build') + } + } + } + } + } + stage('Test') { + steps { + withGithubNotify(context: "Test-darwin-aarch64") { + withMageEnv(){ + dir("${BASE_DIR}"){ + withEnv(["TEST_COVERAGE=${isCodeCoverageEnabled()}"]) { + cmd(label: 'Go unitTest', script: 'mage unitTest') + } + } + } + } + } + post { + always { + junit(allowEmptyResults: true, keepLongStdio: true, testResults: "${BASE_DIR}/build/TEST-*.xml") + whenTrue(isCodeCoverageEnabled()) { + coverageReport(baseDir: "**/build", reportFiles: 'TEST-go-unit.html', coverageFiles: 'TEST-go-unit-cov.xml') + } + } + } + } + } + } } post { cleanup { @@ -446,3 +541,13 @@ def isPackageEnabled() { def isExtendedWindowsEnabled() { return env.EXT_WINDOWS_CHANGES == "true" || params.extended_windows_ci || env.GITHUB_COMMENT?.contains('extended windows') || matchesPrLabel(label: 'ci:extended-windows') } +<<<<<<< HEAD +======= + +/** +* Wrapper to know if the build should enable the M1 extended support +*/ +def isExtendedM1Enabled() { + return env.EXT_M1_CHANGES == "true" || params.extended_m1_ci || env.GITHUB_COMMENT?.contains('extended m1') || matchesPrLabel(label: 'ci:extended-m1') +} +>>>>>>> c8c313d47 (ci: enable MacOS M1 stages (#1123))