UNPKG

situm-cordova-plugin-official

Version:
337 lines (257 loc) 11.2 kB
trigger: - develop - release/* - feature/* pr: none variables: - group: Passwords - group: SoftwareVersions - group: ConfluencePages - group: ChangelogIds parameters: - name: CordovaVersion displayName: Plugin version (Only required for Release) default: "0.0.0" resources: repositories: - repository: sys_kubernetes_templates type: bitbucket endpoint: Bitbucket - sistemas name: situm/sys-kubernetes-templates.git ref: master - repository: web_developers type: bitbucket endpoint: Bitbucket - sistemas name: situm/web-developers.git ref: master - repository: cordova_sdk_validation type: bitbucket endpoint: Bitbucket - sistemas name: situm/cordova-sdk-validation.git ref: master jobs: - ${{ if or(contains(variables['Build.SourceBranch'], 'feature/'), contains(variables['Build.SourceBranch'],'develop'), ne(variables['Build.Reason'],'Manual')) }}: - job: Test_iOS pool: vmImage: $(macOSVersion) steps: - template: azure/common-steps.yaml - bash: | echo -e "\n[+] Set xcode version to $(xcodeVersion)" sudo xcode-select -switch $(xcodeVersion) echo -e "\n[+] Copy JSON test files \n" tests/scripts/copy_ios_resources.sh echo -e "\n[+] Pod install \n" cd src/ios pod install echo -e "\n[+] Execute xcode tests \n" xcodebuild test -workspace SitumCordovaPlugin.xcworkspace -scheme CordovaLib -destination $(iosSimulator) if [ $? -ne 0 ];then echo -e "\n [!] Error with tests....... \n" exit 1 fi displayName: Execute Tests - job: Test_Android pool: vmImage: $(ubuntuVersion) steps: - template: azure/common-steps.yaml - bash: | echo -e "\n[+] Copy JSON test files \n" tests/scripts/copy_android_resources.sh echo -e "\n[+] Execute gradle tests \n" cd src/android ./gradlew test --continue --info if [ $? -ne 0 ];then echo -e "\n [!] Error with tests....... \n" exit 1 fi displayName: Execute Test - task: PublishTestResults@2 inputs: testResultsFormat: 'JUnit' testResultsFiles: 'src/android/app/build/test-results/*/*.xml' displayName: Publish test condition: always() - job: Test_JS pool: vmImage: $(ubuntuVersion) steps: - bash: | cd situm-cordova-plugin echo -e "\n[+] Install npm dependencies \n" npm install echo -e "\n[+] Execute npm tests \n" npm test displayName: JS Test - ${{ if contains(variables['Build.SourceBranch'], 'release/') }}: - job: Generate_Release pool: vmImage: $(ubuntuVersion) steps: - template: azure/common-steps.yaml - task: NodeTool@0 inputs: versionSource: 'spec' versionSpec: $(nodeVersion) - ${{ if eq(variables['Build.Reason'],'manual') }}: - bash: | if [[ "${{ parameters.CordovaVersion }}" == "0.0.0" ]];then echo -e "\n[!] IMPORTANT: You don't set the plugin version when you run the release branch and I'm not fortune teller\n" exit 1 else echo "##vso[task.setvariable variable=version]$(echo ${{ parameters.CordovaVersion }})" echo -e "\n[+] I'm a shy step so I don't tell you anything\n" fi displayName: Set Cordova Version Manual - ${{ if ne(variables['Build.Reason'],'manual') }}: - bash: | CordovaVersion=$(echo $(Build.SourceBranch) | cut -d "/" -f 4) echo "##vso[task.setvariable variable=version]$(echo $CordovaVersion)" echo -e "\n[+] I'm a shy step that only executes where this pipeline run automatic\n" displayName: Set Cordova Version Automatic - bash: | echo -e "\n[+] Installing NPM version $(npmVersion)\n" npm install -g $(npmVersion) currentBranch=$(echo $(Build.SourceBranch) | cut -d "/" -f 3,4) echo "##vso[task.setvariable variable=currentBranch]$(echo $currentBranch)" echo -e "\n[+] Variables:" echo -e "\t[+] Plugin version: $(version)" echo -e "\t[+] NPM CLI version: $(npm --version)" echo -e "\t[+] Current branch: $currentBranch" echo -e "\n[+] Setting git remote credentials\n" if [ -d "situm-cordova-plugin" ];then cd situm-cordova-plugin fi git remote set-url origin https://situmops:$(github_token)@github.com/$(Build.Repository.Name).git cat .git/config displayName: Initial Vars & Configs - bash: | cd situm-cordova-plugin echo -e "\n[+] Setting NPM version to $(version)" npm version $(version) --no-git-tag-version echo -e "\n[+] Change plugin version in plugin.xml" sed -i "s/version=\".*\">/version=\"$(version)\">/g" plugin.xml echo -e "\n[+] Setting git to push NPM version\n" git config --global user.email "sistemas@situm.es" git config --global user.name "Situmops" echo -e "\n[+] Fetch branches \n" git fetch echo -e "\n[+] Changing to $(currentBranch)" git checkout $(currentBranch) echo -e "\n[+] Add,Commit and Push to $(currentBranch)" git commit -am "[skip ci] Setting the Cordova version to $(version)" git push --set-upstream origin $(currentBranch) git push displayName: Make changes - template: azure-templates/publish_release.yml@sys_kubernetes_templates parameters: bitbucket: bitbucket_user: situmops system: "N/A" server: "github" repoFolder: "situm-cordova-plugin" mergeBranches: - "master" - "develop" - bash: | cd situm-cordova-plugin echo -e "\n[+] Fetch all branches\n" git fetch echo -e "\n[+] Checkout and Pull to master branch\n" git checkout master git pull origin master echo -e "\n[+] Configure NPM login" echo "//registry.npmjs.org/:_authToken=$(NPM_TOKEN)" > ~/.npmrc echo -e "\n[+] Publish NPM packages" npm publish --access=public displayName: NPM publish - bash: | cd situm-cordova-plugin echo -e "\n[+] Install dependencies" npm install echo -e "\n[+] Generate Documentation\n" npm run jsdoc displayName: Generate JSDoc - template: azure-templates/commit-doc.yaml@sys_kubernetes_templates parameters: version: $(version) docPath: situm-cordova-plugin/docs/JSDoc system: cordova bitbucket: bitbucket_user: $(bitbucket_user) bitbucket_pass: $(bitbucket_pass) release: "situm-cordova-plugin" - checkout: cordova_sdk_validation fetchTags: false fetchDepth: 1 displayName: Checkout Cordova app example - bash: | cd cordova-sdk-validation echo -e "\n[+] Setting git remote credentials\n" git remote set-url origin https://$(bitbucket_user):$(bitbucket_pass)@bitbucket.org/situm/cordova-sdk-validation.git cat .git/config echo -e "\n[+] Fetch branches" git fetch origin master echo -e "\n[+] Checkout to master branch\n" git checkout master echo -e "\n[+] Commit empty change to run examples repo\n" git commit -m "Publish Cordova SDK plugin release $(version)" --allow-empty echo -e "\n[+] Push empty change \n" git push origin master displayName: Execute example app - bash: | if [ -d "situm-cordova-plugin" ]; then cd situm-cordova-plugin fi echo -e "\n[+] Pull master changes and change to master branch \n" git fetch git checkout master git pull origin master iossdk=$(grep -oE '\s<framework src="SitumSDK" type="podspec" spec="[0-9]+\.[0-9]+\.[0-9]+" />' plugin.xml | awk -F'"' '{print $6}') androidsdk=$(grep -oE 'es.situm:situm-sdk:[0-9]+\.[0-9]+\.[0-9]+@aar' src/android/situm.gradle | awk -F'[:@]' '{print $3}') echo -e "\n[+] Checkout to previous commit\n" git checkout HEAD~1 iossdk_old=$(grep -oE '\s<framework src="SitumSDK" type="podspec" spec="[0-9]+\.[0-9]+\.[0-9]+" />' plugin.xml | awk -F'"' '{print $6}') androidsdk_old=$(grep -oE 'es.situm:situm-sdk:[0-9]+\.[0-9]+\.[0-9]+@aar' src/android/situm.gradle | awk -F'[:@]' '{print $3}') echo -e "\n[+] Return repository to master branch\n" git checkout master echo -e "\n[+] Versions:" echo -e "\t[+] Cordova SDK: $(version)" echo -e "\t[+] ANDROID SDK: $androidsdk" echo -e "\t[+] IOS SDK: $iossdk" echo -e "\t[+] ANDROID SDK (OLD VERSION): $androidsdk_old" echo -e "\t[+] IOS SDK (OLD IOS): $iossdk_old" versions="| *VERSIÓN* | *FECHA* | *ANDROID SDK* | *IOS SDK* |\n|$(version)|$(date +"%d/%m/%Y")|" if [ "$androidsdk" != "$androidsdk_old" ];then versions="$versions *$androidsdk* |" android_changelog_version=$androidsdk else android_changelog_version="0.0.0" versions="$versions $androidsdk|" fi if [ "$iossdk" != "$iossdk_old" ];then versions="$versions *$iossdk*|" ios_changelog_version=$iossdk else ios_changelog_version="0.0.0" versions="$versions $iossdk|" fi echo "##vso[task.setvariable variable=versions]$(echo $versions)" echo "##vso[task.setvariable variable=android_changelog_version]$(echo $android_changelog_version)" echo "##vso[task.setvariable variable=ios_changelog_version]$(echo $ios_changelog_version)" displayName: Get Versions - template: azure-templates/publish-changelog.yaml@sys_kubernetes_templates parameters: changelogId: $(Cordova_Changelog_id) android_changelog_version: $(android_changelog_version) ios_changelog_version: $(ios_changelog_version) - template: azure-templates/release-table.yaml@sys_kubernetes_templates parameters: versions: $(versions) releaseTable: CORDOVA_SDK_TABLE confluence_release_page: $(CORDOVA_SDK_TABLE) confluence_release_page_title: "SDK Automatic Release Table - Cordova Plugin" bitbucket: bitbucket_user: $(bitbucket_user) bitbucket_pass: $(bitbucket_pass)