Skip to content

Commit

Permalink
Merge tag '4.8.1/8882' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
xavigil committed Sep 29, 2023
2 parents 61a2802 + 2997cfc commit 3413472
Show file tree
Hide file tree
Showing 4,377 changed files with 132,898 additions and 152,848 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ ProtonMail/ProtonMail.xcodeproj
ProtonMail/ProtonMail.xcworkspace

bundler-cache
ProtonMail/ProtonMail/Supporting Files/Settings.bundle/Acknowledgements.latest_result.txt
ProtonMail/ProtonMail/Supporting Files/Settings.bundle/Acknowledgements*
21 changes: 21 additions & 0 deletions .gitlab-ci.d/i18n.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
include:
- project: "translations/generator"
ref: master
file:
- "/jobs/sync-crowdin.gitlab-ci.yml"
- "/jobs/commit-locales.gitlab-ci.yml"

# This job grabs translations from I18N_SYNC_BRANCH and sends them to Crowdin
i18n-sync-crowdin:
variables:
I18N_SYNC_CROWDIN_PROJECT: "apple-mail-v4"
I18N_SYNC_BRANCH: "develop"
extends: .i18n-sync-crowdin-shared-apple

# This job creates the MR with updated translations in our repo
i18n-commit-locales:
variables:
I18N_COMMIT_CROWDIN_PROJECT: "apple-mail-v4"
I18N_COMMIT_BRANCH_PUSH: "develop"
I18N_COMMIT_BRANCH_ALLOWED: "develop"
extends: .i18n-commit-locales-shared-apple2
105 changes: 49 additions & 56 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,29 @@ stages:

.setup_basic_tools: &setup_basic_tools
- brew bundle --file="$CI_PROJECT_DIR/ProtonMail/Brewfile" --no-upgrade
- mint bootstrap --link
- mint bootstrap

.setup_ruby: &setup_ruby
- cd ProtonMail
- bundle config --local build.ffi -- --enable-libffi-alloc
- bundle install
- cd ..

.setup_project: &setup_project
- *setup_basic_tools
- *setup_ruby

# Clean up TestData folder and git module information to always fetch latest TestData state
- rm -rf .git/modules/ProtonMail/ProtonMailUITests/TestData
- rm -rf ProtonMail/ProtonMailUITests/TestData

# TEST_DATA_URL keeps the link to TestData https url
- git config --global url."$TEST_DATA_URL".insteadOf "testdata-repo:"

# Use --force option to override previously added TestData path
- git submodule add --force testdata-repo:tpe/TestData.git ProtonMail/ProtonMailUITests/TestData
- git submodule init
- git submodule update --init --recursive
- git submodule update --init --recursive --force

- defaults write com.apple.iphonesimulator ConnectHardwareKeyboard 0 # Fixed UI tests failing on secure field

Expand Down Expand Up @@ -68,13 +76,7 @@ stages:

# --- includes ---
include:
- project: "translations/generator"
ref: master
file: "/jobs/sync-crowdin.gitlab-ci.yml"

- project: "translations/generator"
ref: master
file: "/jobs/commit-locales.gitlab-ci.yml"
- local: ".gitlab-ci.d/i18n.yml"

- project: 'proton/devops/atlas-deploy'
file: '/scenarios/pipeline-env.yml'
Expand All @@ -96,34 +98,34 @@ default:

linting:
stage: linting
before_script:
- *setup_basic_tools
except:
- schedules
script:
- pip3 install -r Scripts/requirements.txt
- python3 Scripts/linkAvailabilityCheck.py

- cd ProtonMail
- xcodeGen/swiftlint.sh
tags:
- iOS_ARM_TAIPEI
- iOS_GENERAL

build:debug:for-testing:
stage: build
allow_failure: false
interruptible: true
artifacts:
untracked: true
when: on_success
paths:
- test_output/
- test_output/Build/Products/Debug-iphonesimulator/ProtonMail.app
- test_output/Build/Products/Debug-iphonesimulator/ProtonMailUITests-Runner.app
- build_job_pwd.txt
expire_in: 1 day
before_script:
- *setup_project
script:
- cd ProtonMail
- bundle exec fastlane build_for_testing
# record the current directory so that it can be used by the test jobs to calculate code coverage if they run on a different runner
- echo $PWD >> ../build_job_pwd.txt
tags:
- iOS_BUILD
- iOS_GENERAL

