55 Commits

Author SHA1 Message Date
d4da8209cd
Revert "Remove fastlane metadata because no one use it"
Because as pointed out in this comment:
https://github.com/status-im/status-react/issues/12289#issuecomment-894008069
the lack of fastlane metadata makes F-Droid unable to find out things
like app description.

For more details see:
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/#fastlane-structure

This reverts commit 3469aca1d873a21491510dc4cd001eaf4910492a.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-12 19:28:20 +02:00
Volodymyr Kozieiev
3469aca1d8
Remove fastlane metadata because no one use it
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-11 12:09:42 +03:00
8890f25f96
ios: update gems, fastlane 2.164.0 to 2.179.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-09 10:23:37 +02:00
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
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
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
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
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
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
eb194acce6
upgrade fastlane and plugins
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-22 11:57:29 +02:00
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
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
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
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
51dd7af5f8
Use modern build system for iOS 2019-09-23 09:12:22 +02: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
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
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
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
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
3774a0845a
add diawi upload retries
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-26 10:29:12 +02:00
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
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
664162dd68
implement a custom retry for curl uploads
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-25 10:17:21 +01:00
0887a5299a
add github releases for mobile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-07 19:16:15 +01:00
3253f0d847
add retries to SauceLabs upload
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-07 17:56:45 +01:00
47f7dbac9d
upload ipa files to DO and Diawi on release too
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-07 12:00:08 +01:00
fd59e76603
ci: use legacy build system to avoid xcode 10.1 issues
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-03-01 09:16:03 +01:00
Igor Mandrigin
a34ec7ffbe
[temporary workaround] ci: don't check certificates in AppStoreConnect when building iOS
it will break adding new devices, but will help workaround the isssue
that we don't have 2FA installed on our Apple ID

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-28 13:58:44 +01:00
Igor Mandrigin
c0f5bd14de
Revert "change App ID for PRs on Android to avoid replacing release"
This reverts commit 6a7efb8339c1d0359dd0084779211bb871cdafff.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-13 10:12:51 +01:00
6a7efb8339
change App ID for PRs on Android to avoid replacing release
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-12 13:24:24 +01:00
Igor Mandrigin
8ba1b43349
Auto-update provisioning profiles when building PRs and nightlies on Jenkins.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-12-21 09:58:48 +01:00
a91a799eb5
add an e2e build target for ios
Squashe commits:
- add an e2e build target for ios
- add correct sdk and destination for simulator
- fixup! add correct sdk and destination for simulator
- drop xcarchive_path since we are not using it
- temporarily bind ios build to macos-03
- Detect installed simulator SDK and use it.
- Signed-off-by: Jakub Sokołowski <jakub@status.im>

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-05 18:43:11 +01:00
Andrea Maria Piana
6fc2139574
Remove slack from fastlane
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-30 11:15:25 +01:00
Chad
f567b59243
Add Fastlane action to upload Google Play metadata
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-11-16 09:56:30 +01:00
Igor Mandrigin
cd83c7da6d
Update release Jenkinsfiles to use cmn library.
Jenkinsfile.upload_release_android
Jenkinsfile.upload_release_ios

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-10-22 15:21:02 +02:00
754b8691f2
upgrade fastlane to 2.104.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-09-12 15:55:46 -04:00
Igor Mandrigin
e508d98316
Have a single notification about builds.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-29 14:22:22 +02:00
Eric Dvorsak
01b89cc8b1
[FIX 4031] update realm to fix vulnerability in dependencies
This commit updates the version of realm-js

Vulnerability has been fixed in realm-js after we notified them

Security vulnerability in hapijs / hoek 4.2.1 (package-lock.json)
https://nvd.nist.gov/vuln/detail/CVE-2018-3728

Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-28 17:05:27 +02:00
76e9501541
prepare Jenkinsfile.combined for PR builds
- add missing Lint step for mobile builds
- add missing upload steps for android
- prefix fastlane calls with bundle exec
- update slackSend to format for PR builds
- silence fastlane notifying slack, Jenkins already does

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-27 19:34:00 -04:00
5fb33cc461
split groovy scripts more, use job parameters
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-22 08:13:04 -04:00
d38f74fdfd
create Jenkinsfile.combined and extract build teps
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-21 10:27:12 -04:00
Chad
70bd6d0070
less noisy fastlane slack notifications
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-20 10:06:04 +02:00
Igor Mandrigin
31924f19ef
Workaround to support parallel iOS builds on the same Jenkins runner.
Realm download script didn't support it, so the simplest solution is
just to patch it and replace before iOS builds.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-15 16:50:01 +02:00
Igor Mandrigin
6e80321f6c
Fix diawi upload for nightlies.
BRANCH_NAME isn't set for nightly builds, fix fastlane script accordingly.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-15 14:40:33 +02:00
Igor Mandrigin
434046fe9d
Upload apk to Sauce Labs using fastlane.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-14 22:55:03 +02:00
Igor Mandrigin
c99fd733e6
Use fastlane for diawi, Slack & GitHub comments
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-14 18:05:32 +02:00
Igor Mandrigin
329c360a40
Less magic for fastlane parameters.
1. Don't require all the nodes to be provisioned manually to upload to Google play.

2. Don't require all the nodes to be provisioned manually to send to Slack channel.

Pass it as a credential from Jenkins instead.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-14 16:14:07 +02:00