Skip to content

Commit

Permalink
Updated scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
semirp committed Feb 8, 2023
1 parent ed3ee28 commit 6b658f6
Show file tree
Hide file tree
Showing 8 changed files with 394 additions and 40 deletions.
38 changes: 0 additions & 38 deletions .github/workflows/android-appetize.yml

This file was deleted.

180 changes: 180 additions & 0 deletions .github/workflows/android-preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
name: Android Preview

on: pull_request

jobs:
android-distribute-to-appetize:
runs-on: ubuntu-latest
name: "Build and upload app to Appetize 🚀"
steps:

- name: Cancel previous jobs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}

- uses: actions/checkout@v3

- uses: ruby/setup-ruby@v1
with:
ruby-version: "2.6"
bundler-cache: true

- uses: actions/setup-ruby@v1
with:
ruby-version: '2.6'

- name: Install npm
run: |
npm config set legacy-peer-deps true install
- run: npm install --save slack-message-builder

- name: Install packages
run: |
yarn
- name: Distribute the React Native Android app on Appetize and upload to BrowserStack 🚀
run: bundle exec fastlane android preview
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
SOURCE_BRANCH: ${{ github.head_ref }}
APPETIZE_API_TOKEN: ${{ secrets.APPETIZE_API_TOKEN }}
BROWSERSTACK_USERNAME: ${{secrets.BROWSERSTACK_USERNAME}}
BROWSERSTACK_ACCESS_KEY: ${{secrets.BROWSERSTACK_ACCESS_KEY}}

- name: Save Browserstack ID
uses: actions/upload-artifact@v3
id: save_browserstack_id_step
with:
name: browserstack_id
path: /var/tmp/browserstack_id.txt
if-no-files-found: error

- uses: peter-evans/find-comment@v2
if: ${{ success() }}
id: find_comment
with:
issue-number: ${{ github.event.pull_request.number }}
body-includes: Appetize link

- uses: peter-evans/create-or-update-comment@v2
if: ${{ success() }}
with:
body: |
Appetize link: ${{ env.APPETIZE_APP_URL }}
edit-mode: replace
comment-id: ${{ steps.find_comment.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
token: ${{ secrets.GITHUB_TOKEN }}

- name: Create Slack Success Summary Report
if: ${{ success() && github.event.pull_request.base.ref == 'master' }}
run: |
node report-scripts/appetize-success-report-script.js createAppetizeSummaryReport ${{ github.head_ref || github.ref_name }} 'RN Android'
- name: Slack Success Notification
if: ${{ success() && github.event.pull_request.base.ref == 'master' }}
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
payload-file-path: '/var/tmp/appetize-success-link-summary.json'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}

- name: Create Slack Failure Summary Report
if: ${{ failure() && github.event.pull_request.base.ref == 'master' }}
run: |
node report-scripts/appetize-failure-report-script.js createAppetizeSummaryReport ${{ github.head_ref || github.ref_name }} 'RN Android'
- name: Slack Notification
if: ${{ failure() && github.event.pull_request.base.ref == 'master' }}
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
payload-file-path: '/var/tmp/appetize-failure-link-summary.json'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}

android-test-via-browserstack:
runs-on: ubuntu-latest
name: "Browserstack test"
needs: android-distribute-to-appetize
steps:
- name: Clone and launch Browserstack tests via Appium 🧪
run: |
git clone -b develop https://project_41483872_bot:[email protected]/primer-io/dx/mobile-appium-tests.git .
env:
GITLAB_TEMP_PATH: ${{ secrets.GITLAB_APPIUM_PULL_KEY }}

- name: Retrieve Browserstack ID
uses: actions/download-artifact@v3
with:
name: browserstack_id
path: /var/tmp

- uses: actions/checkout@v3

- uses: ruby/setup-ruby@v1
with:
ruby-version: "2.6"
bundler-cache: true

- uses: actions/setup-ruby@v1
with:
ruby-version: '2.6'

- name: Install npm
run: |
npm config set legacy-peer-deps true install
- run: npm install --save slack-message-builder

- name: Install packages
run: |
yarn
- name: Run Appium Test
env:
BROWSERSTACK_USERNAME: ${{secrets.BROWSERSTACK_USERNAME}}
BROWSERSTACK_ACCESS_KEY: ${{secrets.BROWSERSTACK_ACCESS_KEY}}
run: |
export BROWSERSTACK_APP_ID=$(cat /var/tmp/browserstack_id.txt)
npx wdio config/wdio.rn.android.bs.conf.js
- name: Create Slack Report
if: ${{ (success() || failure()) && github.event.pull_request.base.ref == 'master' }}
run: |
node report-script/slack-report-script.js createSlackReport 'RN Android'
- name: Post summary message to a Slack channel
if: ${{ (success() || failure()) && github.event.pull_request.base.ref == 'master' }}
id: slack
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
payload-file-path: '/var/tmp/slack-minimal_summary.json'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}

- name: Create Slack Failed Summary Report
if: ${{ failure() && github.event.pull_request.base.ref == 'master' }}
run: |
node report-script/slack-failed-report-script.js createSlackFailedSummaryReport ${{ steps.slack.outputs.thread_ts }}
env:
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}

- name: Post detailed summary to Slack channel thread
if: ${{ failure() && github.event.pull_request.base.ref == 'master' }}
id: slack_thread
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
payload-file-path: '/var/tmp/slack_failed_summary.json'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}