test:unit:
stage: test
Expand All @@ -142,15 +144,15 @@ test:unit:
coverage_format: cobertura
path: test_output/slatherOutput/cobertura.xml
paths:
- test_output/Build/Products/Debug-iphonesimulator/ProtonMail.app
- test_output/slatherOutput/
before_script:
- *setup_project
script:
- cd ProtonMail
- bundle exec fastlane unit_test
- ../Scripts/generate_code_coverage_report.sh
tags:
- iOS_ARM_TAIPEI
- iOS_GENERAL

test:ui:smoke:
dependencies:
Expand Down Expand Up @@ -183,13 +185,14 @@ test:ui:smoke:
script:
- echo DYNAMIC_DOMAIN="${DYNAMIC_DOMAIN}"
- cd ProtonMail
- bundle install
- bundle exec fastlane ui_test testplan:"SmokeTests" concurrent_workers:"2"
- ../Scripts/generate_code_coverage_report.sh
tags:
- iOS_UITEST
allow_failure: true
- iOS_GENERAL

report:slack:smoke:
dependencies:
- test:ui:smoke
image: $CI_REGISTRY/tpe/test-scripts
stage: report
rules:
Expand All @@ -206,6 +209,8 @@ report:slack:smoke:
--job-name ui_tests_smoke
--slack-channel mail-ios-uitests
allow_failure: true
tags:
- small

