Commit Graph

89 Commits

Author SHA1 Message Date
Jakub Sokołowski d946d473c6 fastlane: use Apple Store Connect API for CI builds
Because our CI Apple account still has 2FA disabled in order for it to
be usable in Jenkin it is now failing with an error that seems unrelated
to 2FA.

The recommended way of doing Apple authentication for CI are App Store
Connect API JWTs. The API appears to support both pushing builds as well as
updating metadata and other tasks like refreshing of provisioning
profiles.

Fixes: https://github.com/status-im/status-react/issues/11713
Issue: https://github.com/fastlane/fastlane/issues/18098
Docs: https://docs.fastlane.tools/app-store-connect-api/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-04 15:10:07 +01:00
Jakub Sokołowski 0b8c673094
ci: fix iOS signing, use same keychain name
Using different temporary keychains does not work if we do not set
`default_keychain=true`, because `codesign` then can't find the cert:
```
error: No signing certificate "iOS Distribution" found: No "iOS Distribution" signing certificate matching team ID
```
But if we set `default_keychain=true` then we cause a race condition
when the keychain is deleted by a parallel job while another is using it
as its default.

For this reason we have to use a static keychain name and keep it
between builds.

I tried disabling `default_keychain=true` in #11378 but it worked only
because the default user keychain already had the cert.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-17 10:16:32 +01:00
Jakub Sokołowski 34c6292af4
fastlane: disable default_keychain to avoid race condition
If we run parallel job and a job sets a temporary keychain into a
default than another job can assume that is the user default.

The result is that one of the jobs will attempt to set a non-existent
temporary keychain into the default keychain.

This happens when we call `Fastlane::Actions::DeleteKeychainAction`:
https://github.com/fastlane/fastlane/blob/2.164.0/fastlane/lib/fastlane/actions/delete_keychain.rb#L21

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-11-05 16:09:32 +01:00
Jakub Sokołowski 3b780f4ff2
fastlane: Create temporary Keychain for iOS signing
This is a new approach to signing the iOS app by using a temporary
Keychain created only for that specific build and unlocked in advance.

By doing it this way we can avoid issues with `errSecInternalComponent`
appearing when there is no UI to open a Keychain password prompt when
running build in CI. I've described this problem in details in:
https://github.com/fastlane/fastlane/issues/15185

Thanks to `codesign:` partition ID being added to key partition list by
Fastlane `match` when importing a Keychain this approach now works:
https://github.com/fastlane/fastlane/pull/17456

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-11-03 00:03:38 +01:00
Jakub Sokołowski 250b4d4646
upgrade fastlane 2.154.0 to 2.164.0
It's been a while and a fix for an issue I've reported a long time ago
has been merged in https://github.com/fastlane/fastlane/pull/17456. With
this fix we should see less iOS signing issues appearing as `errSecInternalComponent`.

This should also enable me to try a fix I proposed in
https://github.com/fastlane/fastlane/issues/15185 which consists of
creating a temporary unlocked keychain for each build.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-22 12:42:52 +02:00
jinhojang6 094cf61915
Update Spanish Playstore title and description
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-13 14:14:08 +02:00
Jakub Sokołowski 7c0488372d
upgrade Gems, Fastlane from 2.146.1 to 2.154.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-08-04 09:25:52 +02:00
Jakub Sokołowski 84286782f6
bump status-react-jenkins to 1.2.0
This updates a bunch of things in the Jenkins logic.
For details of that see:
https://github.com/status-im/status-react-jenkins/pull/12

It grew out of the changes I made to make PR builds available in Desktop client:
https://github.com/status-im/nim-status-client/pull/507

Changes:
- Bump `status-react-jenkins` library to newer version, probably `1.2.0`
- Update use of `utils.pkgFilename()` in `ci/Jenkinsfile.combined`
- Make all iOS builds go into the same folder: `status-ios`
- Drop e2e build type, infer it from Android ABIs set to `x86` only
- Simplify logic in `nix/mobile/android/release.nix.`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-07-13 12:13:47 +02:00
Gheorghe Pinzaru d916751160
Add PR Scheme for iOs build
Build PR Scheme in PR build

use named parameters, use pr_build boolean

Signed-off-by: Jakub Sokołowski <jakub@status.im>

Enable capabilities

Signed-off-by: Jakub Sokołowski <jakub@status.im>

Add custom app icon

Remove user defined profile

Add PR scheme

Explicit provide provisioning profiles

Fix pr schema

Bump jenkins

Pod bump

Describe pr_build argument

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-06-29 16:16:35 +03:00
Jakub Sokołowski a8fa78dad3
fix names of translations for Play Store metadata
Source for names:
https://stackoverflow.com/questions/7973023/what-is-the-list-of-supported-languages-locales-on-android

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-06-02 20:03:38 +02:00
Jakub Sokołowski 22d0fed3fc
fix android icon.png to use RGBA instead of indexed colors
This caused an error on Play Store metadata update:
Google Api Error: invalidIconImage: Invalid icon image.

And the issue was using color space:
Indexed color (77 colors)

