Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 7.38.1 #13079

Merged
merged 120 commits into from
Jan 28, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
9b2bcd5
test: add e2e test for security alert api (#12288)
vinistevam Nov 29, 2024
a6e7175
fix: add source when local PPOM fails (#12460)
vinistevam Nov 29, 2024
f0f851f
fix: Resolve errors, omissions, duplicates in Engine types `Global{Ac…
MajorLift Dec 1, 2024
1a83b1f
fix: Remove stateless "non-controllers" from background engine state …
MajorLift Dec 1, 2024
b221d14
fix(431-2): active network icon has too much margin and adding option…
vinnyhoward Dec 2, 2024
a8c0783
feat: implement remote feature flag controller (#12427)
joaoloureirop Dec 2, 2024
46b554b
feat: Add Bitcoin accounts (Flask Only) (#12294)
owencraston Dec 2, 2024
44cbe2c
ci: disable security e2e tests (#12513)
cortisiko Dec 3, 2024
d9e9381
fix: 10967 User able to add Ledger account with existing account name…
dawnseeker8 Dec 3, 2024
db3b31e
test: address regression pipeline slow down (#12512)
cortisiko Dec 3, 2024
57da0a9
feat: upgrade profile-sync-controller to 1.0.0 (#12459)
Prithpal-Sooriya Dec 3, 2024
b2f9eec
feat: multichain detect tokens feat (#12417)
salimtb Dec 3, 2024
1a0dc3b
chore: Address derived from SRP (#12528)
tommasini Dec 3, 2024
a97e2ef
test: Move files to Onboarding folder (#12511)
SamuelSalas Dec 3, 2024
d4737f0
feat: cicd e2e label requirements + pr automation (#12243)
jake-perkins Dec 3, 2024
dc310af
chore: Add eth hd keyring and key tree to decrease unlock time (#12428)
tommasini Dec 3, 2024
8bcf0a7
fix: abstract out circular dependencies between engine and networks u…
tommasini Dec 4, 2024
e39e54b
chore: Decrease hot and cold start app to wallet view time (#12543)
tommasini Dec 4, 2024
0bd6f46
chore: change ownership of profile sync from notifications to identit…
mathieuartu Dec 4, 2024
4ead541
feat: Support gas fee flows in swaps (#12495)
OGPoyraz Dec 4, 2024
734e389
chore: fail status when on no labels for retro-label changes (#12554)
jake-perkins Dec 4, 2024
e33e278
test: Move files to Wallet folder (#12531)
SamuelSalas Dec 4, 2024
5680027
test: Create e2e tag for multi chain (#12558)
cortisiko Dec 4, 2024
1a8b40f
feat: v7.36.0 (#12314)
sethkfman Dec 4, 2024
a93ef10
fix: Move `AssetPollingProvider` from Root to Nav/Main/index.js (#12562)
gambinish Dec 4, 2024
a907380
test: remove redundent tests in quarantine folder (#12556)
cortisiko Dec 5, 2024
c07f8e7
chore: use getShares contract method from stake-sdk for unstake all f…
nickewansmith Dec 5, 2024
93c3823
chore: Bump Snaps packages (#12551)
FrederikBolding Dec 5, 2024
32843a4
fix: circular dependencies engine-network-handleNetworkSwitch (#12373)
tommasini Dec 5, 2024
7db2099
fix: fix NFTs disappearing after killing app (#12529)
sahar-fehri Dec 5, 2024
f771782
fix: update input handling in useInputHandler to support BACK key fun…
amitabh94 Dec 5, 2024
16f3df4
chore: cicd e2e hardening (#12563)
jake-perkins Dec 5, 2024
43ae0a1
fix(12527): sdk connection with unknown url causes a bug (#12566)
EtherWizard33 Dec 5, 2024
eefb428
feat: add aggregated portfolio balance cross chains (#12505)
sahar-fehri Dec 5, 2024
c7af597
test: move remaining modal pages and selectors to their respective fo…
SamuelSalas Dec 5, 2024
edbef4d
chore: bump react-native-linear-gradient library (#12553)
tommasini Dec 5, 2024
d1b476c
test: fix mock server (#12536)
vinistevam Dec 5, 2024
011560f
chore: Update accounts packages (#12555)
owencraston Dec 5, 2024
fcb68ad
chore: transfer ownership of auth & profile sync E2E from notificatio…
mathieuartu Dec 5, 2024
dc52797
fix: add resolution for express to fix failing audit on path-to-regex…
Prithpal-Sooriya Dec 6, 2024
ec9e594
refactor: remove global network from transaction controller (#12321)
matthewwalsh0 Dec 6, 2024
81b1414
test(3615): add new e2e test for initial dapp connection and non perm…
EtherWizard33 Dec 6, 2024
33c1784
fix: Jest timer error in unit test (#12230)
NicolasMassart Dec 6, 2024
5542ba5
chore: Add option to skip pod install setup step (#12574)
Gudahtt Dec 6, 2024
f4f2e15
chore: Stop suppressing pod install failures (#12485)
Gudahtt Dec 6, 2024
4f11c6c
feat: migrate Base network RPC from https://mainnet.base.org to base-…
salimtb Dec 6, 2024
a75153e
fix: disable mock poc test (#12598)
chrisleewilcox Dec 6, 2024
b19eea6
fix: circular deps between engine, network utils tx utils (#12376)
tommasini Dec 7, 2024
0ea88d6
feat(ci): Expo (#12244)
andrepimenta Dec 9, 2024
3dcd114
chore: bump `@metamask/{preferences,assets}-controllers` (#12579)
cryptodev-2s Dec 9, 2024
bf126d0
chore: bump {gas-fee,network,selected-network,notification-services,p…
cryptodev-2s Dec 9, 2024
2adeecd
chore(deps): Bump `@metamask/composable-controller` from `^3.0.0` to …
MajorLift Dec 9, 2024
d2ad6fd
docs: Update README.md with new expo instructions (#12617)
andrepimenta Dec 9, 2024
65e28fc
chore: Chore/12435 mvp handle engine does not exist (#12538)
Cal-L Dec 9, 2024
9d63e34
chore: update user storage E2E framework (#12609)
mathieuartu Dec 10, 2024
8ad0072
chore: bump {profile-sync,notification-services}-controller (#12615)
cryptodev-2s Dec 10, 2024
0f46383
chore: update bug template to include feature branches (#12623)
jvbriones Dec 10, 2024
800d116
feat: multi chain asset list (#12431)
vinnyhoward Dec 10, 2024
da4021c
fix: fix flaky test (#12626)
salimtb Dec 10, 2024
54e0a8a
fix: e2e regression gas api (#12607)
vinistevam Dec 10, 2024
226107b
fix: hide tokens without balance for multichain (#12630)
vinnyhoward Dec 11, 2024
259faa3
feat: activate portfolio view (#12507)
salimtb Dec 11, 2024
2d17939
feat: upgrade transaction controller to get incoming transactions usi…
matthewwalsh0 Dec 11, 2024
0b676de
feat: Hide the smart transaction status page if we return a txHash as…
dan437 Dec 11, 2024
3627a43
build: Add --device flag to yarn start:android (#12645)
andrepimenta Dec 11, 2024
427415c
refactor: de-anonymize insensitive properties of swaps events (#12532)
bfullam Dec 11, 2024
d49e8b6
fix: fix native tokens filter when all networks is selected (#12637)
sahar-fehri Dec 11, 2024
963d2c4
test(3615): additional e2e scenarios editing permissions and non perm…
EtherWizard33 Dec 12, 2024
c1c2e79
feat: enable ledger clear signing feature (#12537)
dawnseeker8 Dec 12, 2024
2f0cc61
fix: fix network selector (#12641)
sahar-fehri Dec 12, 2024
caae9fa
feat: adding basic page for typed signatures V3, V4 (#12506)
jpuri Dec 12, 2024
5972b5b
fix: add new translations (#12624)
sahar-fehri Dec 12, 2024
7e40e3e
fix: fix swaps button on asset overview page for multichain feature (…
sahar-fehri Dec 12, 2024
7e52ed6
fix: fix token details navigation (#12659)
sahar-fehri Dec 12, 2024
715476c
feat: 7.37.0 (#12490)
github-actions[bot] Dec 12, 2024
48adca9
fix: disable flaky tests on incoming-transactions.spec (#12663)
chrisleewilcox Dec 12, 2024
5201d39
chore: Additional e2e test to support `PortfolioView` (#12602)
gambinish Dec 12, 2024
ea18201
New Crowdin translations by Github Action (#12338)
metamaskbot Dec 12, 2024
dbdcf20
bump semvar version to 7.38.0 && build version to 1514
metamaskbot Dec 12, 2024
62b4d92
chore: chore/7.38.0-Changelog (#12672)
github-actions[bot] Dec 13, 2024
17c1611
chore(runway): cherry-pick chore(ramp): upgrade sdk to 1.28.8 (#12699)
runway-github[bot] Dec 13, 2024
2e566df
chore(runway): cherry-pick fix: replace legacy eth-json-rpc deps (#12…
runway-github[bot] Dec 13, 2024
e6e4c81
chore: cherry pick 82c500f (#12701)
sethkfman Dec 13, 2024
4ed3ff3
Bump version number to 1516
metamaskbot Dec 13, 2024
b82cb0f
chore: cherry-pick #12658 (#12721)
github-actions[bot] Dec 17, 2024
944ab36
Bump version number to 1521
metamaskbot Dec 17, 2024
53918db
fix: fix swap flow (#12788) (#12797)
salimtb Dec 20, 2024
f15d1e5
chore(runway): cherry-pick chore: bump nanoid package to 3.3.8 (#12819)
runway-github[bot] Dec 20, 2024
25fbf35
chore(runway): cherry-pick fix: use correct import for MetricsEventBu…
runway-github[bot] Dec 20, 2024
029c49c
fix: mark transactions as failed for cancelled / unknown smart transa…
smilingkylan Dec 20, 2024
1ce1441
Bump version number to 1522
metamaskbot Dec 20, 2024
79019b7
chore(runway): cherry-pick fix: optimize display swap button (#12841)
runway-github[bot] Jan 7, 2025
47ebd7e
Bump version number to 1523
metamaskbot Jan 7, 2025
cfdb096
updated changelog
sethkfman Jan 7, 2025
911ef35
fix: fix asset options sheet (#12859) (#12919)
sahar-fehri Jan 11, 2025
871b706
fix (cherrypick): invoke_snap RPC requests inside the built-in browse…
Prithpal-Sooriya Jan 11, 2025
56982d6
chore(runway): cherry-pick fix: add nativeAsset key to staked ETH ass…
runway-github[bot] Jan 13, 2025
4ae9c70
Bump version number to 1524
metamaskbot Jan 13, 2025
1a91603
chore: Cherry pick `12958` into `release/7.38.0` (#12962)
OGPoyraz Jan 13, 2025
e98e7b7
chore(runway): cherry-pick fix: Only aggregate PortfolioBalance if on…
runway-github[bot] Jan 14, 2025
f3dc6d9
chore(cherry-pick) fix: ensure StakingBalance is shown or hidden appr…
nickewansmith Jan 15, 2025
c4180b9
chore(cherry-pick) fix: enable earn button navigation on unsupported …
amitabh94 Jan 15, 2025
c4af1f5
chore(runway): cherry-pick fix: Fix `send` flow deeplinks (#13014)
runway-github[bot] Jan 15, 2025
2edb5fb
Bump version number to 1525
metamaskbot Jan 15, 2025
dbe488a
chore : Cherry pick `12965` (#13015)
OGPoyraz Jan 16, 2025
5e20a6d
chore(runway): cherry-pick fix: Fix disappearing security alert respo…
runway-github[bot] Jan 16, 2025
82b9653
chore(runway): cherry-pick fix: Bump artifact upload and download ver…
runway-github[bot] Jan 16, 2025
f4f7c79
chore(runway): cherry-pick chore: Scope PortfolioView feature flag to…
runway-github[bot] Jan 16, 2025
11f5d6b
Bump version number to 1528
metamaskbot Jan 16, 2025
dba4661
bump semvar version to 7.38.1 && build version to 1533
metamaskbot Jan 20, 2025
210fd1d
fix: remove expo changes (#13067)
sethkfman Jan 20, 2025
e921a15
sync with stable
metamaskbot Jan 23, 2025
213cc1b
update variable
metamaskbot Jan 23, 2025
879e975
ignore audit temp for stable merge
metamaskbot Jan 24, 2025
016bc8d
lint fix
metamaskbot Jan 24, 2025
6d3f849
CI trigger
metamaskbot Jan 27, 2025
dc852d0
fix expo issues, audit, linting
metamaskbot Jan 28, 2025
4aae18d
updated lint
metamaskbot Jan 28, 2025
5a88ef6
dedupe
metamaskbot Jan 28, 2025
12f9364
remove unused audit
metamaskbot Jan 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: cicd e2e label requirements + pr automation (#12243)
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR does a few things
1. Automatically set new PRs targeting main to "draft" state.
2. Enforce the E2E Bitrise Status Check on lifecycle on incoming PRs
which will essentially enforce that the PR has 1 of the two labels 'Run
Smoke E2E' or 'No E2E Smoke Needed'


<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
4. What is the improvement/solution?
-->

With this change we're looking to improve the posture on our PR
lifecycle with auto drafts and enforce a higher standard for incoming
changes towards or E2E testing posture.

## **Related issues**

[Fixes:]

#11747

## **Manual testing steps**

UC1 : Nether E2E Label is set
->
https://github.com/MetaMask/metamask-mobile/actions/runs/11826040868/job/32951145968?pr=12243
    Expected : Not Mergeable

UC2 : docs PR

Should run: false, Reason: The pull request is documentation related.
Skipping Bitrise status check. due to the following reason: The pull
request is documentation related.
Created 'Bitrise E2E Status' check with skipped status for commit
dea08a9

https://github.com/MetaMask/metamask-mobile/actions/runs/11826187817/job/32951608300?pr=12243

Expected: Mergeable

UC3 : No E2E Smoke Needed Label is set

Anti label: true
Should run: false, Reason: The pull request has the anti-label.
Skipping Bitrise status check. due to the following reason: The pull
request has the anti-label.
Created 'Bitrise E2E Status' check with skipped status for commit
dea08a9[22]

https://github.com/MetaMask/metamask-mobile/actions/runs/11826234735/job/32951749305?pr=12243

Expected Mergeable


UC4: Smoke E2E Label is set

Should run: true, Reason: The smoke test label is present.
Starting Bitrise build for commit
dea08a9


## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

N/A CICD Changes only

### **After**

<!-- [screenshots/recordings] -->

N/A CICD Changes only

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

---------

Co-authored-by: Cal Leung <cal.leung@consensys.net>
  • Loading branch information
jake-perkins and Cal-L authored Dec 3, 2024
commit d4737f0f280193d132458dd630ecad03e56a9d5d
80 changes: 74 additions & 6 deletions .github/scripts/bitrise/run-bitrise-e2e-check.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,33 @@ main().catch((error: Error): void => {
process.exit(1);
});

// Determine whether E2E should run and provide the associated reason
function shouldRunBitriseE2E(antiLabel: boolean, hasSmokeTestLabel: boolean, isDocs: boolean, isFork: boolean, isMergeQueue: boolean): [boolean, string] {

const conditions = [
{condition: hasSmokeTestLabel, message: "The smoke test label is present.", shouldRun: true},
{condition: isFork, message: "The pull request is from a fork.", shouldRun: false},
{condition: isDocs, message: "The pull request is documentation related.", shouldRun: false},
{condition: isMergeQueue, message: "The pull request is part of a merge queue.", shouldRun: false},
{condition: antiLabel, message: "The pull request has the anti-label.", shouldRun: false}
];

// Iterate through conditions to determine action
for (const {condition, message, shouldRun} of conditions) {
if (condition) {
return [shouldRun, message];
}
}

// Default case if no conditions met
return [false, "Unexpected scenario or no relevant labels found."];
}


async function main(): Promise<void> {
const githubToken = process.env.GITHUB_TOKEN;
const e2eLabel = process.env.E2E_LABEL;
const antiLabel = process.env.NO_E2E_LABEL;
const e2ePipeline = process.env.E2E_PIPELINE;
const workflowName = process.env.WORKFLOW_NAME;
const triggerAction = context.payload.action as PullRequestTriggerType;
Expand All @@ -42,6 +66,17 @@ async function main(): Promise<void> {
process.exit(1);
}

if (!antiLabel) {
core.setFailed('NO_E2E_LABEL not found');
process.exit(1);
}

// Logging for Pipeline debugging
console.log(`Trigger action: ${triggerAction}`);
console.log(`event: ${context.eventName}`);
console.log(`pullRequestNumber: ${pullRequestNumber}`);


const octokit: InstanceType<typeof GitHub> = getOctokit(githubToken);

const { data: prData } = await octokit.rest.pulls.get({
Expand All @@ -50,30 +85,55 @@ async function main(): Promise<void> {
pull_number: pullRequestNumber,
});

const docs = prData.title.startsWith("docs:");

// Get the latest commit hash
const latestCommitHash = prData.head.sha;

// Check if the e2e smoke label is applied
// Grab flags and labels
const labels = prData.labels;
const hasSmokeTestLabel = labels.some((label) => label.name === e2eLabel);
const hasAntiLabel = labels.some((label) => label.name === antiLabel);
const fork = context.payload.pull_request?.head.repo.fork || false;
const mergeQueue = (context.eventName === 'merge_group')


console.log(`Docs: ${docs}`);
console.log(`Fork: ${fork}`);
console.log(`Merge Queue: ${mergeQueue}`);
console.log(`Has smoke test label: ${hasSmokeTestLabel}`);
console.log(`Anti label: ${hasAntiLabel}`);

// Pass check since e2e smoke label is not applied
if (!hasSmokeTestLabel) {

// One of these two labels must exist if not we bomb out
if (!hasSmokeTestLabel && !hasAntiLabel) {
core.setFailed(
`At least 1 E2E Label must be Applied either ${e2eLabel} or ${antiLabel}`,
);
process.exit(1);
}

const [shouldRun, reason] = shouldRunBitriseE2E(hasAntiLabel, hasSmokeTestLabel, docs, fork, mergeQueue);
console.log(`Should run: ${shouldRun}, Reason: ${reason}`);


if (!shouldRun) {
console.log(
`"${e2eLabel}" label not applied. Skipping Bitrise status check.`,
`Skipping Bitrise status check. due to the following reason: ${reason}`,
);

// Post success status (skipped)
const createStatusCheckResponse = await octokit.rest.checks.create({
owner,
repo,
name: statusCheckName,
head_sha: latestCommitHash,
status: StatusCheckStatusType.Completed,
conclusion: CompletedConclusionType.Success,
conclusion: CompletedConclusionType.Success,
started_at: new Date().toISOString(),
output: {
title: statusCheckTitle,
summary: 'Skip run since no E2E smoke label is applied',
summary: `Skip run since ${reason}`,
},
});

Expand All @@ -95,6 +155,8 @@ async function main(): Promise<void> {
triggerAction === PullRequestTriggerType.Labeled &&
context.payload?.label?.name === e2eLabel
) {

console.log(`Starting Bitrise build for commit ${latestCommitHash}`);
// Configure Bitrise configuration for API call
const data = {
build_params: {
Expand Down Expand Up @@ -222,6 +284,8 @@ async function main(): Promise<void> {
}

// Post pending status
console.log(`Posting pending status for commit ${latestCommitHash}`);

const createStatusCheckResponse = await octokit.rest.checks.create({
owner,
repo,
Expand Down Expand Up @@ -256,6 +320,8 @@ async function main(): Promise<void> {
const lastCommentPage = Math.ceil(
numberOfTotalComments / numberOfCommentsToCheck,
);


const { data: latestCommentBatch } = await octokit.rest.issues.listComments({
owner,
repo,
Expand Down Expand Up @@ -287,6 +353,8 @@ async function main(): Promise<void> {

// Bitrise comment doesn't exist, post fail status
if (!bitriseComment) {

console.log(`Bitrise comment not detected for commit ${latestCommitHash}`);
// Post fail status
const createStatusCheckResponse = await octokit.rest.checks.create({
owner,
Expand Down
39 changes: 39 additions & 0 deletions .github/workflows/auto-draft-prs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Auto Draft

on:
pull_request:
types: [opened]
branches:
- main

permissions:
pull-requests: write
contents: read
issues: write

jobs:
process_pr:
runs-on: ubuntu-latest
steps:
- name: Convert PR to Draft and Add Label
uses: actions/github-script@v6
with:
script: |
// Convert PR to draft
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
draft: true
});

// Check if the PR title includes "docs:" or if it's from a fork
if (context.payload.pull_request.title.includes('docs:') || context.payload.pull_request.head.repo.fork) {
// Add label "No E2E Smoke Needed"
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
labels: ['No E2E Smoke Needed']
});
}
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -323,4 +323,4 @@ jobs:
else
echo "All jobs passed step skipped. Block PR."
exit 1
fi
fi
20 changes: 3 additions & 17 deletions .github/workflows/run-bitrise-e2e-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,18 @@ on:
types: [edited, deleted]
pull_request:
types: [opened, reopened, labeled, unlabeled, synchronize]
merge_group: # Trigger on merge queue events to satisfy the branch protection rules
types: [checks_requested]

env:
E2E_LABEL: 'Run Smoke E2E'
NO_E2E_LABEL: 'No E2E Smoke Needed'
E2E_PIPELINE: 'pr_smoke_e2e_pipeline'
WORKFLOW_NAME: 'run-bitrise-e2e-check'

jobs:
is-fork-pull-request:
name: Determine pull request source
if: ${{ github.event.issue.pull_request || github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
outputs:
IS_FORK: ${{ steps.is-fork.outputs.IS_FORK }}
steps:
- uses: actions/checkout@v3
- name: Determine whether this PR is from a fork
id: is-fork
run: echo "IS_FORK=$(gh pr view --json isCrossRepository --jq '.isCrossRepository' "${PR_NUMBER}" )" >> "$GITHUB_OUTPUT"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.number || github.event.issue.number }}

run-bitrise-e2e-check:
needs: is-fork-pull-request
runs-on: ubuntu-latest
if: ${{ needs.is-fork-pull-request.outputs.IS_FORK == 'false' }}
permissions:
pull-requests: write
contents: write
Expand Down
Loading