Skip to content

Commit

Permalink
[CI] Correctly retrieve a git branch on CI
Browse files Browse the repository at this point in the history
  • Loading branch information
testableapple committed Jul 31, 2024
1 parent 8b2491f commit 05d98a2
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 60 deletions.
12 changes: 5 additions & 7 deletions .github/workflows/cron-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ concurrency:

env:
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
build-test-app-and-frameworks:
Expand Down Expand Up @@ -59,7 +60,6 @@ jobs:
runs-on: ${{ matrix.os }}
env:
GITHUB_EVENT: ${{ toJson(github.event) }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
STREAM_DEMO_APP_SECRET: ${{ secrets.STREAM_DEMO_APP_SECRET }}
XCODE_VERSION: ${{ matrix.xcode }}
Expand Down Expand Up @@ -151,7 +151,6 @@ jobs:
fail-fast: false
runs-on: ${{ matrix.os }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
XCODE_VERSION: ${{ matrix.xcode }}
steps:
- uses: actions/[email protected]
Expand Down Expand Up @@ -195,8 +194,11 @@ jobs:
runs-on: macos-12
env:
XCODE_VERSION: "14.0.1"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Connect iOS Bot
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
- uses: actions/[email protected]
- uses: ./.github/actions/ruby-cache
- name: List Xcode versions
Expand All @@ -207,10 +209,6 @@ jobs:
- name: Build UI
run: bundle exec fastlane test_ui device:"iPhone 8" build_for_testing:true
timeout-minutes: 25
- name: Install Bot SSH Key
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
- name: Build XCFrameworks
run: bundle exec fastlane build_xcframeworks
timeout-minutes: 25
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: macos-12
if: github.event.pull_request.merged == true # only merged pull requests must trigger this job
steps:
- name: Install Bot SSH Key
- name: Connect iOS Bot
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/sdk-performance-metrics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
env:
GITHUB_TOKEN: '${{ secrets.CI_BOT_GITHUB_TOKEN }}'
steps:
- name: Install Bot SSH Key
- name: Connect iOS Bot
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
uses: webfactory/[email protected]
with:
Expand All @@ -45,7 +45,6 @@ jobs:
timeout-minutes: 120
env:
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}
BRANCH_NAME: ${{ github.event.pull_request.head.ref }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }}

Expand Down
8 changes: 1 addition & 7 deletions .github/workflows/sdk-size-metrics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
env:
GITHUB_TOKEN: '${{ secrets.CI_BOT_GITHUB_TOKEN }}'
steps:
- name: Install Bot SSH Key
- name: Connect iOS Bot
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
Expand All @@ -28,16 +28,10 @@ jobs:

- uses: ./.github/actions/bootstrap

- name: Get branch name
id: get_branch_name
run: echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT

- name: Run SDK Size Metrics
run: bundle exec fastlane show_frameworks_sizes
timeout-minutes: 30
env:
BRANCH_NAME: ${{ steps.get_branch_name.outputs.branch }}
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}
GITHUB_EVENT_NAME: ${{ github.event_name }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }}
25 changes: 2 additions & 23 deletions .github/workflows/smoke-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ concurrency:
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI
IOS_SIMULATOR_DEVICE: "iPhone 15 Pro (17.4)"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}

