Commit Graph

51 Commits

Author SHA1 Message Date
Jakub Sokołowski 45f966b21b
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:17:38 +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 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 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 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 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 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 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
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
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 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
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
Jakub Sokołowski 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
Jakub Sokołowski 0887a5299a
add github releases for mobile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-07 19:16:15 +01:00
Jakub Sokołowski 3253f0d847
add retries to SauceLabs upload
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-07 17:56:45 +01:00
Jakub Sokołowski 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
Jakub Sokołowski 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 6a7efb8339.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-13 10:12:51 +01:00
Jakub Sokołowski 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
Jakub Sokołowski 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
Jakub Sokołowski 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
Jakub Sokołowski 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
Jakub Sokołowski 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
Jakub Sokołowski 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
Igor Mandrigin 8f13d97b43
Use fastlane for iOS builds.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-14 10:43:53 +02:00
Roman Volosovskyi 74281a742f
upload release to iTC/PM 2018-04-05 20:34:41 +01:00
Roman Volosovskyi 7e4390ae2e
fix ios diawi ipa 2018-04-02 15:38:06 +01:00
Chd 37d0ea12ce
Remove inactive testflight users with jenkins
Signed-off-by: Anton Danchenko <ant.danchenko@gmail.com>
2018-03-28 14:09:56 +03:00