Splited the test report job for forks
Refactored fastlane for both ios and android Refactored github workflows (cherry picked from commit c3ff622af05f87e16ae1cadec0c95c87cca3d763)
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
on:
|
on:
|
||||||
workflow_call:
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- ".github/**"
|
||||||
|
- "docs"
|
||||||
|
- "Jenkinsfile"
|
||||||
|
- "**/*.md"
|
||||||
|
|
||||||
name: Analyze and test
|
name: Analyze and test
|
||||||
|
|
||||||
@@ -56,22 +61,3 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: test-reports
|
name: test-reports
|
||||||
path: test-report*.json
|
path: test-report*.json
|
||||||
|
|
||||||
report:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: success() || failure() # Always upload report
|
|
||||||
needs:
|
|
||||||
- analyze-test
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: test-reports
|
|
||||||
|
|
||||||
- uses: dorny/test-reporter@v1
|
|
||||||
with:
|
|
||||||
name: Flutter Tests
|
|
||||||
path: "*.json"
|
|
||||||
reporter: flutter-json
|
|
||||||
only-summary: "true"
|
|
||||||
|
|||||||
@@ -1,23 +1,11 @@
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- ".github/**"
|
|
||||||
- "docs"
|
|
||||||
- "Jenkinsfile"
|
|
||||||
- "**/*.md"
|
|
||||||
|
|
||||||
name: CI
|
name: Build dev binaries
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
analyze-test:
|
|
||||||
name: Analyze and test
|
|
||||||
uses: ./.github/workflows/analyze-test.yaml
|
|
||||||
|
|
||||||
build-app:
|
build-app:
|
||||||
name: Build app
|
name: Build app
|
||||||
needs:
|
|
||||||
- analyze-test
|
|
||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@@ -41,21 +29,18 @@ jobs:
|
|||||||
cache-key: deps-${{ hashFiles('**/pubspec.lock') }} # optional, change this to force refresh cache
|
cache-key: deps-${{ hashFiles('**/pubspec.lock') }} # optional, change this to force refresh cache
|
||||||
cache-path: ${{ runner.tool_cache }}/flutter # optional, change this to specify the cache path
|
cache-path: ${{ runner.tool_cache }}/flutter # optional, change this to specify the cache path
|
||||||
|
|
||||||
|
- name: Setup Fastlane
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: "ruby"
|
||||||
|
bundler-cache: true
|
||||||
|
working-directory: ${{ matrix.os }}
|
||||||
|
|
||||||
- name: Setup Firebase env
|
- name: Setup Firebase env
|
||||||
env:
|
env:
|
||||||
FIREBASE_ENV: ${{ secrets.FIREBASE_ENV }}
|
FIREBASE_ENV: ${{ secrets.FIREBASE_ENV }}
|
||||||
run: echo "$FIREBASE_ENV" > ./configurations/env.fcm
|
run: echo "$FIREBASE_ENV" > ./configurations/env.fcm
|
||||||
|
|
||||||
- name: Setup Android environment
|
|
||||||
if: matrix.os == 'android'
|
|
||||||
env:
|
|
||||||
PLAY_STORE_UPLOAD_KEY_BASE64: ${{ secrets.PLAY_STORE_UPLOAD_KEY_BASE64 }}
|
|
||||||
PLAY_STORE_KEY_INFO_BASE64: ${{ secrets.PLAY_STORE_KEY_INFO_BASE64 }}
|
|
||||||
run: |
|
|
||||||
echo "$PLAY_STORE_UPLOAD_KEY_BASE64" | base64 --decode > app/keystore.jks
|
|
||||||
echo "$PLAY_STORE_KEY_INFO_BASE64" | base64 --decode > key.properties
|
|
||||||
working-directory: ${{ matrix.os }}
|
|
||||||
|
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
if: matrix.os == 'android'
|
if: matrix.os == 'android'
|
||||||
uses: actions/setup-java@v3
|
uses: actions/setup-java@v3
|
||||||
@@ -65,37 +50,25 @@ jobs:
|
|||||||
|
|
||||||
- name: Setup iOS environment
|
- name: Setup iOS environment
|
||||||
if: matrix.os == 'ios'
|
if: matrix.os == 'ios'
|
||||||
env:
|
|
||||||
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
|
|
||||||
PROVISION_PROFILE_BASE64: ${{ secrets.PROVISION_PROFILE_BASE64 }}
|
|
||||||
SHAREEXT_PROVISION_PROFILE_BASE64: ${{ secrets.SHAREEXT_PROVISION_PROFILE_BASE64 }}
|
|
||||||
run: |
|
run: |
|
||||||
echo -n "$CERTIFICATE_BASE64" | base64 --decode --output cert.p12
|
flutter pub get
|
||||||
echo -n "$PROVISION_PROFILE_BASE64" | base64 --decode --output buildpp.mobileprovision
|
pod install && pod update
|
||||||
echo -n "$SHAREEXT_PROVISION_PROFILE_BASE64" | base64 --decode --output shareextpp.mobileprovision
|
|
||||||
flutter pub get && pod install
|
|
||||||
working-directory: ${{ matrix.os }}
|
working-directory: ${{ matrix.os }}
|
||||||
|
|
||||||
- name: Setup Fastlane
|
|
||||||
uses: ruby/setup-ruby@v1
|
|
||||||
with:
|
|
||||||
ruby-version: "ruby"
|
|
||||||
bundler-cache: true
|
|
||||||
working-directory: ${{ matrix.os }}
|
|
||||||
|
|
||||||
- name: Run prebuild
|
- name: Run prebuild
|
||||||
run: bash prebuild.sh
|
run: bash prebuild.sh
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
env:
|
env:
|
||||||
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
|
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
|
||||||
|
APPLE_CERTIFICATES_SSH_KEY: ${{ secrets.APPLE_CERTIFICATES_SSH_KEY }}
|
||||||
run: bundle exec fastlane dev
|
run: bundle exec fastlane dev
|
||||||
working-directory: ${{ matrix.os }}
|
working-directory: ${{ matrix.os }}
|
||||||
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: tmail-dev-pr-${{ github.event.pull_request.number }}
|
name: tmail-dev
|
||||||
path: |
|
path: |
|
||||||
build/app/outputs/flutter-apk/app-release.apk
|
build/app/outputs/flutter-apk/app-debug.apk
|
||||||
ios/Runner.ipa
|
ios/Runner.ipa
|
||||||
@@ -6,15 +6,9 @@ on:
|
|||||||
name: Release
|
name: Release
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
analyze-test:
|
|
||||||
name: Analyze and test
|
|
||||||
uses: ./.github/workflows/analyze-test.yaml
|
|
||||||
|
|
||||||
release:
|
release:
|
||||||
name: Release
|
name: Release
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
needs:
|
|
||||||
- analyze-test
|
|
||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@@ -45,6 +39,20 @@ jobs:
|
|||||||
FIREBASE_ENV: ${{ secrets.FIREBASE_ENV }}
|
FIREBASE_ENV: ${{ secrets.FIREBASE_ENV }}
|
||||||
run: echo "$FIREBASE_ENV" > ./configurations/env.fcm
|
run: echo "$FIREBASE_ENV" > ./configurations/env.fcm
|
||||||
|
|
||||||
|
- name: Setup Fastlane
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: "ruby"
|
||||||
|
bundler-cache: true
|
||||||
|
working-directory: ${{ matrix.os }}
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
if: matrix.os == 'android'
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
distribution: "temurin"
|
||||||
|
java-version: "11"
|
||||||
|
|
||||||
- name: Setup Android environment
|
- name: Setup Android environment
|
||||||
if: matrix.os == 'android'
|
if: matrix.os == 'android'
|
||||||
env:
|
env:
|
||||||
@@ -55,44 +63,23 @@ jobs:
|
|||||||
echo "$PLAY_STORE_KEY_INFO_BASE64" | base64 --decode > key.properties
|
echo "$PLAY_STORE_KEY_INFO_BASE64" | base64 --decode > key.properties
|
||||||
working-directory: ${{ matrix.os }}
|
working-directory: ${{ matrix.os }}
|
||||||
|
|
||||||
- name: Setup Java
|
|
||||||
if: matrix.os == 'android'
|
|
||||||
uses: actions/setup-java@v3
|
|
||||||
with:
|
|
||||||
distribution: "temurin"
|
|
||||||
java-version: "11"
|
|
||||||
|
|
||||||
- name: Setup iOS environment
|
- name: Setup iOS environment
|
||||||
if: matrix.os == 'ios'
|
if: matrix.os == 'ios'
|
||||||
env:
|
|
||||||
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
|
|
||||||
PROVISION_PROFILE_BASE64: ${{ secrets.PROVISION_PROFILE_BASE64 }}
|
|
||||||
SHAREEXT_PROVISION_PROFILE_BASE64: ${{ secrets.SHAREEXT_PROVISION_PROFILE_BASE64 }}
|
|
||||||
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
|
|
||||||
run: |
|
run: |
|
||||||
echo -n "$CERTIFICATE_BASE64" | base64 --decode --output cert.p12
|
flutter pub get
|
||||||
echo -n "$PROVISION_PROFILE_BASE64" | base64 --decode --output buildpp.mobileprovision
|
pod install && pod update
|
||||||
echo -n "$SHAREEXT_PROVISION_PROFILE_BASE64" | base64 --decode --output shareextpp.mobileprovision
|
|
||||||
echo -n "$APPLE_API_KEY_BASE64" | base64 --decode --output apiKey.p8
|
|
||||||
flutter pub get && pod install
|
|
||||||
working-directory: ${{ matrix.os }}
|
working-directory: ${{ matrix.os }}
|
||||||
|
|
||||||
- name: Setup Fastlane
|
|
||||||
uses: ruby/setup-ruby@v1
|
|
||||||
with:
|
|
||||||
ruby-version: "ruby"
|
|
||||||
bundler-cache: true
|
|
||||||
working-directory: ${{ matrix.os }}
|
|
||||||
|
|
||||||
- name: Run prebuild
|
- name: Run prebuild
|
||||||
run: bash prebuild.sh
|
run: bash prebuild.sh
|
||||||
|
|
||||||
- name: Build and deploy
|
- name: Build and deploy
|
||||||
env:
|
env:
|
||||||
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
|
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
|
||||||
FASTLANE_USER: ${{ secrets.APPLE_ID }}
|
APPLE_CERTIFICATES_SSH_KEY: ${{ secrets.APPLE_CERTIFICATES_SSH_KEY }}
|
||||||
PLAY_STORE_CONFIG_JSON: ${{ secrets.PLAY_STORE_CONFIG_JSON }}
|
PLAY_STORE_CONFIG_JSON: ${{ secrets.PLAY_STORE_CONFIG_JSON }}
|
||||||
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
|
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
|
||||||
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
|
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
|
||||||
|
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
|
||||||
run: bundle exec fastlane release
|
run: bundle exec fastlane release
|
||||||
working-directory: ${{ matrix.os }}
|
working-directory: ${{ matrix.os }}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows:
|
||||||
|
- "Analyze and test"
|
||||||
|
types:
|
||||||
|
- completed
|
||||||
|
|
||||||
|
name: Test Reports
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
reports:
|
||||||
|
name: Upload test reports
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: dorny/test-reporter@v1
|
||||||
|
with:
|
||||||
|
artifact: test-reports
|
||||||
|
name: Flutter Tests
|
||||||
|
path: "*.json"
|
||||||
|
reporter: flutter-json
|
||||||
|
only-summary: "true"
|
||||||
@@ -20,7 +20,7 @@ default_platform(:android)
|
|||||||
platform :android do
|
platform :android do
|
||||||
desc "Build development version"
|
desc "Build development version"
|
||||||
lane :dev do
|
lane :dev do
|
||||||
sh "flutter build apk --verbose --release --dart-define=SERVER_URL=$SERVER_URL"
|
sh "flutter build apk --verbose --debug --dart-define=SERVER_URL=$SERVER_URL"
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Build and deploy release version"
|
desc "Build and deploy release version"
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
fastlane documentation
|
||||||
|
----
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
Make sure you have the latest version of the Xcode command line tools installed:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
xcode-select --install
|
||||||
|
```
|
||||||
|
|
||||||
|
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
|
||||||
|
|
||||||
|
# Available Actions
|
||||||
|
|
||||||
|
## Android
|
||||||
|
|
||||||
|
### android dev
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane android dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Build development version
|
||||||
|
|
||||||
|
### android release
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane android release
|
||||||
|
```
|
||||||
|
|
||||||
|
Build and deploy release version
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
|
||||||
|
|
||||||
|
More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools).
|
||||||
|
|
||||||
|
The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
|
||||||
@@ -468,6 +468,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
DEVELOPMENT_TEAM = KUT463DS29;
|
DEVELOPMENT_TEAM = KUT463DS29;
|
||||||
@@ -603,6 +604,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
DEVELOPMENT_TEAM = KUT463DS29;
|
DEVELOPMENT_TEAM = KUT463DS29;
|
||||||
@@ -632,9 +634,12 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Distribution";
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
DEVELOPMENT_TEAM = KUT463DS29;
|
DEVELOPMENT_TEAM = KUT463DS29;
|
||||||
|
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = KUT463DS29;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
@@ -644,7 +649,8 @@
|
|||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.linagora.ios.teammail;
|
PRODUCT_BUNDLE_IDENTIFIER = com.linagora.ios.teammail;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = tmail.development.profile;
|
PROVISIONING_PROFILE_SPECIFIER = tmail.distribution.profile;
|
||||||
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = tmail.distribution.profile;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
@@ -661,9 +667,11 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_ENTITLEMENTS = TeamMailShareExtension/TeamMailShareExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = TeamMailShareExtension/TeamMailShareExtension.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = KUT463DS29;
|
DEVELOPMENT_TEAM = KUT463DS29;
|
||||||
|
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = KUT463DS29;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = TeamMailShareExtension/Info.plist;
|
INFOPLIST_FILE = TeamMailShareExtension/Info.plist;
|
||||||
@@ -680,7 +688,8 @@
|
|||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.linagora.ios.teammail.TeamMailShareExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = com.linagora.ios.teammail.TeamMailShareExtension;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = tmail.ext.ios.development.provisioning.profile;
|
PROVISIONING_PROFILE_SPECIFIER = tmail.share.ext.development.profile;
|
||||||
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = tmail.share.ext.development.profile;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
@@ -700,9 +709,12 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_ENTITLEMENTS = TeamMailShareExtension/TeamMailShareExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = TeamMailShareExtension/TeamMailShareExtension.entitlements;
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Distribution";
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = KUT463DS29;
|
DEVELOPMENT_TEAM = KUT463DS29;
|
||||||
|
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = KUT463DS29;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = TeamMailShareExtension/Info.plist;
|
INFOPLIST_FILE = TeamMailShareExtension/Info.plist;
|
||||||
@@ -718,7 +730,8 @@
|
|||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.linagora.ios.teammail.TeamMailShareExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = com.linagora.ios.teammail.TeamMailShareExtension;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = tmail.ext.ios.development.provisioning.profile;
|
PROVISIONING_PROFILE_SPECIFIER = tmail.share.ext.distribution.profile;
|
||||||
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = tmail.share.ext.distribution.profile;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@@ -736,6 +749,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_ENTITLEMENTS = TeamMailShareExtension/TeamMailShareExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = TeamMailShareExtension/TeamMailShareExtension.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = KUT463DS29;
|
DEVELOPMENT_TEAM = KUT463DS29;
|
||||||
@@ -754,7 +768,7 @@
|
|||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.linagora.ios.teammail.TeamMailShareExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = com.linagora.ios.teammail.TeamMailShareExtension;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = tmail.ext.ios.development.provisioning.profile;
|
PROVISIONING_PROFILE_SPECIFIER = tmail.share.ext.development.profile;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
|||||||
+12
-58
@@ -11,53 +11,24 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# Uncomment the line if you want fastlane to automatically update itself
|
# Uncomment the line if you want fastlane to automatically update itself
|
||||||
# update_fastlane
|
update_fastlane
|
||||||
|
|
||||||
opt_out_usage
|
opt_out_usage
|
||||||
default_platform(:ios)
|
default_platform(:ios)
|
||||||
setup_ci if ENV['CI']
|
setup_ci if ENV['CI']
|
||||||
|
|
||||||
# Import signing certificate
|
|
||||||
import_certificate(
|
|
||||||
certificate_path: "cert.p12",
|
|
||||||
certificate_password: ENV["CERTIFICATE_PASSWORD"],
|
|
||||||
keychain_name: ENV["MATCH_KEYCHAIN_NAME"]
|
|
||||||
)
|
|
||||||
|
|
||||||
# 2 provisioning profiles, 1 for the main app and 1 for the share extension
|
|
||||||
install_provisioning_profile(path: "buildpp.mobileprovision")
|
|
||||||
install_provisioning_profile(path: "shareextpp.mobileprovision")
|
|
||||||
|
|
||||||
|
|
||||||
platform :ios do
|
platform :ios do
|
||||||
desc "Build development version"
|
desc "Build development version"
|
||||||
lane :dev do
|
lane :dev do
|
||||||
update_code_signing_settings(
|
sync_code_signing(
|
||||||
use_automatic_signing: false,
|
type: "development",
|
||||||
path: "Runner.xcodeproj",
|
git_private_key: ENV["APPLE_CERTIFICATES_SSH_KEY"]
|
||||||
code_sign_identity: "Apple Development"
|
|
||||||
)
|
|
||||||
# Update the provisioning profile for both the main app and extension
|
|
||||||
update_project_provisioning(
|
|
||||||
xcodeproj: "Runner.xcodeproj",
|
|
||||||
profile: "./buildpp.mobileprovision",
|
|
||||||
target_filter: ".*Runner.*"
|
|
||||||
)
|
|
||||||
update_project_provisioning(
|
|
||||||
xcodeproj: "Runner.xcodeproj",
|
|
||||||
profile: "./shareextpp.mobileprovision",
|
|
||||||
target_filter: ".*TeamMailShareExtension.*"
|
|
||||||
)
|
)
|
||||||
build_app(
|
build_app(
|
||||||
scheme: "Runner",
|
scheme: "Runner",
|
||||||
|
configuration: "Debug",
|
||||||
workspace: "Runner.xcworkspace",
|
workspace: "Runner.xcworkspace",
|
||||||
export_method: "development",
|
export_method: "development",
|
||||||
export_options: {
|
|
||||||
provisioningProfiles: {
|
|
||||||
"com.linagora.ios.teammail": "tmail.development.profile",
|
|
||||||
"com.linagora.ios.teammail.TeamMailShareExtension": "tmail.share.ext.development.profile"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -67,7 +38,11 @@ platform :ios do
|
|||||||
app_store_connect_api_key(
|
app_store_connect_api_key(
|
||||||
key_id: ENV["APPLE_KEY_ID"],
|
key_id: ENV["APPLE_KEY_ID"],
|
||||||
issuer_id: ENV["APPLE_ISSUER_ID"],
|
issuer_id: ENV["APPLE_ISSUER_ID"],
|
||||||
key_filepath: "./apiKey.p8"
|
key_content: ENV["APPLE_KEY_CONTENT"]
|
||||||
|
)
|
||||||
|
sync_code_signing(
|
||||||
|
type: "appstore",
|
||||||
|
git_private_key: ENV["APPLE_CERTIFICATES_SSH_KEY"]
|
||||||
)
|
)
|
||||||
increment_build_number(
|
increment_build_number(
|
||||||
build_number: latest_testflight_build_number + 1
|
build_number: latest_testflight_build_number + 1
|
||||||
@@ -75,32 +50,11 @@ platform :ios do
|
|||||||
increment_version_number(
|
increment_version_number(
|
||||||
version_number: last_git_tag.gsub("v", "")
|
version_number: last_git_tag.gsub("v", "")
|
||||||
)
|
)
|
||||||
update_code_signing_settings(
|
|
||||||
use_automatic_signing: false,
|
|
||||||
path: "Runner.xcodeproj",
|
|
||||||
code_sign_identity: "Apple Distribution"
|
|
||||||
)
|
|
||||||
# Update the provisioning profile for both the main app and extension
|
|
||||||
update_project_provisioning(
|
|
||||||
xcodeproj: "Runner.xcodeproj",
|
|
||||||
profile: "./buildpp.mobileprovision",
|
|
||||||
target_filter: ".*Runner.*"
|
|
||||||
)
|
|
||||||
update_project_provisioning(
|
|
||||||
xcodeproj: "Runner.xcodeproj",
|
|
||||||
profile: "./shareextpp.mobileprovision",
|
|
||||||
target_filter: ".*TeamMailShareExtension.*"
|
|
||||||
)
|
|
||||||
build_app(
|
build_app(
|
||||||
scheme: "Runner",
|
scheme: "Runner",
|
||||||
|
configuration: "Release",
|
||||||
workspace: "Runner.xcworkspace",
|
workspace: "Runner.xcworkspace",
|
||||||
export_method: "app-store",
|
export_method: "app-store"
|
||||||
export_options: {
|
|
||||||
provisioningProfiles: {
|
|
||||||
"com.linagora.ios.teammail": "tmail.distribution.profile",
|
|
||||||
"com.linagora.ios.teammail.TeamMailShareExtension": "tmail.share.ext.distribution.profile"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
upload_to_testflight(
|
upload_to_testflight(
|
||||||
skip_waiting_for_build_processing: true,
|
skip_waiting_for_build_processing: true,
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
git_url("git@github.com:linagora/apple-certificates.git")
|
||||||
|
|
||||||
|
storage_mode("git")
|
||||||
|
|
||||||
|
type("development") # The default type, can be: appstore, adhoc, enterprise or development
|
||||||
|
|
||||||
|
app_identifier(["com.linagora.ios.teammail", "com.linagora.ios.teammail.TeamMailShareExtension"])
|
||||||
|
# username("user@fastlane.tools") # Your Apple Developer Portal username
|
||||||
|
|
||||||
|
# For all available options run `fastlane match --help`
|
||||||
|
# Remove the # in the beginning of the line to enable the other options
|
||||||
|
|
||||||
|
# The docs are available on https://docs.fastlane.tools/actions/match
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
fastlane documentation
|
||||||
|
----
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
Make sure you have the latest version of the Xcode command line tools installed:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
xcode-select --install
|
||||||
|
```
|
||||||
|
|
||||||
|
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
|
||||||
|
|
||||||
|
# Available Actions
|
||||||
|
|
||||||
|
## iOS
|
||||||
|
|
||||||
|
### ios dev
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane ios dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Build development version
|
||||||
|
|
||||||
|
### ios release
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane ios release
|
||||||
|
```
|
||||||
|
|
||||||
|
Build and deploy release version
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
|
||||||
|
|
||||||
|
More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools).
|
||||||
|
|
||||||
|
The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
|
||||||
+3
-3
@@ -5,11 +5,11 @@ set -e
|
|||||||
set -x
|
set -x
|
||||||
|
|
||||||
cd core
|
cd core
|
||||||
#flutter pub get
|
flutter pub get
|
||||||
|
|
||||||
## Install necessary pods
|
## Install necessary pods
|
||||||
#cd ../ios
|
# cd ../ios
|
||||||
#flutter pub get && pod install
|
# flutter pub get && pod install
|
||||||
|
|
||||||
cd ../model
|
cd ../model
|
||||||
flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs
|
flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs
|
||||||
|
|||||||
Reference in New Issue
Block a user