From a31e55893f98711f7529381a015a0f4fa676bcc0 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 11:05:33 +0700 Subject: [PATCH 01/27] feat: use k_macbook runner --- .github/workflows/ci-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 9323d16947..ca3a4a53cb 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -8,7 +8,7 @@ on: - ci-test - testflight-build - debug-action - - feature/slack-notification + - feat/use-k-runner concurrency: group: ios-build-dev-${{ github.ref }} @@ -77,7 +77,7 @@ jobs: bump_build: false slack_webhook: SLACK_WEBHOOK_STG_IOS - runs-on: macos-12 + runs-on: k_macbook env: TMP_KEYCHAIN_NAME: "fastlane_tmp_keychain" # cetificate environment From 563a3252e86f7f23e76f6eaefe9a894143928df6 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 11:06:12 +0700 Subject: [PATCH 02/27] feat: run in pull request --- .github/workflows/ci-build.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index ca3a4a53cb..a2c1d3d7e1 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -2,13 +2,10 @@ name: Krystal iOS CI Build on: workflow_dispatch: + pull_request: push: branches: - main - - ci-test - - testflight-build - - debug-action - - feat/use-k-runner concurrency: group: ios-build-dev-${{ github.ref }} From b81c518b96772351c4b5ee4598dc233f530f382e Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 11:13:24 +0700 Subject: [PATCH 03/27] feat: updated label --- .github/workflows/ci-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index a2c1d3d7e1..3e76aebe45 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -74,7 +74,7 @@ jobs: bump_build: false slack_webhook: SLACK_WEBHOOK_STG_IOS - runs-on: k_macbook + runs-on: self-hosted env: TMP_KEYCHAIN_NAME: "fastlane_tmp_keychain" # cetificate environment From 1ea8695f3447fbf01b9c2546ced55a4ae32a29c8 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 11:17:40 +0700 Subject: [PATCH 04/27] feat: use separated workflow --- .github/workflows/ci-build-self-hosted.yaml | 263 ++++++++++++++++++++ .github/workflows/ci-build.yml | 7 +- 2 files changed, 268 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci-build-self-hosted.yaml diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml new file mode 100644 index 0000000000..02c4fbc40c --- /dev/null +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -0,0 +1,263 @@ +name: Krystal iOS CI Build Self-Hosted + +on: + workflow_dispatch: + pull_request: + push: + branches: + - main + +concurrency: + group: ios-build-dev-${{ github.ref }} + cancel-in-progress: true + +env: + LANG: en_US.UTF-8 + +jobs: + prepare: + runs-on: ubuntu-18.04 + outputs: + current_branch: ${{ steps.current_branch.outputs.value }} + commit_tag: ${{ steps.commit_tag.outputs.value }} + version_tag: ${{ steps.version_tag.outputs.value }} + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: recursive + token: '${{ secrets.KRYSTAL_BOT_GH_PAT }}' + + - name: Extract branch + shell: bash + id: current_branch + run: | + BRANCH="${GITHUB_REF#refs/heads/}" + if [[ "$GITHUB_REF" =~ refs/tags ]]; then + raw=$(git branch -r --contains ${{ github.ref }}) + BRANCH=${raw/origin\/} + fi + echo "::set-output name=value::$BRANCH" + + - name: Get Git Commit Tag + shell: bash + id: commit_tag + run: | + COMMIT_HASH="$(echo $GITHUB_SHA | head -c7)" + echo "::set-output name=value::$COMMIT_HASH" + + - name: Get version tag + id: version_tag + run: | + [[ ! "$GITHUB_REF" =~ refs/tags ]] && exit + echo "::set-output name=value::${GITHUB_REF#refs/tags/}" + + # This step will automatically run if any of the previous steps fail. + # DO NOT CHANGE IT + - name: Send notifications to a specify Telegram group + if: failure() + env: + TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} + TELEGRAM_GROUP_ID: ${{ secrets.TELEGRAM_GROUP_ID }} + RUN_ID: ${{ github.run_id }} + shell: bash + run: .github/failure + + build-ios: + needs: + - prepare + strategy: + matrix: + include: + - firebase_app_id: KRYSTAL_STG_FIREBASE_APP_ID + env: stg + bump_build: false + slack_webhook: SLACK_WEBHOOK_STG_IOS + + runs-on: self-hosted + env: + TMP_KEYCHAIN_NAME: "fastlane_tmp_keychain" + # cetificate environment + DISTRIBUTE_CERT_PATH: /Users/runner/privates/certificates/distribution.p12 + DISTRIBUTE_CERT_PASSWORD: ${{ secrets.DISTRIBUTE_CERT_PASSWORD }} + DEVELOPMENT_CERT_PATH: /Users/runner/privates/certificates/devops_development.p12 + DEVELOPMENT_CERT_PASSWORD: ${{ secrets.DEVELOPMENT_CERT_PASSWORD }} + # xcode project environment + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + APPLE_BUNDLE_ID: ${{ secrets.APPLE_BUNDLE_ID }} + APPLE_CODE_SIGNING_ID_KRYSTAL: ${{ secrets.APPLE_CODE_SIGNING_ID_KRYSTAL }} + # profiles + DEV_PROFILE: ${{ secrets.DEV_PROFILE }} + KRYSTAL_DEV_PROFILE: ${{ secrets.KRYSTAL_DEV_PROFILE }} + AD_HOC_PROFILE: ${{ secrets.AD_HOC_PROFILE }} + EXT_AD_HOC_PROFILE: ${{ secrets.EXT_AD_HOC_PROFILE }} + KRYSTAL_PROD_PROFILE: ${{ secrets.KRYSTAL_PROD_PROFILE }} + KRYSTAL_PROD_EXT_PROFILE: ${{ secrets.KRYSTAL_PROD_EXT_PROFILE }} + # profile paths + DEV_PROFILE_PATH: "/Users/runner/privates/profiles/${{ secrets.DEV_PROFILE }}.mobileprovision" + KRYSTAL_DEV_PROFILE_PATH: "/Users/runner/privates/profiles/${{ secrets.KRYSTAL_DEV_PROFILE }}.mobileprovision" + AD_HOC_PROFILE_PATH: "/Users/runner/privates/profiles/${{ secrets.AD_HOC_PROFILE }}.mobileprovision" + EXT_AD_HOC_PROFILE_PATH: "/Users/runner/privates/profiles/${{ secrets.EXT_AD_HOC_PROFILE }}.mobileprovision" + KRYSTAL_PROD_PROFILE_PATH: "/Users/runner/privates/profiles/${{ secrets.KRYSTAL_PROD_PROFILE }}.mobileprovision" + KRYSTAL_PROD_EXT_PROFILE_PATH: "/Users/runner/privates/profiles/${{ secrets.KRYSTAL_PROD_EXT_PROFILE }}.mobileprovision" + # sentry environments + SENTRY_TOKEN: ${{ secrets.SENTRY_TOKEN }} + ORG_SLUG: ${{ secrets.ORG_SLUG }} + PROJECT_SLUG: ${{ secrets.PROJECT_SLUG }} + SENTRY_URL: ${{ secrets.SENTRY_URL }} + # default actor + GH_ACTOR: Krystal-CICD + # GCP + PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }} + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + + IOS_PASSPHRASE: ${{ secrets.IOS_PASSPHRASE }} + FIREBASE_CLI_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }} + FIREBASE_APP_ID: ${{ matrix.firebase_app_id }} + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: recursive + token: '${{ secrets.KRYSTAL_BOT_GH_PAT }}' + + - name: Get configuration items + run: | + echo $SSH_PRIVATE_KEY | base64 --decode > private.key + + chmod 600 private.key + + rm -rf $HOME/krystal-mobile-enviroment + + GIT_SSH_COMMAND='ssh -i private.key -o IdentitiesOnly=yes -o StrictHostKeyChecking=no' git clone git@github.com:KYRDTeam/krystal-mobile-enviroment.git $HOME/krystal-mobile-enviroment + + ls -al $HOME/krystal-mobile-enviroment/ + + + CONFIG_PATH=$HOME/krystal-mobile-enviroment/ios/ + ls -al $CONFIG_PATH + + echo "Using gpg to decrypt the sensitive files now" + + gpg --quiet --batch --yes --decrypt --passphrase=$IOS_PASSPHRASE $CONFIG_PATH/certificates/devops_development.p12.gpg > $CONFIG_PATH/certificates/devops_development.p12 + gpg --quiet --batch --yes --decrypt --passphrase=$IOS_PASSPHRASE $CONFIG_PATH/certificates/distribution.p12.gpg > $CONFIG_PATH/certificates/distribution.p12 + gpg --quiet --batch --yes --decrypt --passphrase=$IOS_PASSPHRASE $CONFIG_PATH/profiles/devops_ios_distribution.mobileprovision.gpg > $CONFIG_PATH/profiles/devops_ios_distribution.mobileprovision + gpg --quiet --batch --yes --decrypt --passphrase=$IOS_PASSPHRASE $CONFIG_PATH/profiles/devops_ios_ext_distribution.mobileprovision.gpg > $CONFIG_PATH/profiles/devops_ios_ext_distribution.mobileprovision + + ls -al $CONFIG_PATH + + mkdir -p /Users/runner/privates + cp -va $CONFIG_PATH/* /Users/runner/privates + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.6 + bundler-cache: true + + - name: Install firebase tool + run: | + curl -sL https://firebase.tools | bash + + - name: Install Pod check + run: gem install cocoapods-check + + - name: Install Fastlane + run: gem install fastlane + + - name: Install Pod binary + run: gem install cocoapods-binary + + - name: Setup Sentry CLI + shell: bash + run: curl -sL https://sentry.io/get-cli/ | bash + + - name: Install fda fastlane plguin + shell: bash + run: bundle exec fastlane add_plugin firebase_app_distribution + + - name: Setup cache + uses: actions/cache@v1 + with: + path: Pods + key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} + restore-keys: | + ${{ runner.os }}-pods- + + - name: Setup environments + shell: bash + env: + ENV: ${{ matrix.env }} + run: | + cp /Users/runner/privates/environments/KNSecret.swift ./KyberNetwork/KyberNetwork/Configurations/Environments + cp /Users/runner/privates/environments/$ENV/KNEnvironment.swift ./KyberNetwork/KyberNetwork/Configurations/Environments/Sources + + - name: Pods install + run: pod check || pod install + + - name: Build IPA + uses: maierj/fastlane-action@v2.0.1 + env: + FIREBASE_APP_ID: ${{ secrets[matrix.firebase_app_id] }} + with: + lane: fda + bundle-install-path: "vendor/bundle" + + - name: Prepare bump build number + run: | + git config user.name "$GH_ACTOR" + git config user.email "$GH_ACTOR@users.noreply.github.com" + + - name: Bump Build number + if: matrix.bump_build && needs.prepare.outputs.current_branch == 'main' + uses: maierj/fastlane-action@v2.0.1 + with: + lane: bump_build_number + bundle-install-path: "vendor/bundle" + + - name: Push commit + if: matrix.bump_build && needs.prepare.outputs.current_branch == 'main' + shell: bash + run: | + git push --repo="https://$GH_ACTOR:$KRYSTAL_BOT_GH_PAT@github.com/${GITHUB_REPOSITORY}.git" + + # This step will automatically run if any of the previous steps fail. + # DO NOT CHANGE IT + - name: Send notifications to a specify Telegram group + if: failure() + env: + TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} + TELEGRAM_GROUP_ID: ${{ secrets.TELEGRAM_GROUP_ID }} + RUN_ID: ${{ github.run_id }} + shell: bash + run: .github/failure + + notify: + needs: + - prepare + - build-ios + runs-on: ubuntu-latest + steps: + - name: Slack Notification on Success + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_CHANNEL: release-krystal-ios-stg + SLACK_COLOR: ${{ job.status }} + SLACK_ICON: https://github.com/rtCamp.png?size=48 + SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | A new commit has been built | Download at https://console.firebase.google.com/u/0/project/stg-krystal-wallet/appdistribution/app/ios:com.kyrd.krystal.ios/releases' + SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' + SLACK_USERNAME: deployment-notifier + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} + + - name: Slack Notification on Failure + uses: rtCamp/action-slack-notify@v2 + if: failure() + env: + SLACK_CHANNEL: release-krystal-ios-stg + SLACK_COLOR: 'fc5a03' + SLACK_ICON: https://github.com/rtCamp.png?size=48 + SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | The build/deployment failed' + SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' + SLACK_USERNAME: deployment-notifier + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 3e76aebe45..9323d16947 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -2,10 +2,13 @@ name: Krystal iOS CI Build on: workflow_dispatch: - pull_request: push: branches: - main + - ci-test + - testflight-build + - debug-action + - feature/slack-notification concurrency: group: ios-build-dev-${{ github.ref }} @@ -74,7 +77,7 @@ jobs: bump_build: false slack_webhook: SLACK_WEBHOOK_STG_IOS - runs-on: self-hosted + runs-on: macos-12 env: TMP_KEYCHAIN_NAME: "fastlane_tmp_keychain" # cetificate environment From 9f24434efb88999fb58e71e9b271367ae9ec9d00 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 11:21:12 +0700 Subject: [PATCH 05/27] feat: disabled tg --- .github/workflows/ci-build-self-hosted.yaml | 72 +++++++++++---------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index 02c4fbc40c..2787e7a565 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -224,40 +224,42 @@ jobs: # This step will automatically run if any of the previous steps fail. # DO NOT CHANGE IT - - name: Send notifications to a specify Telegram group - if: failure() - env: - TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} - TELEGRAM_GROUP_ID: ${{ secrets.TELEGRAM_GROUP_ID }} - RUN_ID: ${{ github.run_id }} - shell: bash - run: .github/failure + # TODO: Enable this again + # - name: Send notifications to a specify Telegram group + # if: failure() + # env: + # TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} + # TELEGRAM_GROUP_ID: ${{ secrets.TELEGRAM_GROUP_ID }} + # RUN_ID: ${{ github.run_id }} + # shell: bash + # run: .github/failure - notify: - needs: - - prepare - - build-ios - runs-on: ubuntu-latest - steps: - - name: Slack Notification on Success - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_CHANNEL: release-krystal-ios-stg - SLACK_COLOR: ${{ job.status }} - SLACK_ICON: https://github.com/rtCamp.png?size=48 - SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | A new commit has been built | Download at https://console.firebase.google.com/u/0/project/stg-krystal-wallet/appdistribution/app/ios:com.kyrd.krystal.ios/releases' - SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' - SLACK_USERNAME: deployment-notifier - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} + # TODO: Enable this again + # notify: + # needs: + # - prepare + # - build-ios + # runs-on: ubuntu-latest + # steps: + # - name: Slack Notification on Success + # uses: rtCamp/action-slack-notify@v2 + # env: + # SLACK_CHANNEL: release-krystal-ios-stg + # SLACK_COLOR: ${{ job.status }} + # SLACK_ICON: https://github.com/rtCamp.png?size=48 + # SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | A new commit has been built | Download at https://console.firebase.google.com/u/0/project/stg-krystal-wallet/appdistribution/app/ios:com.kyrd.krystal.ios/releases' + # SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' + # SLACK_USERNAME: deployment-notifier + # SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} - - name: Slack Notification on Failure - uses: rtCamp/action-slack-notify@v2 - if: failure() - env: - SLACK_CHANNEL: release-krystal-ios-stg - SLACK_COLOR: 'fc5a03' - SLACK_ICON: https://github.com/rtCamp.png?size=48 - SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | The build/deployment failed' - SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' - SLACK_USERNAME: deployment-notifier - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} + # - name: Slack Notification on Failure + # uses: rtCamp/action-slack-notify@v2 + # if: failure() + # env: + # SLACK_CHANNEL: release-krystal-ios-stg + # SLACK_COLOR: 'fc5a03' + # SLACK_ICON: https://github.com/rtCamp.png?size=48 + # SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | The build/deployment failed' + # SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' + # SLACK_USERNAME: deployment-notifier + # SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} From 039b1ef18bbadf0fa4b3ef38e78a0293c0a63a87 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 14:40:22 +0700 Subject: [PATCH 06/27] feat: added ImageOS env --- .github/workflows/ci-build-self-hosted.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index 2787e7a565..85974e0c10 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -155,6 +155,8 @@ jobs: with: ruby-version: 2.6 bundler-cache: true + env: + ImageOS: macos-12.6 - name: Install firebase tool run: | From ad81dc9822ebcbcb3148927ebe51a23ebe6b3e10 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 14:43:25 +0700 Subject: [PATCH 07/27] feat: update ImageOS --- .github/workflows/ci-build-self-hosted.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index 85974e0c10..4b179be37b 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -156,7 +156,7 @@ jobs: ruby-version: 2.6 bundler-cache: true env: - ImageOS: macos-12.6 + ImageOS: macos12 - name: Install firebase tool run: | From dc2adc261a7c7b8dd6ebc651d294e8be8eecfea3 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 14:48:07 +0700 Subject: [PATCH 08/27] feat: disable ruby setup step --- .github/workflows/ci-build-self-hosted.yaml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index 4b179be37b..dadb628db9 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -150,13 +150,12 @@ jobs: mkdir -p /Users/runner/privates cp -va $CONFIG_PATH/* /Users/runner/privates - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 2.6 - bundler-cache: true - env: - ImageOS: macos12 + ### Setup Ruby manually in the host beforehand + # - name: Setup Ruby + # uses: ruby/setup-ruby@v1 + # with: + # ruby-version: 2.6 + # bundler-cache: true - name: Install firebase tool run: | From b49e87a332c97b3b2d17852cef2d0d1167df3eb4 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 14:55:38 +0700 Subject: [PATCH 09/27] feat: disable firebase tool installation --- .github/workflows/ci-build-self-hosted.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index dadb628db9..bb4becb284 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -150,16 +150,17 @@ jobs: mkdir -p /Users/runner/privates cp -va $CONFIG_PATH/* /Users/runner/privates - ### Setup Ruby manually in the host beforehand + ### Setup manually in the host beforehand + # - name: Setup Ruby # uses: ruby/setup-ruby@v1 # with: # ruby-version: 2.6 # bundler-cache: true - - name: Install firebase tool - run: | - curl -sL https://firebase.tools | bash + # - name: Install firebase tool + # run: | + # curl -sL https://firebase.tools | bash - name: Install Pod check run: gem install cocoapods-check From 2f37fd714b2f898abefa3542fe4ac5b657224996 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 15:00:35 +0700 Subject: [PATCH 10/27] feat: disabled sentry cli installation step --- .github/workflows/ci-build-self-hosted.yaml | 26 +++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index bb4becb284..d4a51e119a 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -151,7 +151,7 @@ jobs: cp -va $CONFIG_PATH/* /Users/runner/privates ### Setup manually in the host beforehand - + # - name: Setup Ruby # uses: ruby/setup-ruby@v1 # with: @@ -170,22 +170,24 @@ jobs: - name: Install Pod binary run: gem install cocoapods-binary - - - name: Setup Sentry CLI - shell: bash - run: curl -sL https://sentry.io/get-cli/ | bash + + ### Installed it manually on self-hosted + # - name: Setup Sentry CLI + # shell: bash + # run: curl -sL https://sentry.io/get-cli/ | bash - name: Install fda fastlane plguin shell: bash run: bundle exec fastlane add_plugin firebase_app_distribution - - name: Setup cache - uses: actions/cache@v1 - with: - path: Pods - key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} - restore-keys: | - ${{ runner.os }}-pods- + ### Disabled cache + # - name: Setup cache + # uses: actions/cache@v1 + # with: + # path: Pods + # key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} + # restore-keys: | + # ${{ runner.os }}-pods- - name: Setup environments shell: bash From 887fb2398009d7b3317407c2086aa3add53f15e8 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 15:07:05 +0700 Subject: [PATCH 11/27] feat: added bundle install --- .github/workflows/ci-build-self-hosted.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index d4a51e119a..1d379d32f6 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -178,7 +178,7 @@ jobs: - name: Install fda fastlane plguin shell: bash - run: bundle exec fastlane add_plugin firebase_app_distribution + run: bundle install && bundle exec fastlane add_plugin firebase_app_distribution ### Disabled cache # - name: Setup cache From 26958f3dab456853b6d74cc11bd7678b29c05494 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 15:12:50 +0700 Subject: [PATCH 12/27] feat: added gem install pod step --- .github/workflows/ci-build-self-hosted.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index 1d379d32f6..edb10beb93 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -162,6 +162,9 @@ jobs: # run: | # curl -sL https://firebase.tools | bash + - name: Install Pod + run: gem install cocoapods + - name: Install Pod check run: gem install cocoapods-check From 7510b12b449615a73eafac64c21777e77381b5cd Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 15:21:52 +0700 Subject: [PATCH 13/27] feat: disable gem install pod --- .github/workflows/ci-build-self-hosted.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index edb10beb93..1a2f4c9635 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -162,18 +162,17 @@ jobs: # run: | # curl -sL https://firebase.tools | bash - - name: Install Pod - run: gem install cocoapods - - - name: Install Pod check - run: gem install cocoapods-check + ### Installed manually + # - name: Install Pod + # run: gem install cocoapods + # - name: Install Pod check + # run: gem install cocoapods-check + # - name: Install Pod binary + # run: gem install cocoapods-binary - name: Install Fastlane run: gem install fastlane - - name: Install Pod binary - run: gem install cocoapods-binary - ### Installed it manually on self-hosted # - name: Setup Sentry CLI # shell: bash From e324a50ffbdc073ae92cdd7fc05617505d1c9180 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 16:27:13 +0700 Subject: [PATCH 14/27] feat: used fda_self_hosted lane --- .github/workflows/ci-build-self-hosted.yaml | 2 +- fastlane/Fastfile | 31 +++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index 1a2f4c9635..41dab35bf8 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -207,7 +207,7 @@ jobs: env: FIREBASE_APP_ID: ${{ secrets[matrix.firebase_app_id] }} with: - lane: fda + lane: fda_self_hosted bundle-install-path: "vendor/bundle" - name: Prepare bump build number diff --git a/fastlane/Fastfile b/fastlane/Fastfile index f42750c4f1..d27e3a9f18 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -72,6 +72,14 @@ lane :fda do firebase_distribution end +lane :fda_self_hosted do + prepare_keychain + install_profiles + update_project + build_debug_self_hosted + firebase_distribution +end + # pre_release build and upload to testflight lane :pre_release do prepare_keychain @@ -256,6 +264,29 @@ lane :build_debug do ) end +lane :build_debug_self_hosted do + xcversion(version: "14.1") + # build app + @tid = bundle_id + ".KrystalNotificationServiceExtension" + build_app( + workspace: "KyberNetwork.xcworkspace", + configuration: "Debug", + scheme: "KyberNetwork", + clean: true, + output_directory: "archives", + output_name: "KyberSwap.ipa", + sdk: "iphoneos", + export_method: "development", + export_team_id: team_id, + export_options: { + provisioningProfiles: { + bundle_id => ad_hoc_profile, + @tid => ext_ad_hoc_profile + } + } + ) +end + lane :firebase_distribution do firebase_app_distribution( ipa_path: ENV["IPA_OUTPUT_PATH"], From 28b6aa26f55d6f539624f6aa3aa0620584fe8240 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 17:33:45 +0700 Subject: [PATCH 15/27] feat: trigger --- fastlane/Fastfile | 1 + 1 file changed, 1 insertion(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index d27e3a9f18..cf68a781a4 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -341,3 +341,4 @@ lane :ci_bump_build_number do @build_number = get_build_number(xcodeproj: "KyberNetwork.xcodeproj") git_commit(path: ["./*.plist", "KyberNetwork.xcodeproj/project.pbxproj"], message: "[no ci] increase build number " + @build_number + " (ver: " + @version + ")") end + From 959f5db5026c5393ed414f1e3e18d8981822ce73 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 17:38:43 +0700 Subject: [PATCH 16/27] feat: added comment --- fastlane/Fastfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index cf68a781a4..d2b02d00be 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -64,6 +64,7 @@ lane :debug_mode do # sentry_upload end +# Build and upload to FDA lane :fda do prepare_keychain install_profiles @@ -72,6 +73,7 @@ lane :fda do firebase_distribution end +# Build and upload to FDA, using self-hosted macos runner lane :fda_self_hosted do prepare_keychain install_profiles From 3309490b51c0dd70a53defba39b4cacafd4cba3d Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 17:41:04 +0700 Subject: [PATCH 17/27] test: disable prepare_keychain --- fastlane/Fastfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index d2b02d00be..562ebbf8c6 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -75,7 +75,7 @@ end # Build and upload to FDA, using self-hosted macos runner lane :fda_self_hosted do - prepare_keychain + # prepare_keychain install_profiles update_project build_debug_self_hosted From 8af6449b3d6a1819919e1579f83e40a3674ff0a3 Mon Sep 17 00:00:00 2001 From: tungpun Date: Thu, 3 Nov 2022 17:45:45 +0700 Subject: [PATCH 18/27] test: disabled prepare steps --- fastlane/Fastfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 562ebbf8c6..6c6a027416 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -76,8 +76,8 @@ end # Build and upload to FDA, using self-hosted macos runner lane :fda_self_hosted do # prepare_keychain - install_profiles - update_project + # install_profiles + # update_project build_debug_self_hosted firebase_distribution end From 0a5146f547eb93ef1286b58c0bc2b4a868f208e4 Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 09:49:46 +0700 Subject: [PATCH 19/27] feat: added back preparation steps --- fastlane/Fastfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 6c6a027416..d2b02d00be 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -75,9 +75,9 @@ end # Build and upload to FDA, using self-hosted macos runner lane :fda_self_hosted do - # prepare_keychain - # install_profiles - # update_project + prepare_keychain + install_profiles + update_project build_debug_self_hosted firebase_distribution end From 9619624d89489aa0ff0670325011dc32415a2095 Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 10:25:04 +0700 Subject: [PATCH 20/27] test: added update code signing setting for Pods project --- fastlane/Fastfile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index d2b02d00be..0d006cd0e8 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -216,6 +216,14 @@ lane :update_project do targets: "KrystalNotificationServiceExtension", profile_name: dev_profile ) + + update_code_signing_settings( + team_id: team_id, + code_sign_identity: signing_id, + targets: "SwiftMessages-SwiftMessages", + profile_name: dev_profile + path: "Pods/Pods.xcodeproj" + ) end # build build ipa and export by ad-hoc method From 601ca90838ab2f62423748655c24ed57f717563f Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 11:02:27 +0700 Subject: [PATCH 21/27] fix: syntax --- fastlane/Fastfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 0d006cd0e8..e4ddf5c59e 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -217,11 +217,12 @@ lane :update_project do profile_name: dev_profile ) + # update code siging identity for Pods project as xcode 14 sometimes can't detect code signing ID config for these targets update_code_signing_settings( team_id: team_id, code_sign_identity: signing_id, targets: "SwiftMessages-SwiftMessages", - profile_name: dev_profile + profile_name: dev_profile, path: "Pods/Pods.xcodeproj" ) end From dd0c31322cfe5a1bc23ddfc63bac653e3f9f6a48 Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 11:12:29 +0700 Subject: [PATCH 22/27] revert: add signing team manually --- fastlane/Fastfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index e4ddf5c59e..fcc31d283a 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -217,14 +217,14 @@ lane :update_project do profile_name: dev_profile ) - # update code siging identity for Pods project as xcode 14 sometimes can't detect code signing ID config for these targets - update_code_signing_settings( - team_id: team_id, - code_sign_identity: signing_id, - targets: "SwiftMessages-SwiftMessages", - profile_name: dev_profile, - path: "Pods/Pods.xcodeproj" - ) + # # update code siging identity for Pods project as xcode 14 sometimes can't detect code signing ID config for these targets + # update_code_signing_settings( + # team_id: team_id, + # code_sign_identity: signing_id, + # targets: "SwiftMessages-SwiftMessages", + # profile_name: dev_profile, + # path: "Pods/Pods.xcodeproj" + # ) end # build build ipa and export by ad-hoc method From 907acda4ec7ce583779d697c81857ad581b6a482 Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 11:29:51 +0700 Subject: [PATCH 23/27] feat: added post_install into Podfile --- Podfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Podfile b/Podfile index fa1decbdbe..7c1fab144b 100644 --- a/Podfile +++ b/Podfile @@ -199,3 +199,15 @@ post_install do |installer| end end end + +# https://github.com/CocoaPods/CocoaPods/issues/11402#issuecomment-1149585364 +post_install do |installer| + installer.generated_projects.each do |project| + project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings["DEVELOPMENT_TEAM"] = "G9CRYMTLBL" + end + end + end +end + From 3a510696adebb8a750cc043cb560a8dc0aa1737e Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 11:36:56 +0700 Subject: [PATCH 24/27] fix: use only 1 post_install --- Podfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/Podfile b/Podfile index 7c1fab144b..7644ab9729 100644 --- a/Podfile +++ b/Podfile @@ -198,10 +198,7 @@ post_install do |installer| end end end -end -# https://github.com/CocoaPods/CocoaPods/issues/11402#issuecomment-1149585364 -post_install do |installer| installer.generated_projects.each do |project| project.targets.each do |target| target.build_configurations.each do |config| From e5c8bebc1e28ca0be382bc453c533bf586f43cdc Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 15:21:23 +0700 Subject: [PATCH 25/27] feat: enabled tg back --- .github/workflows/ci-build-self-hosted.yaml | 72 ++++++++++----------- fastlane/Fastfile | 8 --- 2 files changed, 35 insertions(+), 45 deletions(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index 41dab35bf8..3ff5babc48 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -230,42 +230,40 @@ jobs: # This step will automatically run if any of the previous steps fail. # DO NOT CHANGE IT - # TODO: Enable this again - # - name: Send notifications to a specify Telegram group - # if: failure() - # env: - # TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} - # TELEGRAM_GROUP_ID: ${{ secrets.TELEGRAM_GROUP_ID }} - # RUN_ID: ${{ github.run_id }} - # shell: bash - # run: .github/failure + - name: Send notifications to a specify Telegram group + if: failure() + env: + TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} + TELEGRAM_GROUP_ID: ${{ secrets.TELEGRAM_GROUP_ID }} + RUN_ID: ${{ github.run_id }} + shell: bash + run: .github/failure - # TODO: Enable this again - # notify: - # needs: - # - prepare - # - build-ios - # runs-on: ubuntu-latest - # steps: - # - name: Slack Notification on Success - # uses: rtCamp/action-slack-notify@v2 - # env: - # SLACK_CHANNEL: release-krystal-ios-stg - # SLACK_COLOR: ${{ job.status }} - # SLACK_ICON: https://github.com/rtCamp.png?size=48 - # SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | A new commit has been built | Download at https://console.firebase.google.com/u/0/project/stg-krystal-wallet/appdistribution/app/ios:com.kyrd.krystal.ios/releases' - # SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' - # SLACK_USERNAME: deployment-notifier - # SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} + notify: + needs: + - prepare + - build-ios + runs-on: ubuntu-latest + steps: + - name: Slack Notification on Success + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_CHANNEL: release-krystal-ios-stg + SLACK_COLOR: ${{ job.status }} + SLACK_ICON: https://github.com/rtCamp.png?size=48 + SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | A new commit has been built | Download at https://console.firebase.google.com/u/0/project/stg-krystal-wallet/appdistribution/app/ios:com.kyrd.krystal.ios/releases' + SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' + SLACK_USERNAME: deployment-notifier + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} - # - name: Slack Notification on Failure - # uses: rtCamp/action-slack-notify@v2 - # if: failure() - # env: - # SLACK_CHANNEL: release-krystal-ios-stg - # SLACK_COLOR: 'fc5a03' - # SLACK_ICON: https://github.com/rtCamp.png?size=48 - # SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | The build/deployment failed' - # SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' - # SLACK_USERNAME: deployment-notifier - # SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} + - name: Slack Notification on Failure + uses: rtCamp/action-slack-notify@v2 + if: failure() + env: + SLACK_CHANNEL: release-krystal-ios-stg + SLACK_COLOR: 'fc5a03' + SLACK_ICON: https://github.com/rtCamp.png?size=48 + SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | The build/deployment failed' + SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' + SLACK_USERNAME: deployment-notifier + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} diff --git a/fastlane/Fastfile b/fastlane/Fastfile index fcc31d283a..345cf227db 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -217,14 +217,6 @@ lane :update_project do profile_name: dev_profile ) - # # update code siging identity for Pods project as xcode 14 sometimes can't detect code signing ID config for these targets - # update_code_signing_settings( - # team_id: team_id, - # code_sign_identity: signing_id, - # targets: "SwiftMessages-SwiftMessages", - # profile_name: dev_profile, - # path: "Pods/Pods.xcodeproj" - # ) end # build build ipa and export by ad-hoc method From 1afb337298b35045436745e7cf918bf88dcb9395 Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 15:40:03 +0700 Subject: [PATCH 26/27] feat: updated message --- .github/workflows/ci-build-self-hosted.yaml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index 3ff5babc48..d77ba5d5dc 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -150,19 +150,15 @@ jobs: mkdir -p /Users/runner/privates cp -va $CONFIG_PATH/* /Users/runner/privates - ### Setup manually in the host beforehand - + ### Installed manually # - name: Setup Ruby # uses: ruby/setup-ruby@v1 # with: # ruby-version: 2.6 # bundler-cache: true - # - name: Install firebase tool # run: | # curl -sL https://firebase.tools | bash - - ### Installed manually # - name: Install Pod # run: gem install cocoapods # - name: Install Pod check @@ -251,7 +247,7 @@ jobs: SLACK_CHANNEL: release-krystal-ios-stg SLACK_COLOR: ${{ job.status }} SLACK_ICON: https://github.com/rtCamp.png?size=48 - SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | A new commit has been built | Download at https://console.firebase.google.com/u/0/project/stg-krystal-wallet/appdistribution/app/ios:com.kyrd.krystal.ios/releases' + SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | A new commit has been built on self-hosted runner | Download at https://console.firebase.google.com/u/0/project/stg-krystal-wallet/appdistribution/app/ios:com.kyrd.krystal.ios/releases' SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' SLACK_USERNAME: deployment-notifier SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} @@ -263,7 +259,7 @@ jobs: SLACK_CHANNEL: release-krystal-ios-stg SLACK_COLOR: 'fc5a03' SLACK_ICON: https://github.com/rtCamp.png?size=48 - SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | The build/deployment failed' + SLACK_MESSAGE: ':rocket: Krystal-iOS | ${{ matrix.command }} | The build/deployment failed on self-hosted runner' SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' SLACK_USERNAME: deployment-notifier SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} From 2f47fd50c1cc6ac6bc14f6b4c2d91aa9d700b01c Mon Sep 17 00:00:00 2001 From: tungpun Date: Fri, 4 Nov 2022 17:32:21 +0700 Subject: [PATCH 27/27] feat: triggeR --- .github/workflows/ci-build-self-hosted.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-build-self-hosted.yaml b/.github/workflows/ci-build-self-hosted.yaml index d77ba5d5dc..5b4f1d514f 100644 --- a/.github/workflows/ci-build-self-hosted.yaml +++ b/.github/workflows/ci-build-self-hosted.yaml @@ -263,3 +263,4 @@ jobs: SLACK_TITLE: ':rocket: Krystal-iOS | ${{ matrix.command }}' SLACK_USERNAME: deployment-notifier SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_STG_IOS }} +