Commit 452d6eea authored by Martin Santangelo's avatar Martin Santangelo

(feat) CI improvements, play store build and upload

1 merge request!466CI Improvements
version: 2
jobs:
node:
test:
working_directory: ~/mobile-native
docker:
- image: circleci/node:10
......@@ -174,11 +174,7 @@ jobs:
name: Upload to Testflight release
command: fastlane testflight
working_directory: ios
branches:
only:
- /stable-*/
- /release-*/
- test/circle-ci
sentry:
docker:
- image: getsentry/sentry-cli
......@@ -204,10 +200,16 @@ workflows:
version: 2
node-ios:
jobs:
- node
- test
- ios:
requires:
- node
- test
filters:
branches:
only:
- /stable-*/
- /test-*/
- test/circle-ci
- sentry:
requires:
- ios
......@@ -2,10 +2,10 @@
stages:
- test
- build
- e2e
- deploy
- i18n
- deploy
# Spec test
test:jest:
image: node:10.16.3
stage: test
......@@ -14,10 +14,12 @@ test:jest:
paths:
- node_modules/
- .jest/cache/
before_script:
- yarn install --frozen-lockfile
script:
- yarn install
- yarn test
# Upload new terms to poeditor
i18n:upload:
image: node:10.16.3
stage: i18n
......@@ -25,14 +27,15 @@ i18n:upload:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .jest/cache/
before_script:
- yarn install --frozen-lockfile
script:
- yarn install
- yarn locale upload --poeditor-key=${CI_POEDITOR_KEY} --overwrite=1
only:
refs:
- /^release-*/
# Upload new terms and remove the deleted
i18n:uploadsync:
image: node:10.16.3
stage: i18n
......@@ -40,53 +43,132 @@ i18n:uploadsync:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .jest/cache/
before_script:
- yarn install --frozen-lockfile
script:
- yarn install
- yarn locale upload --poeditor-key=${CI_POEDITOR_KEY} --overwrite=1 --sync_terms=1
only:
refs:
- /^stable-*/
- master
# Web dev version using cache and without sentry maps upload
build:android:
image: circleci/android:api-28-node
stage: build
cache:
key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths:
- node_modules/
- android/vendor/bundle
- .gradle/caches
- .gradle/wrapper
- .android/build-cache/
before_script:
- 'sed -i ''s/^apply from: "..\/..\/node_modules\/\@sentry\/react-native\/sentry.gradle"//'' android/app/build.gradle'
- export ANDROID_SDK_HOME=$CI_PROJECT_DIR
- export GRADLE_USER_HOME="$CI_PROJECT_DIR/.gradle"
- sudo sysctl fs.inotify.max_user_watches=524288
- sudo sysctl -p
- yarn install --frozen-lockfile
- cd android
- bundle install --path=vendor/bundle
script:
- bundle exec fastlane assemble_build
- mv app/build/outputs/apk/release/app-release.apk ../Minds-$CI_COMMIT_REF_SLUG-dev.apk
artifacts:
name: "Minds APK"
paths:
- Minds-$CI_COMMIT_REF_SLUG-dev.apk
expire_in: 7 days
when: on_success
only:
refs:
- /^release-*/
# Web version (Higher version code)
build:androidproduction:
image: circleci/android:api-28-node
stage: build
before_script:
- export ANDROID_SDK_HOME=$CI_PROJECT_DIR
- export GRADLE_USER_HOME="$CI_PROJECT_DIR/.gradle"
- sudo sysctl fs.inotify.max_user_watches=524288
- sudo sysctl -p
- yarn install --frozen-lockfile
- cd android
- bundle install --path=vendor/bundle
script:
- yarn install
- bundle exec fastlane assemble_build
- mv app/build/outputs/apk/release/app-release.apk ../Minds-$CI_COMMIT_REF_SLUG.apk
artifacts:
name: "Minds APK"
paths:
- Minds-$CI_COMMIT_REF_SLUG.apk
expire_in: 7 days
when: on_success
only:
refs:
- /^stable-*/
- /^test-*/
# Play store version (Lowest version code)
build:androidproduction-playstore:
image: circleci/android:api-28-node
stage: build
before_script:
- 'sed -i ''s/^versionCode=/# versionCode=/'' android/gradle.properties'
- 'sed -i ''s/^## versionCode/versionCode/'' android/gradle.properties'
- export ANDROID_SDK_HOME=$CI_PROJECT_DIR
- export GRADLE_USER_HOME="$CI_PROJECT_DIR/.gradle"
- sudo sysctl fs.inotify.max_user_watches=524288
- sudo sysctl -p
- yarn install --frozen-lockfile
- cd android
- bundle install
- fastlane assemble_build
- cp app/build/outputs/apk/release/app-release.apk ../Minds-$CI_BUILD_REF_SLUG.apk
- bundle install --path=vendor/bundle
script:
- bundle exec fastlane assemble_build
- mv app/build/outputs/apk/release/app-release.apk ../Minds-$CI_COMMIT_REF_SLUG-play_store.apk
artifacts:
name: "Minds APK"
paths:
- Minds-$CI_BUILD_REF_SLUG.apk
- Minds-$CI_COMMIT_REF_SLUG-play_store.apk
expire_in: 7 days
when: on_success
only:
refs:
- /^stable-*/
- /^test-*/
deploy:s3:
# Deploy Web/PlayStore versions to s3 and browserstack
deploy:s3andbrowserstack:
image: minds/ci:latest
stage: deploy
script:
- echo "Upload Minds-$CI_BUILD_REF_SLUG.apk"
- aws s3 cp Minds-$CI_BUILD_REF_SLUG.apk s3://minds-repo/mobile/Minds-$CI_BUILD_REF_SLUG.apk
- echo "Upload Minds-$CI_COMMIT_REF_SLUG.apk"
- aws s3 cp Minds-$CI_COMMIT_REF_SLUG.apk s3://minds-repo/mobile/Minds-$CI_COMMIT_REF_SLUG.apk
- aws s3 cp Minds-$CI_COMMIT_REF_SLUG-play_store.apk s3://minds-repo/mobile/Minds-$CI_COMMIT_REF_SLUG-play_store.apk
- curl -u $CI_BROWSERSTACK_APIKEY -X POST "https://api-cloud.browserstack.com/app-live/upload" -F "file=@Minds-$CI_COMMIT_REF_SLUG.apk"
- curl -u $CI_BROWSERSTACK_APIKEY -X POST "https://api-cloud.browserstack.com/app-live/upload" -F "file=@Minds-$CI_COMMIT_REF_SLUG-play_store.apk"
dependencies:
- build:android
- build:androidproduction
- build:androidproduction-playstore
only:
refs:
- /^stable-*/
- /^test-*/
deploy:google_play:
image: minds/ci:latest
image: circleci/android:api-28-node
stage: deploy
before_script:
- cd android
- bundle install --path=vendor/bundle
- 'echo $ANDROID_PLAYSTORE_JSON | base64 --decode > app/play-store.json'
script:
- echo "Upload Minds-$CI_BUILD_REF_SLUG.apk"
- echo "Upload to the play store Minds-$CI_COMMIT_REF_SLUG-play_store.apk"
- bundle exec fastlane supply --apk ../Minds-$CI_COMMIT_REF_SLUG-play_store.apk --track beta --validate_only true
dependencies:
- build:android
- build:androidproduction-playstore
only:
refs:
- /^stable-*/
......
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.0)
addressable (2.6.0)
public_suffix (>= 2.0.2, < 4.0)
CFPropertyList (3.0.2)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
atomos (0.1.3)
babosa (1.0.2)
claide (1.0.2)
babosa (1.0.3)
claide (1.0.3)
colored (1.2)
colored2 (3.1.2)
commander-fastlane (4.4.6)
......@@ -16,18 +16,18 @@ GEM
digest-crc (0.4.1)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.4)
dotenv (2.7.5)
emoji_regex (1.0.1)
excon (0.65.0)
faraday (0.15.4)
excon (0.71.1)
faraday (0.17.3)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6)
faraday (>= 0.7.4)
http-cookie (~> 1.0.0)
faraday_middleware (0.13.1)
faraday (>= 0.7.4, < 1.0)
fastimage (2.1.5)
fastlane (2.128.0)
fastimage (2.1.7)
fastlane (2.139.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0)
babosa (>= 1.0.2, < 2.0.0)
......@@ -36,13 +36,13 @@ GEM
commander-fastlane (>= 4.4.6, < 5.0.0)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 2.0)
excon (>= 0.45.0, < 1.0.0)
faraday (~> 0.9)
excon (>= 0.71.0, < 1.0.0)
faraday (~> 0.17)
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 0.9)
faraday_middleware (~> 0.13.1)
fastimage (>= 2.1.0, < 3.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-api-client (>= 0.21.2, < 0.24.0)
google-api-client (>= 0.29.2, < 0.37.0)
google-cloud-storage (>= 1.15.0, < 2.0.0)
highline (>= 1.7.2, < 2.0.0)
json (< 3.0.0)
......@@ -52,7 +52,7 @@ GEM
multipart-post (~> 2.0.0)
plist (>= 3.1.0, < 4.0.0)
public_suffix (~> 2.0.0)
rubyzip (>= 1.2.2, < 2.0.0)
rubyzip (>= 1.3.0, < 2.0.0)
security (= 0.1.3)
simctl (~> 1.6.3)
slack-notifier (>= 2.0.0, < 3.0.0)
......@@ -61,46 +61,46 @@ GEM
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.8.1, < 2.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
gh_inspector (1.1.3)
google-api-client (0.23.9)
google-api-client (0.36.4)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.5, < 0.7.0)
googleauth (~> 0.9)
httpclient (>= 2.8.1, < 3.0)
mime-types (~> 3.0)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
signet (~> 0.9)
google-cloud-core (1.3.0)
signet (~> 0.12)
google-cloud-core (1.4.1)
google-cloud-env (~> 1.0)
google-cloud-env (1.2.0)
google-cloud-env (1.3.0)
faraday (~> 0.11)
google-cloud-storage (1.16.0)
google-cloud-storage (1.25.0)
addressable (~> 2.5)
digest-crc (~> 0.4)
google-api-client (~> 0.23)
google-api-client (~> 0.33)
google-cloud-core (~> 1.2)
googleauth (>= 0.6.2, < 0.10.0)
googleauth (0.6.7)
googleauth (~> 0.9)
mini_mime (~> 1.0)
googleauth (0.10.0)
faraday (~> 0.12)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (~> 0.7)
signet (~> 0.12)
highline (1.7.10)
http-cookie (1.0.3)
domain_name (~> 0.5)
httpclient (2.8.3)
json (2.2.0)
json (2.3.0)
jwt (2.1.0)
memoist (0.16.0)
mime-types (3.2.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2019.0331)
mini_magick (4.9.5)
multi_json (1.13.1)
memoist (0.16.2)
mini_magick (4.10.1)
mini_mime (1.0.2)
multi_json (1.14.1)
multi_xml (0.6.0)
multipart-post (2.0.0)
nanaimo (0.2.6)
......@@ -114,14 +114,14 @@ GEM
uber (< 0.2.0)
retriable (3.1.2)
rouge (2.0.7)
rubyzip (1.2.3)
rubyzip (1.3.0)
security (0.1.3)
signet (0.11.0)
signet (0.12.0)
addressable (~> 2.3)
faraday (~> 0.9)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.5)
simctl (1.6.7)
CFPropertyList
naturally
slack-notifier (2.3.2)
......@@ -130,7 +130,7 @@ GEM
unicode-display_width (~> 1.1, >= 1.1.1)
tty-cursor (0.7.0)
tty-screen (0.7.0)
tty-spinner (0.9.1)
tty-spinner (0.9.2)
tty-cursor (~> 0.7)
uber (0.1.0)
unf (0.1.4)
......@@ -138,7 +138,7 @@ GEM
unf_ext (0.0.7.6)
unicode-display_width (1.6.0)
word_wrap (1.0.0)
xcodeproj (1.11.0)
xcodeproj (1.14.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
......@@ -156,4 +156,4 @@ DEPENDENCIES
fastlane
BUNDLED WITH
2.0.2
2.1.4
json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
json_key_file("../android/app/play-store.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
package_name("com.minds.mobile") # e.g. com.krausefx.app
......@@ -21,11 +21,6 @@ or alternatively using `brew cask install fastlane`
fastlane android test
```
Runs all the tests
### android copy_secrets
```
fastlane android copy_secrets
```
Copy secrets
### android assemble_build
```
fastlane android assemble_build
......
Updated translations
Slovak added
Bug Fixes
\ No newline at end of file
Updated translations
Slovak added
Bug Fixes
\ No newline at end of file
The Crypto Social Network
★ Features. Newsfeed, Wallet, Groups, Blogs, Video, Images, Search, Channels, Videos, Images, Statuses, Rewards, Video Chat
★ Privacy. Chat securely with encrypted messenger. Be anonymous if you wish.
★ Contribute. Create popular original content that receives upvotes, comments and reminds. Gain new subscribers, refer contacts, check-in, develop code and more.
★ Earn. Each day we measure your contribution relative to the community and reward you with tokens.
★ Get Views. Exchange your tokens for views on your content and increase your chances of earning rewards. No algorithms or surveillance. 100% organic reach. 1 token = 1,000 views.
★ Sell Digital Services. Share exclusive digital content and other custom rewards to your supporters and earn tokens.
★ Open Source. Minds is free and open source which allows anyone to inspect, modify or share their version of the source code.
For support, questions, or more information, please visit:
https://minds.com/faq
Source code:
https://minds.org
\ No newline at end of file
The Crypto Social Network
\ No newline at end of file
Minds
\ No newline at end of file
https://www.youtube.com/watch?v=IX19sfet5PY&feature=youtu.be
\ No newline at end of file
......@@ -26,10 +26,10 @@ org.gradle.jvmargs=-Xmx2048m
systemProp.org.gradle.internal.http.connectionTimeout=180000
systemProp.org.gradle.internal.http.socketTimeout=180000
versionName=3.14.0
versionName=3.15.0
# CUSTOM
versionCode=1050000018
versionCode=1050000019
# PLAY STORE
# versionCode=310036
# PLAY STORE (Keep double hash for the CI)
## versionCode=310037
Please register or to comment