Instead of:
RGBA

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-06-02 19:22:14 +02:00
Serhy c68f734b98
Fixed typo
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2020-05-21 15:32:11 +02:00
jinhojang6 c9fc00bfd8
Add Play Store translations 2020-05-21 15:32:03 +02:00
André Medeiros 41bba3b2c8
Update play store icon and feature graphic (#10592) 2020-05-07 11:49:55 -04:00
Jakub Sokołowski 3ae5f87be3
ci: add Jenkinsfile for updating Play Store metadata
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-05 19:40:45 +02:00
Jakub Sokołowski c6b1217437
fastlane: upgrade 2.146.0 > 2.146.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-05 19:40:36 +02:00
André Medeiros 44b77eea89
Fix Google Play store listing (#10564) 2020-05-04 19:55:49 -04:00
Jakub Sokołowski eb194acce6
upgrade fastlane and plugins
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-22 11:57:29 +02:00
Jakub Sokołowski 1ea49a80fc
rename get.status.im to join.status.im
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-11 18:09:21 +01:00
Jakub Sokołowski 128f44f58b
fastlane: disable oldest_build_allowed for TestFlight clean
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-29 15:58:17 +01:00
Jakub Sokołowski 0c93451188
fastlane: upgrade fastlane-plugin-diawi to 1.4.0
before we used the same version but from our own fork

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-23 10:06:56 +01:00
Jakub Sokołowski a02a0429c3
fastlane: use our fork of fastlane-plugin-diawi
With it we can set last_hope_attempts_backoff to 5 seconds.
This should fix issues with upload wait timing out.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-21 21:18:16 +01:00
Jakub Sokołowski 08247391ad
disable waiting for iOS build processing on upload
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-20 23:27:18 +01:00
Jakub Sokołowski 8d85995b33 upgrade fastlane: 2.133.0 > 2.139.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-08 16:22:55 +01:00
Pedro Pombeiro 7e6caf03ad
nix: Use mkFilter in local status-go source
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-11-26 18:34:46 +01:00
Jakub Sokołowski b32dd113f6
nix: upgrade nixpkgs
Also:
- upgrade Go: 1.12 > 1.13
- upgrade Android SDK: 28.0.3 > 29.0.2
- nix: stop using system Fastlane for iOS builds
- nix: include CocoaPods in shell for iOS
- nix: concatenate shellHooks correctly
- fix gomobile status-go build by setting GO111MODULE=off
- fix gradle accepting empty STATUS_GO_SRC_OVERRIDE value
- don't use a pure shell for uploadToSauceLabs()

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-26 16:30:41 +01:00
Jakub Sokołowski 684630e022
don't load Pluginfile twice
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-26 16:30:21 +01:00
Jakub Sokołowski b8d3ef3aa5
combined node package upgrade prs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-10-17 12:43:17 +02:00
snyk-bot a7c9329df5
fix: fastlane/Gemfile & fastlane/Gemfile.lock to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-RUBY-RUBYZIP-469156

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-09-30 14:15:35 +02:00
Jakub Sokołowski 973623f4c8
build multiple APKs for different architectures
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-09-30 13:59:42 +02:00
Pedro Pombeiro 97e9f0daa1
nix: Update fastlane Gemset
Signed-off-by: yenda <eric@status.im>
2019-09-23 14:05:57 +02:00
Pedro Pombeiro 51dd7af5f8
Use modern build system for iOS 2019-09-23 09:12:22 +02:00
Jakub Sokołowski 82576cd050
upgrade fastlane: 2.128.0 > 2.130.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: yenda <eric@status.im>
2019-09-05 10:56:36 +02:00
snyk-test f464269263
fix: fastlane/Gemfile & fastlane/Gemfile.lock to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-RUBY-MINIMAGICK-451567

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-08-05 09:44:51 -04:00
Pedro Pombeiro acf6278383
nix: Use nix/build.sh for release-android make target
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-26 16:01:06 -04:00
Pedro Pombeiro f6527f014e
nix: Improve some expressions 2019-07-19 20:59:16 +02:00
Jakub Sokołowski 158f9b4938
fix release builds by renaming .env.prod to .env.release
This way the nix expression in nix/mobile/android/targets/release-android.nix will not fail.
And the naming of build types and `.env.${type}` files will be more consistent.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-17 10:39:53 -04:00
Pedro Pombeiro a7fd659d84
nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
Jakub Sokołowski 33840b7b84
use nix shell for running fastlane ios clean
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-06-18 10:09:33 -04:00
Jakub Sokołowski c26572653f
upgrade fastlane: 2.121.1 > 2.125.2
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-06-15 09:56:18 -04:00
Serhy c6a389b75b
Update Play Store phone screenshots
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-05-29 17:18:36 +02:00
Serhy 3799df77cc
Remove LightClient note from PlayStore
Signed-off-by: Serhy <sergii@status.im>
2019-05-21 12:38:55 +03:00
Jakub Sokołowski 0e8e5a51ba
refactor nix_sh to give it optional Map arguments
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-05-14 16:06:16 +02:00
Pedro Pombeiro cc009a3c2c
nix: Minor cleanup of fastlane expression
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-05-09 18:33:40 +02:00
Pedro Pombeiro 9d1e266145
Use fastlane Nix package instead of ruby/bundler for Android
- iOS still has issues with native Ruby dependencies

Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-05-06 11:57:12 +02:00
Igor Mandrigin aea761f314
workaround issue with building iOS release builds
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-04-26 16:04:29 +02:00
Jakub Sokołowski 3774a0845a
add diawi upload retries
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-26 10:29:12 +02:00
Jakub Sokołowski 1d00e9bb3d
change App ID for PRs on Android to avoid replacing release
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-10 11:49:40 +02:00
Pedro Pombeiro 65e6e80349
Create Nix package for building status-go 2019-04-09 12:44:39 +02:00
Jakub Sokołowski c2fc510c8e
use auto@status.im Apple account for signing app
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-05 10:48:17 +02:00