test:ui:feature:
dependencies:
Expand All @@ -224,6 +229,7 @@ test:ui:feature:
junit: test_output/TestResults/report.xml
before_script:
- bash <(curl -s https://raw.githubusercontent.com/TitouanVanBelle/XCTestHTMLReport/master/install.sh) '2.0.0'
- *setup_project
script:
- cd ProtonMail
- bundle exec fastlane ui_test testplan:$TEST_PLAN concurrent_workers:$NUMBER_OF_DEVICES
Expand All @@ -246,13 +252,17 @@ test:ui:monkey:
expire_in: 10 days
reports:
junit: test_output/TestResults/report.xml
before_script:
- *setup_project
script:
- cd ProtonMail
- bundle exec fastlane ui_test testplan:MonkeyTests concurrent_workers:1
tags:
- iOS_UITEST

report:slack:feature:
dependencies:
- test:ui:feature
image: $CI_REGISTRY/tpe/test-scripts
stage: report
rules:
Expand All @@ -265,8 +275,12 @@ report:slack:feature:
--job-name $TEST_PLAN
--slack-channel mail-ios-uitests
allow_failure: true
tags:
- small

report:slack:monkey:
dependencies:
- test:ui:monkey
image: $CI_REGISTRY/tpe/test-scripts
stage: report
rules:
Expand All @@ -279,8 +293,12 @@ report:slack:monkey:
--job-name Mail-iOS-Monkey-tests
--slack-channel mail-ios-uitests
allow_failure: true
tags:
- small

report:testmo:feature:
dependencies:
- test:ui:feature
stage: report
extends: .testmo-upload
dependencies:
Expand All @@ -296,9 +314,11 @@ report:testmo:feature:
SOURCE: "ios"
RESULT_FOLDER: "./test_output/TestResults/*.xml"
allow_failure: true
tags:
- small

appetize:start:
dependencies: [test:unit]
dependencies: [build:debug:for-testing]
stage: distribute
environment:
name: review/$CI_COMMIT_REF_NAME
Expand All @@ -319,7 +339,7 @@ appetize:start:
reports:
dotenv: deploy.env
tags:
- iOS_ARM_TAIPEI
- iOS_GENERAL

appetize:stop:
stage: distribute
Expand All @@ -336,7 +356,7 @@ appetize:stop:
- curl -X DELETE --fail "https://[email protected]/v1/apps/$APPETIZE_PUBLIC_KEY"
tags:
# anything that has `curl` basically, apparently without this tag, it's possible to get a runner that doesn't have it
- iOS_ARM_TAIPEI
- iOS_GENERAL

# --- Build app and send to testflight
testflight:alpha:
Expand All @@ -361,7 +381,7 @@ testflight:alpha:
- *build_for_testflight
- ./fastlane/add_git_tag.sh
tags:
- iOS_BUILD
- iOS_RELEASE_BUILD

# TODO: this is almost identical to testflight:build:upload:, perhaps we can combine them
nightly-build-and-upload:
Expand All @@ -382,7 +402,7 @@ nightly-build-and-upload:
script:
- *build_for_testflight
tags:
- iOS_ARM_TAIPEI
- iOS_RELEASE_BUILD

# --- Build enterprise app for test and upload
firebase:qa:
Expand All @@ -404,31 +424,4 @@ firebase:qa:
- *enterprise_config_setting
- bundle exec fastlane ios enterprise usingTimeStamp:true
tags:
- iOS_ARM_TAIPEI

# --- Translation related tasks ---
i18n-sync-crowdin:
variables:
I18N_SYNC_CROWDIN_PROJECT: "apple-mail-v4"
I18N_SYNC_BRANCH: "develop"
extends: .i18n-sync-crowdin-shared-apple

i18n-commit-locales:
variables:
I18N_COMMIT_CROWDIN_PROJECT: "apple-mail-v4"
I18N_COMMIT_BRANCH_PUSH: "develop"
I18N_COMMIT_BRANCH_ALLOWED: "develop"
extends: .i18n-commit-locales-shared-apple2

commit-locales-release:
stage: i18n
extends: .i18n-commit-locales-shared-apple2
when: manual
variables:
I18N_COMMIT_BRANCH_PUSH: $CI_COMMIT_REF_NAME
I18N_COMMIT_CROWDIN_PROJECT: "apple-mail-v4"
only:
refs:
- branches
variables:
- $CI_COMMIT_REF_NAME == 'develop'
- iOS_GENERAL
2 changes: 1 addition & 1 deletion .locale-state.metadata
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"project": "apple-mail-v4",
"locale": "6b93de4cca49ed41cebb2c238df614cc17a4f47f"
"locale": "4ef8dbfd3f36e42878341baa5bc88aa55577ac14"
}
14 changes: 7 additions & 7 deletions Mintfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Asana/[email protected].10
krzysztofzablocki/Sourcery@1.9.1
mono0926/LicensePlist@3.23.4
realm/SwiftLint@0.49.1
Asana/[email protected].11
krzysztofzablocki/Sourcery@2.0.2
mono0926/LicensePlist@3.24.10
realm/SwiftLint@0.52.3
SwiftGen/[email protected]
tuist/xcbeautify@0.15.0
XCTestHTMLReport/XCTestHTMLReport@2.2.4
yonaskolb/xcodegen@2.32.0
tuist/xcbeautify@0.20.0
XCTestHTMLReport/XCTestHTMLReport@2.3.4
yonaskolb/xcodegen@2.35.0
5 changes: 0 additions & 5 deletions ProtonMail/.slather.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,3 @@ scheme: ProtonMailTests
build_directory: ../test_output
output_directory: ../test_output/slatherOutput
binary_basename: ProtonMail
ignore:
- "../test_output/Build/*"
- "../test_output/SourcePackages/*"
- "Pods/*"
- "Frameworks/*"
1 change: 1 addition & 0 deletions ProtonMail/Brewfile
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
brew "mint"
brew "xcodes"
5 changes: 3 additions & 2 deletions ProtonMail/Gemfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
source "https://rubygems.org"

gem "ffi"
gem "cocoapods"
gem "fastlane"
gem 'slather'
gem "xcode-install"
# a fork that handles absolute paths, needed for code coverage when building on two different machines
gem 'slather', git: 'https://github.com/Linquas/slather.git', ref: 'f5ac241'

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
Loading

0 comments on commit 3413472

Please sign in to comment.