-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
GitHub Actions: Upload iOS app error log on CI build failure (#1215)
- Loading branch information
1 parent
720b1fd
commit c3756e9
Showing
4 changed files
with
147 additions
and
119 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,25 +3,25 @@ name: CI | |
on: | ||
push: | ||
branches: | ||
- '**' | ||
- '!main' | ||
- '!develop' | ||
- '!hotfix/**' | ||
- '!release/**' | ||
- "**" | ||
- "!main" | ||
- "!develop" | ||
- "!hotfix/**" | ||
- "!release/**" | ||
workflow_dispatch: | ||
inputs: | ||
force_android: | ||
description: 'Force Android' | ||
description: "Force Android" | ||
required: false | ||
default: false | ||
type: boolean | ||
force_shared: | ||
description: 'Force shared' | ||
description: "Force shared" | ||
required: false | ||
default: false | ||
type: boolean | ||
force_ios: | ||
description: 'Force iOS' | ||
description: "Force iOS" | ||
required: false | ||
default: false | ||
type: boolean | ||
|
@@ -42,7 +42,7 @@ jobs: | |
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Gradle Wrapper Validation | ||
uses: gradle/actions/wrapper-validation@v4 | ||
|
||
|
@@ -63,24 +63,24 @@ jobs: | |
timeout-minutes: 10 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
uses: ./.github/actions/setup-android | ||
- name: Setup CI | ||
uses: ./.github/actions/setup-android | ||
|
||
- name: Run ktlint | ||
run: ./gradlew setUserHome ktlintCheck --stacktrace | ||
env: | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Run ktlint | ||
run: ./gradlew setUserHome ktlintCheck --stacktrace | ||
env: | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Upload SARIF | ||
uses: github/codeql-action/upload-sarif@v3 | ||
if: success() || failure() | ||
with: | ||
sarif_file: shared/build/reports/ktlint | ||
category: ktlint | ||
- name: Upload SARIF | ||
uses: github/codeql-action/upload-sarif@v3 | ||
if: success() || failure() | ||
with: | ||
sarif_file: shared/build/reports/ktlint | ||
category: ktlint | ||
|
||
detekt: | ||
needs: files-changed | ||
|
@@ -90,22 +90,22 @@ jobs: | |
timeout-minutes: 10 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
- name: Setup CI | ||
uses: ./.github/actions/setup-android | ||
|
||
- name: Run detekt | ||
run: ./gradlew detekt | ||
|
||
- name: Upload SARIF | ||
uses: github/codeql-action/upload-sarif@v3 | ||
if: success() || failure() | ||
with: | ||
sarif_file: build/reports/detekt/detekt.sarif | ||
category: detekt | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
uses: ./.github/actions/setup-android | ||
|
||
- name: Run detekt | ||
run: ./gradlew detekt | ||
|
||
- name: Upload SARIF | ||
uses: github/codeql-action/upload-sarif@v3 | ||
if: success() || failure() | ||
with: | ||
sarif_file: build/reports/detekt/detekt.sarif | ||
category: detekt | ||
|
||
swiftlint: | ||
needs: files-changed | ||
if: ${{ needs.files-changed.outputs.ios == 'true' || needs.files-changed.outputs.shared == 'true' }} | ||
|
@@ -120,26 +120,26 @@ jobs: | |
- name: Setup Ruby | ||
uses: ruby/[email protected] | ||
with: | ||
ruby-version: '3.3.0' | ||
ruby-version: "3.3.0" | ||
bundler-cache: true | ||
working-directory: './iosHyperskillApp' | ||
working-directory: "./iosHyperskillApp" | ||
|
||
- name: Cache Pods | ||
uses: actions/[email protected] | ||
id: cache-pods | ||
with: | ||
path: './iosHyperskillApp/Pods' | ||
path: "./iosHyperskillApp/Pods" | ||
key: ${{ runner.os }}-pods-${{ hashFiles('iosHyperskillApp/Podfile.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-pods- | ||
- name: Install Pods | ||
if: steps.cache-pods.outputs.cache-hit != 'true' | ||
working-directory: './iosHyperskillApp' | ||
working-directory: "./iosHyperskillApp" | ||
run: bundle exec pod install | ||
|
||
- name: Run SwiftLint | ||
working-directory: './iosHyperskillApp' | ||
working-directory: "./iosHyperskillApp" | ||
run: ./lint.sh | ||
|
||
shared-unit-testing: | ||
|
@@ -150,21 +150,21 @@ jobs: | |
timeout-minutes: 30 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
id: setup | ||
uses: ./.github/actions/setup-android | ||
with: | ||
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
|
||
- name: Run unit tests | ||
run: ./gradlew shared:testDebugUnitTest | ||
env: | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
id: setup | ||
uses: ./.github/actions/setup-android | ||
with: | ||
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
|
||
- name: Run unit tests | ||
run: ./gradlew shared:testDebugUnitTest | ||
env: | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
android-unit-testing: | ||
needs: [files-changed, ktlint, detekt] | ||
|
@@ -174,28 +174,28 @@ jobs: | |
timeout-minutes: 30 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
id: setup | ||
uses: ./.github/actions/setup-android | ||
with: | ||
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
|
||
- name: Run unit tests | ||
run: ./gradlew androidHyperskillApp:testDebugUnitTest | ||
env: | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
id: setup | ||
uses: ./.github/actions/setup-android | ||
with: | ||
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
|
||
- name: Run unit tests | ||
run: ./gradlew androidHyperskillApp:testDebugUnitTest | ||
env: | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
build-ios: | ||
needs: swiftlint | ||
name: Build iOS | ||
runs-on: macos-14 | ||
timeout-minutes: 30 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
@@ -207,10 +207,17 @@ jobs: | |
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
|
||
- name: Build | ||
working-directory: './iosHyperskillApp' | ||
working-directory: "./iosHyperskillApp" | ||
run: bundle exec fastlane build install_pods:false | ||
env: | ||
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60 | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Upload error log | ||
if: ${{ failure() }} | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: iosHyperskillApp-iosHyperskillApp.log | ||
path: /Users/runner/Library/Logs/gym/iosHyperskillApp-iosHyperskillApp.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,7 +13,7 @@ concurrency: | |
defaults: | ||
run: | ||
shell: bash | ||
|
||
jobs: | ||
# Run Gradle Wrapper Validation Action to verify the wrapper's checksum | ||
gradle-wrapper-validation: | ||
|
@@ -22,7 +22,7 @@ jobs: | |
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Gradle Wrapper Validation | ||
uses: gradle/actions/wrapper-validation@v4 | ||
|
||
|
@@ -35,26 +35,33 @@ jobs: | |
timeout-minutes: 60 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
id: setup | ||
uses: ./.github/actions/setup-ios | ||
with: | ||
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
google-cloud-storage-code-signing-certificates-key: ${{ secrets.GOOGLE_CLOUD_STORAGE_CODE_SIGNING_CERTIFICATES_KEY_CONTENT }} | ||
|
||
- name: Submit a new Release Build to App Store Connect | ||
working-directory: './iosHyperskillApp' | ||
run: bundle exec fastlane release install_pods:false | ||
env: | ||
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60 | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
KEYCHAIN_NAME: ${{ secrets.KEYCHAIN_NAME }} | ||
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} | ||
APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }} | ||
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} | ||
APP_STORE_CONNECT_API_KEY_CONTENT: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENT }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
id: setup | ||
uses: ./.github/actions/setup-ios | ||
with: | ||
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
google-cloud-storage-code-signing-certificates-key: ${{ secrets.GOOGLE_CLOUD_STORAGE_CODE_SIGNING_CERTIFICATES_KEY_CONTENT }} | ||
|
||
- name: Submit a new Release Build to App Store Connect | ||
working-directory: "./iosHyperskillApp" | ||
run: bundle exec fastlane release install_pods:false | ||
env: | ||
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60 | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
KEYCHAIN_NAME: ${{ secrets.KEYCHAIN_NAME }} | ||
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} | ||
APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }} | ||
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} | ||
APP_STORE_CONNECT_API_KEY_CONTENT: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENT }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Upload error log | ||
if: ${{ failure() }} | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: iosHyperskillApp-iosHyperskillApp.log | ||
path: /Users/runner/Library/Logs/gym/iosHyperskillApp-iosHyperskillApp.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,20 +22,27 @@ jobs: | |
timeout-minutes: 60 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
id: setup | ||
uses: ./.github/actions/setup-ios | ||
with: | ||
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
|
||
- name: Run unit tests | ||
working-directory: './iosHyperskillApp' | ||
run: bundle exec fastlane run_unit_tests install_pods:false | ||
env: | ||
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60 | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
- name: Setup CI | ||
id: setup | ||
uses: ./.github/actions/setup-ios | ||
with: | ||
git-crypt-key: ${{ secrets.GIT_CRYPT_KEY }} | ||
|
||
- name: Run unit tests | ||
working-directory: "./iosHyperskillApp" | ||
run: bundle exec fastlane run_unit_tests install_pods:false | ||
env: | ||
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60 | ||
IS_GIT_CRYPT_UNLOCKED: ${{ steps.setup.outputs.is-git-crypt-unlocked }} | ||
GITHUB_USER: ${{ github.actor }} | ||
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Upload error log | ||
if: ${{ failure() }} | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: iosHyperskillApp-iosHyperskillApp.log | ||
path: /Users/runner/Library/Logs/gym/iosHyperskillApp-iosHyperskillApp.log |