diff --git a/.drone.yml b/.drone.yml index 401aabb..4a8d8bb 100644 --- a/.drone.yml +++ b/.drone.yml @@ -63,6 +63,17 @@ steps: files: - ./coverage/lcov.info +volumes: +- name: pub-cache + temp: {} +- name: gradle + temp: {} + +--- +kind: pipeline +name: publish + +steps: - name: publish-check image: v7lin/flutter:1.5.4-hotfix.2-stable volumes: @@ -70,12 +81,87 @@ steps: path: /opt/flutter/.pub-cache commands: - flutter packages pub publish --dry-run - when: - event: - - tag + +- name: restore-cache + image: alpine:3.9.3 + volumes: + - name: pub-cache + path: /opt/flutter/.pub-cache + commands: + - FLUTTER_HOME=/opt/flutter/.pub-cache + - wget -P $FLUTTER_HOME https://raw.githubusercontent.com/v7lin/pub_credentials/master/credentials.json.enc + +- name: restore-cache-openssl + image: v7lin/openssl:1.1.1b + volumes: + - name: pub-cache + path: /opt/flutter/.pub-cache + environment: + ENC_METHOD: + from_secret: ENC_METHOD + ENC_PASSWORD: + from_secret: ENC_PASSWORD + commands: + - FLUTTER_HOME=/opt/flutter/.pub-cache + - openssl enc -d -$ENC_METHOD -k $ENC_PASSWORD -in $FLUTTER_HOME/credentials.json.enc -out $FLUTTER_HOME/credentials.json + - rm $FLUTTER_HOME/credentials.json.enc + +- name: publish + image: v7lin/flutter:1.5.4-hotfix.2-stable + volumes: + - name: pub-cache + path: /opt/flutter/.pub-cache + commands: + - echo "y" | flutter packages pub publish + +- name: save-cache-openssl + image: v7lin/openssl:1.1.1b + volumes: + - name: pub-cache + path: /opt/flutter/.pub-cache + environment: + ENC_METHOD: + from_secret: ENC_METHOD + ENC_PASSWORD: + from_secret: ENC_PASSWORD + commands: + - FLUTTER_HOME=/opt/flutter/.pub-cache + - openssl enc -e -$ENC_METHOD -k $ENC_PASSWORD -in $FLUTTER_HOME/credentials.json -out $FLUTTER_HOME/credentials.json.enc + - rm /opt/flutter/.pub-cache/credentials.json + +- name: save-cache + image: docker:git + volumes: + - name: pub-cache + path: /opt/flutter/.pub-cache + environment: + GIT_USER_EMAIL: + from_secret: GIT_USER_EMAIL + GIT_USER_NAME: + from_secret: GIT_USER_NAME + GIT_USER_PASSWORD: + from_secret: GIT_USER_PASSWORD # 密码含'@',用'%40'替换 -> URLEncoder.encode("@","utf-8"); + commands: + - FLUTTER_HOME=/opt/flutter/.pub-cache + - git config --global user.email $GIT_USER_EMAIL + - git config --global user.name $GIT_USER_NAME + - git config --global credential.helper store + - git clone -b master https://$GIT_USER_NAME:$GIT_USER_PASSWORD@github.com/v7lin/pub_credentials.git $FLUTTER_HOME/pub_credentials + - rm $FLUTTER_HOME/pub_credentials/credentials.json.enc + - mv $FLUTTER_HOME/credentials.json.enc $FLUTTER_HOME/pub_credentials/credentials.json.enc + - cd $FLUTTER_HOME/pub_credentials + - git commit -am "update credentials by ci/cd tools" + - git push volumes: - name: pub-cache temp: {} -- name: gradle - temp: {} + +trigger: + status: + - success + event: + - tag + +depends_on: +- default diff --git a/CHANGELOG.md b/CHANGELOG.md index af1b9ad..fa399a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.3.0 - 2019.5.24 + +* 优化 +* 自动化发布 + ## 0.2.0 - 2019.3.26 * 不再自动设置 AccessToken diff --git a/README.md b/README.md index 3e90525..25be10e 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,6 @@ flutter版腾讯(QQ)SDK ## fake 系列 libraries -* [flutter版okhttp3](https://github.com/v7lin/fake_http) * [flutter版微信SDK](https://github.com/v7lin/fake_wechat) * [flutter版腾讯(QQ)SDK](https://github.com/v7lin/fake_tencent) * [flutter版新浪微博SDK](https://github.com/v7lin/fake_weibo) diff --git a/example/lib/main.dart b/example/lib/main.dart index 136ffde..fe4598e 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -39,9 +39,9 @@ class Home extends StatefulWidget { } class _HomeState extends State { - static const String TENCENT_APPID = '222222'; + static const String _TENCENT_APPID = '222222'; - Tencent _tencent = Tencent(); + Tencent _tencent = Tencent()..registerApp(appId: _TENCENT_APPID); StreamSubscription _login; StreamSubscription _userInfo; @@ -52,7 +52,6 @@ class _HomeState extends State { @override void initState() { super.initState(); - _tencent.registerApp(appId: TENCENT_APPID); _login = _tencent.loginResp().listen(_listenLogin); _userInfo = _tencent.userInfoResp().listen(_listenUserInfo); _share = _tencent.shareResp().listen(_listenShare); diff --git a/lib/src/tencent.dart b/lib/src/tencent.dart index d214cc4..9e969fd 100644 --- a/lib/src/tencent.dart +++ b/lib/src/tencent.dart @@ -85,14 +85,17 @@ class Tencent { } } + /// 登录 Stream loginResp() { return _loginRespStreamController.stream; } + /// 用户信息 Stream userInfoResp() { return _userInfoRespStreamController.stream; } + /// 分享 Stream shareResp() { return _shareRespStreamController.stream; } @@ -105,6 +108,7 @@ class Tencent { return (await _channel.invokeMethod(_METHOD_ISQQSUPPORTSSOLOGIN)) as bool; } + /// 登录 Future login({ @required List scope, }) { @@ -117,10 +121,12 @@ class Tencent { ); } + /// 登出 Future logout() { return _channel.invokeMethod(_METHOD_LOGOUT); } + /// 用户信息 Future getUserInfo({ @required String openId, @required String accessToken, @@ -141,6 +147,7 @@ class Tencent { ); } + /// 分享 - 说说 Future shareMood({ @required int scene, String summary, @@ -182,6 +189,7 @@ class Tencent { return _channel.invokeMethod(_METHOD_SHAREMOOD, map); } + /// 分享 - 图片 Future shareImage({ @required int scene, @required Uri imageUri, @@ -204,6 +212,7 @@ class Tencent { return _channel.invokeMethod(_METHOD_SHAREIMAGE, map); } + /// 分享 - 音乐 Future shareMusic({ @required int scene, @required String title, @@ -242,6 +251,7 @@ class Tencent { return _channel.invokeMethod(_METHOD_SHAREMUSIC, map); } + /// 分享 - 网页 Future shareWebpage({ @required int scene, @required String title,