Skip to content

Commit

Permalink
Merge branch 'master' into integration-validator-uri-scheme-fix
Browse files Browse the repository at this point in the history
Fix for iOS integration validator. This fix will loop through each of the URI schemes while matching.
  • Loading branch information
NidhiDixit09 committed Jun 4, 2024
2 parents 56c92ff + 4800c88 commit f22249d
Show file tree
Hide file tree
Showing 226 changed files with 6,045 additions and 7,399 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/automation-trigger-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
BROWSERSTACK_USER: ${{ secrets.BROWSER_STACK_USER }}
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install the Apple certificate and provisioning profile
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
Expand Down Expand Up @@ -67,20 +67,20 @@ jobs:
response=$(curl -X POST https://api-cloud.browserstack.com/app-automate/upload -u "${{ secrets.BROWSER_STACK_USER }}:${{ secrets.BROWSER_STACK_KEY }}" -F "file=@DeepLinkDemo/IPA/DeepLinkDemo.ipa")
parsed=$(echo $response | jq ".app_url")
echo "::add-mask::$parsed"
echo "APP_URL=$parsed" >> "$GITHUB_ENV"
echo "BrowserStackIOSBuildKey=$parsed" >> "$GITHUB_ENV"
- name: Cheout Automation Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: BranchMetrics/qentelli-saas-sdk-testing-automation
token: ${{ secrets.BRANCHLET_ACCESS_TOKEN_PUBLIC }}
- name: Set up JDK 11
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
cache: maven
- name: Setup Node.js environment
uses: actions/setup-node@v3.6.0
uses: actions/setup-node@v4.0.1
- name: Build with Maven
id: build_maven
run: |
Expand Down
212 changes: 122 additions & 90 deletions .github/workflows/dependabot-merger.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Merge Dependabot PRs

on:
schedule:
- cron: "0 9 * * 1" # Run this workflow every Monday at 9:00
Expand All @@ -7,120 +8,151 @@ on:
jobs:
merge:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
with:
ref: master

- name: Authenticate GitHub CLI
run: echo "${{ secrets.DEPENDABOT_MERGER_PAT }}" | gh auth login --with-token

- name: Set Git user identity
steps:
- name: Get current on-call
id: on-call
run: |
git config user.email "[email protected]"
git config user.name "Dependabot Merger Bot"
now=$(date -u +%Y-%m-%dT%H:%M:%SZ)
end_time=$(date -u -d '+24 hour' +%Y-%m-%dT%H:%M:%SZ)
- name: Get current date and time
id: datetime
run: echo "date=$(date +'%m-%d-%Y-%H-%M')" >> $GITHUB_OUTPUT
oncall=$(curl --request GET \
--url "https://api.pagerduty.com/oncalls?since=$now&until=$end_time&schedule_ids[]=PQLHTOP" \
--header 'Accept: application/vnd.pagerduty+json;version=2' \
--header "Authorization: Token token=${{ secrets.PAGERDUTY_TOKEN }}" \
--header 'Content-Type: application/json' )
- name: Create new branch based on date and time
run: |
NEW_BRANCH="dependabot-test-${{ steps.datetime.outputs.date }}"
git checkout -b $NEW_BRANCH
git push origin $NEW_BRANCH
- name: Get list of PRs from dependabot
id: pr_list
run: |
PR_LIST=$(gh pr list --json number,author,headRefName --jq '.[] | select( .author.is_bot == true and .author.login == "app/dependabot" ) | "\(.number) \(.headRefName)"')
PR_LIST=$(echo "$PR_LIST" | tr -d '\r')
if [ -z "$PR_LIST" ]; then
echo "No PRs from dependabot found."
exit 0
fi
engineer_name=$(echo "$oncall" | jq -r '.oncalls[0].user.summary')
PR_COUNT=$(echo "$PR_LIST" | wc -l)
echo "$PR_COUNT PR's to be merged."
declare -A engineer_to_slackid
engineer_to_slackid=(
["Nipun Singh"]="U02AMC70R6E"
["Jagadeesh Karicherla"]="U038BDE0XUZ"
["Gabe De Luna"]="U02MDA0PHK5"
["Ernest Cho"]="UCV77QDSL"
["Nidhi Dixit"]="U02GDFBP88N"
)
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "prs<<$EOF" >> $GITHUB_OUTPUT
echo "$PR_LIST" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
slack_id=${engineer_to_slackid["$engineer_name"]}
echo "oncall_slack_id=$slack_id" >> $GITHUB_OUTPUT
- name: Merge PRs into new branch
run: |
NEW_BRANCH="dependabot-test-${{ steps.datetime.outputs.date }}"
git checkout $NEW_BRANCH
PR_LIST="${{ steps.pr_list.outputs.prs }}"
while IFS= read -r line; do
IFS=' ' read -r PR_NUMBER BRANCH_NAME <<< "$line"
echo "Merging PR #$PR_NUMBER from branch $BRANCH_NAME into $NEW_BRANCH..."
git fetch origin $BRANCH_NAME
git merge --no-commit --allow-unrelated-histories --strategy-option=theirs origin/$BRANCH_NAME
echo "Pushing changes to $NEW_BRANCH..."
git commit -m "Merged PR #$PR_NUMBER into $NEW_BRANCH"
git push origin $NEW_BRANCH
done <<< "$PR_LIST"
- name: Create PR
uses: actions/github-script@v7
id: create-pr
with:
script: |
const uniqueBranchName = 'dependabot-combined-prs-' + Date.now().toString();
const pulls = await github.paginate('GET /repos/:owner/:repo/pulls', {
owner: context.repo.owner,
repo: context.repo.repo
});
let branchesAndPRStrings = [];
let baseBranch = null;
let baseBranchSHA = null;
for (const pull of pulls) {
const branch = pull['head']['ref'];
if (branch.startsWith('dependabot/')) {
console.log('Branch matched prefix. Adding to array: ' + branch);
const prString = '#' + pull['number'] + ' ' + pull['title'];
branchesAndPRStrings.push({ branch, prString });
baseBranch = pull['base']['ref'];
baseBranchSHA = pull['base']['sha'];
}
}
if (branchesAndPRStrings.length == 0) {
core.setFailed('There are no open dependabot PRs.');
return;
}
try {
await github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: 'refs/heads/' + uniqueBranchName,
sha: baseBranchSHA
});
} catch (error) {
console.log(error);
core.setFailed('Failed to create combined branch');
return;
}
- name: Merge process status
run: |
echo "Merging process completed successfully!"
echo "New branch name: dependabot-test-${{ steps.datetime.outputs.date }}"
let combinedPRs = [];
let mergeFailedPRs = [];
for(const { branch, prString } of branchesAndPRStrings) {
try {
await github.rest.repos.merge({
owner: context.repo.owner,
repo: context.repo.repo,
base: uniqueBranchName,
head: branch,
});
console.log('Merged branch ' + branch);
combinedPRs.push(prString);
} catch (error) {
console.log('Failed to merge branch ' + branch);
mergeFailedPRs.push(prString);
}
}
- name: Generate PR links
id: pr_links
run: |
PR_LIST="${{ steps.pr_list.outputs.prs }}"
PR_LINKS=""
while IFS= read -r line; do
IFS=' ' read -r PR_NUMBER BRANCH_NAME <<< "$line"
PR_URL="https://github.com/${GITHUB_REPOSITORY}/pull/$PR_NUMBER"
PR_LINKS+="\n• <$PR_URL|#${PR_NUMBER}: ${BRANCH_NAME}>"
done <<< "$PR_LIST"
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "pr_links<<$EOF" >> $GITHUB_OUTPUT
echo "$PR_LINKS" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
console.log('Creating combined PR');
const combinedPRsString = combinedPRs.join('\n');
let body = '✅ This PR was created by the Merge Dependabot PRs action by combining the following dependabot PRs:\n' + combinedPRsString;
if(mergeFailedPRs.length > 0) {
const mergeFailedPRsString = mergeFailedPRs.join('\n');
body += '\n\n⚠️ The following dependabot PRs were left out due to merge conflicts:\n' + mergeFailedPRsString
}
let response = await github.rest.pulls.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: 'Combined Dependabot PR',
head: uniqueBranchName,
base: baseBranch,
body: body
});
console.log('Created combined PR: ' + response.data.html_url);
core.setOutput('pr_url', response.data.html_url);
core.setOutput('pr_list', combinedPRsString);
- name: Post to a Slack channel
uses: slackapi/[email protected]
id: slack
with:
channel-id: "C03RTLRKJQP"
payload: |
{
"blocks": [
"text": "iOS: New Dependabot PR Awaiting Review",
"blocks": [
{
"type": "header",
"text": {
"type": "header",
"text": {
"type": "plain_text",
"text": "⚡️ New iOS Dependabot Testing Branch",
"text":"📱🔧 iOS: New Dependabot PR Awaiting Review",
"emoji": true
}
}
},
{
"type": "section",
"text": {
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Included PRs:*${{ steps.pr_links.outputs.pr_links }}"
}
"text": "*Included PRs:*\n${{ toJSON(steps.create-pr.outputs.pr_list) }}\n\n\nCurrent On-Call: *<${{ steps.on-call.outputs.oncall_slack_id }}>*"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Checkout Test Branch",
"emoji": true
},
"value": "branch-button",
"url": "https://github.com/${{ github.repository }}/tree/dependabot-test-${{ steps.datetime.outputs.date }}",
"action_id": "link-action"
}
]
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": ":github-pull-request-open: View Combined PR",
"emoji": true
},
"value": "pr-button",
"url": "${{ steps.create-pr.outputs.pr_url }}",
"action_id": "link-action",
"style": "primary"
}
]
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Ruby 2.7
uses: ruby/setup-ruby@v1
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/post-release-qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install pod, build project and run tests
run: |
./scripts/getSimulator
Expand All @@ -20,7 +20,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Run carthage command, build project and run tests
run: |
./scripts/getSimulator
Expand All @@ -32,7 +32,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: build project and run tests
run: |
./scripts/getSimulator
Expand All @@ -43,7 +43,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install pod, build project and run tests
run: |
./scripts/getSimulator
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/pre-release-qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install pod, build project and run tests
run: |
echo "branch=${{ github.ref }}" >> $GITHUB_OUTPUT
Expand All @@ -20,7 +20,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Create Cart File, run carthage command, build project and run tests
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
Expand All @@ -36,7 +36,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: build project and run tests
run: |
./scripts/getSimulator
Expand All @@ -47,7 +47,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: build xcframework, then build project and run tests
run: |
./scripts/getSimulator
Expand All @@ -59,7 +59,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: build static xcframework, then build project and run tests
run: |
./scripts/getSimulator
Expand All @@ -71,7 +71,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install pod, build project and run tests
run: |
./scripts/getSimulator
Expand All @@ -83,7 +83,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Verify Integration using Carthage for tvOS
run: |
./scripts/getSimulator
Expand All @@ -94,7 +94,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: build xcframework, then build project and run tests
run: |
./scripts/getSimulator
Expand Down
Loading

0 comments on commit f22249d

Please sign in to comment.