- name: Create and post Github summary
if: ${{ success() || failure() }}
run: |
node report-script/github-tests-summary-script.js createGithubSummaryReport
47 changes: 47 additions & 0 deletions .github/workflows/ios-appetize.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ jobs:
with:
cache: 'yarn'

- run: npm install --save slack-message-builder

- name: Cache pods
uses: actions/cache@v3
with:
Expand Down Expand Up @@ -89,10 +91,55 @@ jobs:
APPETIZE_API_TOKEN: ${{ secrets.APPETIZE_API_TOKEN }}
SOURCE_BRANCH: ${{ github.head_ref }}
PR_NUMBER: ${{ github.event.pull_request.number }}

- uses: peter-evans/find-comment@v2
if: ${{ success() }}
id: find_comment
with:
issue-number: ${{ github.event.pull_request.number }}
body-includes: Appetize link

- uses: peter-evans/create-or-update-comment@v2
if: ${{ success() }}
with:
body: |
Appetize link: ${{ env.APPETIZE_APP_URL }}
edit-mode: replace
comment-id: ${{ steps.find_comment.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
token: ${{ secrets.GITHUB_TOKEN }}

- name: Create Slack Success Summary Report
if: ${{ success() && github.event.pull_request.base.ref == 'master' }}
run: |
node Report\ Scripts/appetize-success-report-script.js createAppetizeSummaryReport ${{ github.head_ref || github.ref_name }} 'RN iOS'
- name: Slack Success Notification
if: ${{ success() && github.event.pull_request.base.ref == 'master' }}
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
payload-file-path: '/var/tmp/appetize-success-link-summary.json'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}

- name: Create Slack Failure Summary Report
if: ${{ failure() && github.event.pull_request.base.ref == 'master' }}
run: |
node Report\ Scripts/appetize-failure-report-script.js createAppetizeSummaryReport ${{ github.head_ref || github.ref_name }} 'RN iOS'
- name: Slack Notification
if: ${{ failure() && github.event.pull_request.base.ref == 'master' }}
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
payload-file-path: '/var/tmp/appetize-failure-link-summary.json'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}

- name: Save Simulator app
uses: actions/upload-artifact@v3
id: save_simulator_app_id_step
with:
name: PrimerSDK_Debug_Build
path: /var/tmp/PrimerSDK_Debug_Build.zip
if-no-files-found: error

41 changes: 40 additions & 1 deletion .github/workflows/ios-browserstack.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: iOS BS
name: iOS BrowserStack
on: pull_request
jobs:

Expand Down Expand Up @@ -56,6 +56,8 @@ jobs:
with:
cache: 'yarn'

- run: npm install --save slack-message-builder

- name: Cache pods
uses: actions/cache@v3
with:
Expand Down Expand Up @@ -138,3 +140,40 @@ jobs:
run: |
export BROWSERSTACK_APP_ID=$(cat /var/tmp/browserstack_id.txt)
npx wdio config/wdio.rn.ios.bs.conf.js
- name: Create Slack Report
if: ${{ (success() || failure()) && github.event.pull_request.base.ref == 'master' }}
run: |
node report-script/slack-report-script.js createSlackReport 'RN iOS'
- name: Post summary message to a Slack channel
if: ${{ (success() || failure()) && github.event.pull_request.base.ref == 'master' }}
id: slack
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
payload-file-path: '/var/tmp/slack-minimal_summary.json'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}

- name: Create Slack Failed Summary Report
if: ${{ failure() && github.event.pull_request.base.ref == 'master' }}
run: |
node report-script/slack-failed-report-script.js createSlackFailedSummaryReport ${{ steps.slack.outputs.thread_ts }}
env:
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}

- name: Post detailed summary to Slack channel thread
if: ${{ failure() && github.event.pull_request.base.ref == 'master' }}
id: slack_thread
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
payload-file-path: '/var/tmp/slack_failed_summary.json'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}

- name: Create and post Github summary
if: ${{ success() || failure() }}
run: |
node report-script/github-tests-summary-script.js createGithubSummaryReport
25 changes: 24 additions & 1 deletion fastlane/AndroidFastFile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ default_platform(:android)

platform :android do


def set_version_name (version_name)
path = '../example_0_70_6/android/app/build.gradle'
re = /versionName\s+\"(\S+)\"/
Expand Down Expand Up @@ -60,6 +59,13 @@ platform :android do

gradle(task: "clean assembleRelease", project_dir: 'example_0_70_6/android/')

upload_to_browserstack_app_automate(
browserstack_username: ENV["BROWSERSTACK_USERNAME"],
browserstack_access_key: ENV["BROWSERSTACK_ACCESS_KEY"]
)

save_browserstack_id(browserstack_id: ENV['BROWSERSTACK_APP_ID'])

sdk_version_name_source_branch = ENV['SOURCE_BRANCH']
pr_number = ENV['PR_NUMBER']

Expand All @@ -74,6 +80,23 @@ platform :android do
public_key: public_key,
note: version_name
)
update_deployment_url(lane_context[SharedValues::APPETIZE_APP_URL])
end


desc 'Store the Browserstack ID into a file'
private_lane :save_browserstack_id do |options|

browserstack_id_to_save = options[:browserstack_id]
browserstack_id_file = "/var/tmp/browserstack_id.txt"

UI.message("Saving #{browserstack_id_to_save} into #{browserstack_id_file}")

File.open(browserstack_id_file, 'w') { |file| file.write(options[:browserstack_id]) }

end

def update_deployment_url(pub_url)
sh("echo APPETIZE_APP_URL=#{pub_url} >> $GITHUB_ENV")
end
end
Loading

0 comments on commit 6b658f6

Please sign in to comment.