diff --git a/.travis.yml b/.travis.yml index 4c10002815..8a1c3eec12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,29 @@ language: node_js node_js: - - "5" - - "6" + - '5' + - '6' # after_success: # - 'cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js' - +before_deploy: + - ./scripts/prepare_release.sh && cd release deploy: - provider: script - skip_cleanup: true - script: scripts/release.sh - on: - node: "6" - branches: - only: - - master - - dev + - provider: script + skip_cleanup: true + script: ../scripts/start_release.sh + on: + node: '6' + condition: "$TRAVIS_TAG == ''" + branches: + only: + - master + - dev + - provider: npm + email: embbnux@embbnux.com + skip_cleanup: true + api_key: + secure: dEV+cBhn75/3ryLfLl4sVpuNIcl4nikmM2NqlbpODESznUFcVAHtcEWNMx/KShrgnl4AxoClAB459/WSCGqGy5jzQ7VlVbYU1mkPw17lQY7mpBIoR7Gm9Igsvk0Bx8jO3AINS+wsDi24vhv7zOGt1s1b0itUR2V8KCVKeMpionslTnkI2U3VgpCoVG5yA1sisMwiBX2fHzehwk7R84Q8dsc3xnQfMyE+nZiqud4CJOYsl/gsKEVyjzURK7v5zlroV+k6gV3w884G4LaFHZOup41+q5+zK1bN0y2X84BUDBRlMs4GxAMNm1SXJk/4TQRjgArRC8UsjyEeC+wEnNNjBtXPtt5Qy6EnNVZe6Wtw63C2BjpHZ4qI5u0wBgGPAcnWq3ZGvd48varFkIc+GtFh/7urpByPpRfoF3D6UvscPEd6WpHXdscfggoiIVyAMN55Mhb9qkOcgjatiZZg7QIJdlzyIazSBUm7bvyU3zsDMzIG/cighwRehm7+X2A/7NCUTOWnkGk8A76RZllWB4gx+bb0KeKUC0xBrQVwj7xkLw7l0fkEy8NrlEkShsGZGR1Dc86YtgWFO0m9Aa17u7PcLvnPyb5vPwNR/xsKEdOQwEe2t+qlI+abju5v5FIXmmRnHGZS3WpIjbVbJ021LOGYCsFVt03MppS9nR8ZoRLsHEs= + on: + node: '6' + tags: true + condition: "$TRAVIS_TAG =~ ^[0-9]+.[0-9]+.[0-9]+" + repo: ringcentral/ringcentral-js-widget diff --git a/README.md b/README.md index b20ae1aff9..5976ec1996 100644 --- a/README.md +++ b/README.md @@ -1 +1,5 @@ # ringcentral-js-widget + +[![Build Status](https://travis-ci.org/ringcentral/ringcentral-js-widget.svg?branch=master)](https://travis-ci.org/ringcentral/ringcentral-js-widget) + +RingCentral Integration Widget Library diff --git a/gulpfile.js b/gulpfile.js index f6b724714c..398bff8004 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -48,6 +48,31 @@ async function rm(filepath) { } } +async function exec(command) { + return new Promise((resolve, reject) => { + cp.exec(command, (error, stdout, stderr) => { + if (error) { + reject(error); + return; + } + resolve(stdout); + }); + }); +} + +async function getVersionFromTag() { + try { + let tag = await exec('git describe --exact-match --tags $(git rev-parse HEAD)'); + tag = tag.replace(/\r?\n|\r/g, ''); + if (/^\d+.\d+.\d+/.test(tag)) { + return tag; + } + return null; + } catch (e) { + return null; + } +} + gulp.task('clean', async () => ( rm(path.resolve(__dirname, 'build')) )); @@ -84,5 +109,9 @@ gulp.task('release-copy', ['build', 'release-clean'], () => ( gulp.task('release', ['release-copy'], async () => { const packageInfo = JSON.parse(await fs.readFile('package.json')); delete packageInfo.scripts; + const version = await getVersionFromTag(); + if (version) { + packageInfo.version = version; + } await fs.writeFile('release/package.json', JSON.stringify(packageInfo, null, 2)); }); diff --git a/package.json b/package.json index d0c9b10546..dd351b968f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "ringcentral-js-widget", - "version": "1.0.0", - "description": "", + "name": "ringcentral-widget", + "version": "0.1.0", + "description": "RingCentral Integration Widget Library", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 0", diff --git a/scripts/prepare_release.sh b/scripts/prepare_release.sh new file mode 100755 index 0000000000..3cf7dbef69 --- /dev/null +++ b/scripts/prepare_release.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +#clone latest branch +git clone "https://$RELEASE_USER:$RELEASE_TOKEN@github.com/$REPO" -b latest release &> /dev/null +npm run release diff --git a/scripts/start_release.sh b/scripts/start_release.sh new file mode 100755 index 0000000000..1928be1de2 --- /dev/null +++ b/scripts/start_release.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +if [[ $(git status -s) != '' ]] + then + git config user.email "integrations@ringcentral.com" &> /dev/null + git config user.name "RingCentral Integrations Team" &> /dev/null + git add --all . &> /dev/null + git commit -m "released at $(date)" &> /dev/null + git push origin latest -f &> /dev/null +fi