From 2773a7ac8620ef6fb8cead29ce864b8891a5a288 Mon Sep 17 00:00:00 2001 From: Adith Kumar Urs Date: Thu, 19 Nov 2020 22:46:04 -0700 Subject: [PATCH] MPAE-8028 added CI support and readme --- .citd/Jenkinsfilek8s | 170 ++++++++++++++++++++++++++++++++++++++++ .citd/cloudprovider.yml | 18 +++++ .gitignore | 13 +++ .main-meta/main.json | 58 ++++++++++++++ LICENSE.txt | 20 +++++ README.md | 41 ++++++++++ images/microchip.png | Bin 0 -> 5606 bytes 7 files changed, 320 insertions(+) create mode 100644 .citd/Jenkinsfilek8s create mode 100644 .citd/cloudprovider.yml create mode 100644 .gitignore create mode 100644 .main-meta/main.json create mode 100644 LICENSE.txt create mode 100644 images/microchip.png diff --git a/.citd/Jenkinsfilek8s b/.citd/Jenkinsfilek8s new file mode 100644 index 0000000..b61626f --- /dev/null +++ b/.citd/Jenkinsfilek8s @@ -0,0 +1,170 @@ +// Jenkinsfilek8s v1.2.0 + +pipeline { + agent { + kubernetes { + label 'avr128da48-cnano-ws2812-mplab-mcc' + 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-ws2812-mplab-mcc.git' + BITBUCKET_URL = 'https://bitbucket.microchip.com/scm/ebe/avr128da48-cnano-ws2812-mplab-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 diff --git a/.citd/cloudprovider.yml b/.citd/cloudprovider.yml new file mode 100644 index 0000000..8f96c5f --- /dev/null +++ b/.citd/cloudprovider.yml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Pod +metadata: + name: xc8-mplabx +spec: + containers: + - name: xc8-mplabx + image: artifacts.microchip.com:7999/microchip/citd/bundles/xc8-mplabx:latest + imagePullPolicy: Always + command: ['cat'] + tty: true + resources: + requests: + cpu: 1 + memory: 4Gi + limits: + cpu: 2 + memory: 8Gi \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3117d20 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# Untracked files in MPLABX projects +/**/build/* +/**/nbproject/* +!/**/nbproject/*.xml +/**/[Ff]ree/production/* +/**/[Pp]ro/production/* +/**/.generated_files/* + +# Uncomment these to include hex/elf files +#!/**/[Ff]ree/production/*.hex +#!/**/[Ff]ree/production/*.elf +#!/**/[Pp]ro/production/*.hex +#!/**/[Pp]ro/production/*.elf \ No newline at end of file diff --git a/.main-meta/main.json b/.main-meta/main.json new file mode 100644 index 0000000..61bdc7a --- /dev/null +++ b/.main-meta/main.json @@ -0,0 +1,58 @@ +{ + "metaDataVersion": "1.0.0", + "category": "com.microchip.ide.project", + "content": { + "metaDataVersion": "1.1.0", + "name": "com.microchip.mcu8.mplabx.project.avr128da48-cnano-ws2812-mplab-mcc", + "version": "1.0.0", + "displayName": " ", + "projectName": "avr128da48-cnano-ws2812-mplab-mcc", + "shortDescription": "", + "ide": { + "name": "MPLAB X", + "semverRange": "" + }, + "compiler": [ + { + "name": "XC8", + "semverRange": "" + } + ], + "dfp": { + "name": "", + "semverRange": "" + }, + "configurator": { + "name": "", + "semverRange": "" + }, + "device": { + "metaDataVersion": "1.0.0", + "category": "com.microchip.portal.contentRef", + "content": { + "metaDataVersion": "1.0.0", + "category": "com.microchip.device", + "name": "", + "versionRange": "*" + } + }, + "author": "", + "subcategories": [ + ], + "peripherals": [ + ], + "keywords": [ + ], + "additionalData": { + "longDescription": { + "metaDataVersion": "1.0.0", + "category": "com.microchip.portal.fileRef", + "content": { + "metaDataVersion": "1.0.0", + "fileName": "./README.md", + "mimeType": "text/markdown" + } + } + } + } +} diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..9a0b262 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,20 @@ + (c) 2020 Microchip Technology Inc. and its subsidiaries. + + Subject to your compliance with these terms, you may use Microchip software + and any derivatives exclusively with Microchip products. You're responsible + for complying with 3rd party license terms applicable to your use of 3rd + party software (including open source software) that may accompany Microchip + software. + + SOFTWARE IS "AS IS." NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, + APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, + MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + + IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, + INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND + WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP + HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO + THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL + CLAIMS RELATED TO THE SOFTWARE WILL NOT EXCEED AMOUNT OF FEES, IF ANY, + YOU PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + diff --git a/README.md b/README.md index e69de29..18d5de3 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,41 @@ + +[![MCHP](images/microchip.png)](https://www.microchip.com) + +# Update the title for avr128da48-cnano-ws2812-mplab-mcc here + + + +## Related Documentation + + + +## Software Used + + + +## Hardware Used + + + +## Setup + + + +## Operation + + + +## Summary + + diff --git a/images/microchip.png b/images/microchip.png new file mode 100644 index 0000000000000000000000000000000000000000..9bdf56cd09f0fdf4b9faaead99bf04ab1ac4f904 GIT binary patch literal 5606 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 literal 0 HcmV?d00001