diff --git a/.citd/Jenkinsfilek8s b/.citd/Jenkinsfilek8s new file mode 100644 index 0000000..1666ca1 --- /dev/null +++ b/.citd/Jenkinsfilek8s @@ -0,0 +1,59 @@ +// Jenkinsfile v2.0.0 +pipeline { + agent { + kubernetes { + + defaultContainer 'xc8-mplabx' + yamlFile '.citd/cloudprovider.yml' + } + } + parameters { + string( name: 'NOTIFICATION_EMAIL', + defaultValue: 'PICAVR_Examples_GateKeepers@microchip.com', + description: "Email to send build failure and fixed notifications.") + } + + environment { + GITHUB_OWNER = 'microchip-pic-avr-examples' + GITHUB_URL ='https://github.com/microchip-pic-avr-examples/avr128da48-cnano-led-blink-pwm-mcc' + BITBUCKET_URL = 'https://bitbucket.microchip.com/scm/ebe/avr128da48-cnano-led-blink-pwm-mcc.git' + SEMVER_REGEX = '^(0|[1-9]\\d*)+\\.(0|[1-9]\\d*)+\\.(0|[1-9]\\d*)+$' + ARTIFACTORY_SERVER = 'https://artifacts.microchip.com:7999/artifactory' + } + options { + timestamps() + timeout(time: 30, unit: 'MINUTES') + } + + stages { + stage('setup') { + steps { + script { + execute("git clone https://bitbucket.microchip.com/scm/citd/mpae-buildpipeline-groovy-scripts.git") + def buildPipeline = load ('mpae-buildpipeline-groovy-scripts/xc8mplabx-buildpipeline.groovy') + buildPipeline.runStages() + } + } + } + } + + post { + failure { + script { + sendPipelineFailureEmail() + } + } + } +} +def execute(String cmd) { + if(isUnix()) { + sh cmd + } else { + bat cmd + } +} +def sendPipelineFailureEmail() { + mail to: "${env.EMAILLIST},${params.NOTIFICATION_EMAIL}", + subject: "Failed Pipeline: ${currentBuild.fullDisplayName}", + body: "Pipeline failure. ${env.BUILD_URL}" +} \ No newline at end of file diff --git a/cloudprovider.yml b/.citd/cloudprovider.yml similarity index 100% rename from cloudprovider.yml rename to .citd/cloudprovider.yml diff --git a/Jenkinsfilek8s b/Jenkinsfilek8s deleted file mode 100644 index 9623965..0000000 --- a/Jenkinsfilek8s +++ /dev/null @@ -1,170 +0,0 @@ -// Jenkinsfilek8s v1.2.0 - -pipeline { - agent { - kubernetes { - label 'avr128da48-cnano-led-blink-pwm-mcc' - defaultContainer 'xc8-mplabx' - yamlFile 'cloudprovider.yml' - } - } - - parameters { - string( name: 'NOTIFICATION_EMAIL', - defaultValue: 'PICAVR_Examples_GateKeepers@microchip.com', - description: "Email to send build failure and fixed notifications.") - } - - environment { - GITHUB_OWNER = 'microchip-pic-avr-examples' - GITHUB_URL ='https://github.com/microchip-pic-avr-examples/avr128da48-cnano-led-blink-pwm-mcc.git' - BITBUCKET_URL = 'https://bitbucket.microchip.com/scm/ebe/avr128da48-cnano-led-blink-pwm-mcc.git' - DEPLOY_TOOL_URL = 'https://bitbucket.microchip.com/scm/citd/tool-github-deploy.git' - DEPLOY_SCRIPT_DIR = 'tool-github-deploy' - DEPLOY_SCRIPT_FILE = 'deploy-source-as-is.sh' - } - - options { - timestamps() - timeout(time: 30, unit: 'MINUTES') - } - - stages { - stage('Checkout') { - steps { - checkout scm - } - } - - stage('metadata') { - steps { - script { - execute("pip install jsonschema") - execute("git clone https://bitbucket.microchip.com/scm/citd/metadata-schema.git") - execute("git clone https://bitbucket.microchip.com/scm/citd/tool-metadata-validator.git") - execute("cd tool-metadata-validator && python metadata-validator.py -data '../.main-meta/main.json' -schema '../metadata-schema/main-schema.json'") - } - } - } - - stage('Pre-build') { - steps { - script { - MPLABX_PATH= sh (script: 'update-alternatives --list MPLABX_PATH',returnStdout: true).trim() - COMPILER_PATH= sh (script: 'update-alternatives --list XC8_PATH',returnStdout: true).trim() - def pDir = "${MPLABX_PATH}/packs" - def ver = COMPILER_PATH.split('/')[4].substring(1) - - execute("git clone https://bitbucket.microchip.com/scm/citd/tool-mplabx-c-project-generator.git") - execute("cd tool-mplabx-c-project-generator && node configGenerator.js sp=../ v8=${ver} packs=${pDir}") - } - } - } - - stage('Build') { - steps { - script { - execute("git clone https://bitbucket.microchip.com/scm/citd/tool-mplabx-c-build.git") - execute("cd tool-mplabx-c-build && node buildLauncher.js sp=../ rp=./output genMK=true") - } - } - } - - stage('GitHub-Deploy') { - when { - not { - changeRequest() - } - anyOf { - tag '' - } - } - steps { - script { - execute("git clone ${env.DEPLOY_TOOL_URL}") - - withCredentials([usernamePassword(credentialsId: '8bit-examples.github.com', usernameVariable: 'USER_NAME', passwordVariable:'USER_PASS' )]) { - execute("cd ${env.DEPLOY_SCRIPT_DIR} && bash ${env.DEPLOY_SCRIPT_FILE} ${env.BITBUCKET_URL} ${env.GITHUB_URL} ${USER_NAME} ${USER_PASS} '--tag ${env.TAG_NAME}'") - } - - sendSuccessfulGithubDeploymentEmail() - } - } - } - - stage('Portal-Deploy') { - when { - not { - changeRequest() - } - tag '' - } - steps { - script { - def metadata = readJSON file:".main-meta/main.json" - def version = metadata.content.version - def project = metadata.content.projectName - - if(version == env.TAG_NAME) { - def cmdArgs = "'{\"repoOwnerName\":\"$env.GITHUB_OWNER\",\"repoName\":\"$project\",\"tagName\":\"$version\"}'" - cmdArgs = cmdArgs.replaceAll("\"","\\\\\"") - - execute("git clone https://bitbucket.microchip.com/scm/portal/bundles.git") - execute("cd bundles && chmod 755 ./portal-client-cli-linux") - execute("git clone https://bitbucket.microchip.com/scm/citd/tool-portal-client-launcher.git") - execute("cd tool-portal-client-launcher && node portalLauncher.js -app=../bundles/portal-client-cli-linux -cmd=\"uploadGitHub ${cmdArgs}\"") - sendSuccessfulPortalDeploymentEmail() - } else { - echo "Tag name is not equal to metadata content version." - execute("exit 1") - } - - } - } - } - } - - - post { - failure { - script { - sendPipelineFailureEmail() - } - } - always { - archiveArtifacts artifacts: "tool-mplabx-c-build/output/**", allowEmptyArchive: true, fingerprint: true - } - } -} - -def execute(String cmd) { - if(isUnix()) { - sh cmd - } else { - bat cmd - } -} - -def sendPipelineFailureEmail () { - if (!"${env.CHANGE_AUTHOR_EMAIL}".equalsIgnoreCase("null")) { - mail to: "${env.CHANGE_AUTHOR_EMAIL}, ${params.NOTIFICATION_EMAIL}", - subject: "Failed Pipeline: ${currentBuild.fullDisplayName}", - body: "Pipeline failure. ${env.BUILD_URL}" - } else { - mail to: "${params.NOTIFICATION_EMAIL}", - subject: "Failed Pipeline: ${currentBuild.fullDisplayName}", - body: "Pipeline failure. ${env.BUILD_URL}" - } -} - -def sendSuccessfulGithubDeploymentEmail () { - mail to: "${params.NOTIFICATION_EMAIL}", - subject: "Successful Github Deployment: ${currentBuild.fullDisplayName}", - body: "The changes have been successfully deployed to GitHub. ${env.GITHUB_URL}" -} - -def sendSuccessfulPortalDeploymentEmail () { - mail to: "${params.NOTIFICATION_EMAIL}", - subject: "Successful Portal Deployment: ${currentBuild.fullDisplayName}", - body: "The changes have been successfully deployed to Discover Portal." -} \ No newline at end of file