jobs:
build-test-app-and-frameworks:
Expand Down Expand Up @@ -48,8 +50,6 @@ jobs:
name: Automated Code Review
runs-on: macos-12
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
XCODE_VERSION: "14.0.1"
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }}
steps:
Expand All @@ -73,8 +73,6 @@ jobs:
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }}
env:
XCODE_VERSION: "14.0.1"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
steps:
- uses: actions/[email protected]
- uses: ./.github/actions/ruby-cache
Expand All @@ -92,9 +90,6 @@ jobs:
runs-on: macos-14
if: ${{ github.event.inputs.snapshots != 'true' }}
needs: build-test-app-and-frameworks
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
steps:
- uses: actions/[email protected]
with:
Expand All @@ -110,13 +105,9 @@ jobs:
- name: Run LLC Tests (Debug)
run: bundle exec fastlane test device:"${{ env.IOS_SIMULATOR_DEVICE }}" skip_build:true
timeout-minutes: 60
- name: Get branch name
id: get_branch_name
run: echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
- name: Run Sonar analysis
run: bundle exec fastlane sonar_upload
env:
BRANCH_NAME: ${{ steps.get_branch_name.outputs.branch }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
PR_NUMBER: ${{ github.event.number }}
Expand Down Expand Up @@ -165,7 +156,6 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }} # to open a PR
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # to use github cli
GITHUB_PR_NUM: ${{ github.event.number }}
- name: Parse xcresult
if: failure()
run: |
Expand All @@ -192,8 +182,6 @@ jobs:
run: bundle exec fastlane allure_launch
env:
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
GITHUB_EVENT: ${{ toJson(github.event) }}
- id: get_launch_id
run: echo "launch_id=${{env.LAUNCH_ID}}" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -230,15 +218,12 @@ jobs:
env:
XCODE_VERSION: "15.0.1" # the most stable pair of Xcode
IOS_SIMULATOR_DEVICE: "iPhone 15 Pro (17.0)" # and iOS
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
MATRIX_SIZE: ${{ strategy.job-total }}
STREAM_DEMO_APP_SECRET: ${{ secrets.STREAM_DEMO_APP_SECRET }}
- name: Allure TestOps Upload
if: env.LAUNCH_ID != '' && (success() || failure())
run: bundle exec fastlane allure_upload launch_id:$LAUNCH_ID
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
- name: Allure TestOps Launch Removal
if: env.LAUNCH_ID != '' && cancelled()
Expand All @@ -265,9 +250,6 @@ jobs:
runs-on: macos-14
needs: build-test-app-and-frameworks
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
steps:
- uses: actions/[email protected]
- uses: actions/download-artifact@v4
Expand Down Expand Up @@ -297,9 +279,6 @@ jobs:
runs-on: macos-14
needs: build-test-app-and-frameworks
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.number }}
steps:
- uses: actions/[email protected]
- uses: actions/download-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/start-new-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
name: Start new release
runs-on: macos-14
steps:
- name: Install Bot SSH Key
- name: Connect iOS Bot
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/testflight.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
deploy:
runs-on: macos-14
steps:
- name: Install Bot SSH Key
- name: Connect iOS Bot
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
Expand Down
5 changes: 2 additions & 3 deletions fastlane/Allurefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@ allure_results_path = 'allure-results'

desc 'Upload test results to Allure TestOps'
lane :allure_upload do |options|
branch = github_run_details['head_branch']
allure_args = "-e #{allure_url} --project-id #{allure_project_id} --launch-id #{options[:launch_id]}"
sh("./xcresults export test_output/StreamChatUITestsApp.xcresult #{allure_results_path} || true")
sh("./allurectl launch reopen #{options[:launch_id]} || true") # to prevent allure from uploading results to a closed launch
sh("env BRANCH_NAME='#{branch}' ./allurectl upload #{allure_args} #{allure_results_path} || true")
sh("env BRANCH_NAME='#{current_branch}' ./allurectl upload #{allure_args} #{allure_results_path} || true")
UI.success("Check out test results in Allure TestOps: #{allure_url}/launch/#{options[:launch_id]} 🎉")
end

Expand Down Expand Up @@ -54,6 +53,6 @@ def github_run_details
return nil unless is_ci

github_path = "#{ENV.fetch('GITHUB_API_URL', nil)}/repos/#{ENV.fetch('GITHUB_REPOSITORY', nil)}/actions/runs/#{ENV.fetch('GITHUB_RUN_ID', nil)}"
output = sh(command: "curl -s -H 'authorization: Bearer #{ENV.fetch('GITHUB_TOKEN', nil)}' -X GET -G #{github_path}", log: false)
output = sh(command: "curl -s -H 'authorization: Bearer #{ENV.fetch('GITHUB_TOKEN', nil)}' -X GET -G #{github_path}")
JSON.parse(output)
end
24 changes: 9 additions & 15 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -944,21 +944,15 @@ private_lane :create_pr_comment do |options|
end
end

private_lane :current_branch do
github_pr_branch_name = ENV['BRANCH_NAME'].to_s
github_ref_branch_name = ENV['GITHUB_REF'].to_s.sub('refs/heads/', '')
fastlane_branch_name = git_branch

branch_name = if !github_pr_branch_name.empty?
github_pr_branch_name
elsif !fastlane_branch_name.empty?
fastlane_branch_name
elsif !github_ref_branch_name.empty?
github_ref_branch_name
end

UI.important("Current branch: #{branch_name} 🕊️")
branch_name
lane :current_branch do
branch = if ENV['GITHUB_PR_NUM'].to_s.empty?
git_branch
else
sh("gh pr view #{ENV.fetch('GITHUB_PR_NUM')} --json headRefName -q .headRefName").strip
end

UI.important("Current branch: #{branch} 🕊️")
branch
end

private_lane :git_status do |options|
Expand Down

0 comments on commit 05d98a2

Please sign in to comment.