Skip to content
Open
Changes from 1 commit
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
dde6d53
feat(INFRA-2772): add automatic main version bump after release PR cr…
bsgrigorov Jul 15, 2025
8f5b198
self hosted
makemesteaks Jul 29, 2025
a1f7d18
test
makemesteaks Jul 29, 2025
2ead7cb
fail fast
makemesteaks Jul 29, 2025
5b810c9
remove ndk because its already in the runner
makemesteaks Jul 29, 2025
060107e
targets
Aug 4, 2025
d378d7d
fix-act
Aug 5, 2025
59141c3
feat: post validation bot to add a checklist in `feat` and `perf` PRs…
jvbriones Aug 6, 2025
727c028
ci: add RCA-needed label on RCA workflow (#95)
jvbriones Aug 6, 2025
b3b5adf
slimmer pipeline
makemesteaks Jul 30, 2025
ef89e45
avd changes
makemesteaks Aug 7, 2025
f5f175e
ci: adapt PR size job to add sizes label (#96)
jvbriones Aug 9, 2025
724c5f4
ci: adapt the post-merge-validation job to track progress in a sheet …
jvbriones Aug 14, 2025
bcf27ba
Adapt post validation script to detect if PRs have automated tests (#…
jvbriones Aug 18, 2025
75cfa50
feat(base branch): make it possible to define name of release PR base…
gauthierpetetin Aug 19, 2025
617b798
fix(checkout branch): decription was not correct (#102)
gauthierpetetin Aug 19, 2025
5da1540
feat: capture additional RCA fields ( repository + issue url ) (#103)
jake-perkins Aug 19, 2025
d13e55e
ci: adapt regex to detect snap tests changes (#104)
jvbriones Aug 21, 2025
95fbc50
ci: disable the google sheet updates for the testing tracker (#107)
jvbriones Aug 25, 2025
d15d786
INFRA-2867-Fix workflow inputs to allow branch name (#108)
XxdpavelxX Aug 26, 2025
d354252
feat(INFRA-2864): add remove rca gha (#109)
Qbandev Aug 27, 2025
03eade1
INFRA-2867-Added chore prefix to PR, await for create release, remove…
XxdpavelxX Aug 27, 2025
486f5d1
fix: stable sync secret (#113)
Qbandev Aug 28, 2025
914cbff
INFRA-2867: Skip version bump PR creation if already exists, commit i…
XxdpavelxX Aug 28, 2025
c35da38
add pod vendor to path
Aug 28, 2025
5a428da
ruby/gem troubleshooting
Aug 28, 2025
4364187
pod verify
Aug 28, 2025
93a7c6e
binstub
Aug 28, 2025
1c024c7
binstub
Aug 28, 2025
9a1f3b3
binstub
Aug 29, 2025
b622c5f
configs
Aug 29, 2025
c526726
supress partition list output
Aug 29, 2025
b39d2cf
chore(master): rename master branch into stable (#115)
gauthierpetetin Sep 2, 2025
3447281
ci
Sep 2, 2025
a345f7c
debugging
Sep 2, 2025
b532e7f
keystore debugs
Sep 2, 2025
4f03564
configs
Sep 2, 2025
ed3592d
compare fingerprints
Sep 2, 2025
51c3ae9
default-chain
Sep 2, 2025
4eec245
codesignign config
Sep 2, 2025
e95f53d
test ssl
makemesteaks Sep 3, 2025
6ac80cb
remove debugging
Sep 3, 2025
394f14c
keychain
Sep 3, 2025
ddac3ee
INFRA-2849: Made extension work with release/x.y.z branch syntax (#116)
XxdpavelxX Sep 3, 2025
450b8ec
ci: add flaky tests bot workflow (#114)
jvbriones Sep 3, 2025
fbaeb7a
ci: small fixes (#117)
jvbriones Sep 4, 2025
432e82a
INFRA-2911-Skip generating commits.csv for hotfixes (#118)
XxdpavelxX Sep 8, 2025
6090afa
INFRA-2911-Skip version bumping for hotfixes (#119)
XxdpavelxX Sep 9, 2025
5906de6
chore: retries (#122)
makemesteaks Sep 11, 2025
fb91d27
Revert "chore: retries (#122)"
makemesteaks Sep 11, 2025
cd05aec
ci: default to 1 day for lookback PRs for post validation (#124)
jvbriones Sep 15, 2025
8144a84
chore(branches): rename Version-vx.y.z branches into release/x.y.z (#…
gauthierpetetin Sep 15, 2025
9e5ee8b
feat(INFRA-2932): add retry to yarn commands self hosted (#126)
bsgrigorov Sep 17, 2025
2f1cdf9
add action to yarn v3 of setup-e2e-env
tommasini Sep 17, 2025
197371d
shell bash added
tommasini Sep 17, 2025
1d567b7
fix setup e2e env var w yarn v3
tommasini Sep 17, 2025
f1d2c36
chore: add retry to corepack step
alucardzom Sep 18, 2025
4880f7b
ci: fix failure conclusion (#127)
jvbriones Sep 19, 2025
722d146
remove yarnv3 changes for now
Sep 22, 2025
b891d84
Merge branch 'main' into self-hosted-runners-config
jake-perkins Sep 23, 2025
d5a5606
cfg
Sep 23, 2025
0580b8f
remove un-used secret
Sep 23, 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
fail fast
  • Loading branch information
makemesteaks committed Jul 29, 2025
commit 2ead7cbe8ef105275a86c875a7cf8be106b8d789
239 changes: 126 additions & 113 deletions .github/actions/setup-e2e-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,132 @@ runs:
- run: echo "Setup E2E Environment started"
shell: bash

## Android Setup (early for fail-fast) ##

# Set Android environment variables (self-hosted runner has SDK pre-installed)
- name: Set Android environment variables
if: ${{ inputs.platform == 'android' }}
run: |
echo "ANDROID_HOME=/opt/android-sdk" >> "$GITHUB_ENV"
echo "ANDROID_SDK_ROOT=/opt/android-sdk" >> "$GITHUB_ENV"
shell: bash

- name: Configure Android Signing Certificates
if: ${{ inputs.platform == 'android' && inputs.configure-keystores == 'true' }}
uses: MetaMask/github-tools/.github/actions/configure-keystore@e2e-env-actions
with:
aws-role-to-assume: ${{ inputs.keystore-role-to-assume }}
aws-region: 'us-east-2'
platform: 'android'
environment: ${{ inputs.environment }}

## JDK Setup
- name: Setup Java
if: ${{ inputs.platform == 'android' }}
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00
with:
java-version: ${{ inputs.jdk-version }}
distribution: ${{ inputs.jdk-distribution }}

- name: Install required emulator dependencies
if: ${{ inputs.platform == 'android' && runner.os == 'Linux' }}
run: |
sudo apt-get update
sudo apt-get install -y \
libpulse0 \
libglu1-mesa \
libnss3 \
libxss1

echo "✅ Linux dependencies installed successfully"
shell: bash

## Android SDK Setup

- name: Install Android SDK packages
if: ${{ inputs.platform == 'android' }}
run: |
echo "Accepting SDK licenses..."
printf 'y\n%.0s' {1..10} | "/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager" --licenses

echo "Installing Android SDK components..."
"/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager" --install \
"platform-tools" \
"platforms;android-${{ inputs.android-api-level }}" \
"build-tools;34.0.0" \
"emulator" \
"system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"

echo "Updating SDK packages..."
"/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager" --update

echo "✅ Android SDK packages installed successfully"
shell: bash

## NDK Setup

- name: Debug Android SDK Paths
if: ${{ inputs.platform == 'android' }}
run: |
echo "ANDROID_HOME: $ANDROID_HOME"
echo "ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
shell: bash

- name: Install Android NDK
if: ${{ inputs.platform == 'android' }}
run: |
"/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager" "ndk;${{ inputs.ndk-version }}"
shell: bash

- name: Add Android tools to PATH
if: ${{ inputs.platform == 'android' }}
run: |
echo "/opt/android-sdk/platform-tools" >> "$GITHUB_PATH"
echo "/opt/android-sdk/emulator" >> "$GITHUB_PATH"
echo "/opt/android-sdk/cmdline-tools/latest/bin" >> "$GITHUB_PATH"
shell: bash

- name: Add NDK related toolchains to PATH
if: ${{ inputs.platform == 'android' }}
run: |
NDK_TOOLCHAIN="/opt/android-sdk/ndk/${{ inputs.ndk-version }}/toolchains/llvm/prebuilt/linux-x86_64/bin"
echo "$NDK_TOOLCHAIN" >> "$GITHUB_PATH"
echo "/opt/android-sdk/ndk/${{ inputs.ndk-version }}" >> "$GITHUB_PATH"
shell: bash
Comment thread
cursor[bot] marked this conversation as resolved.

## Launch AVD

- name: Set ANDROID_AVD_HOME for downstream steps
if: ${{ inputs.platform == 'android'}}
shell: bash
run: |
echo "ANDROID_AVD_HOME=$HOME/.android/avd" >> "$GITHUB_ENV"
mkdir -p "$HOME/.android/avd"

- name: Create Android Virtual Device (AVD)
if: ${{ inputs.platform == 'android'}}
run: |
IMAGE="system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
echo "Creating AVD with image: $IMAGE"
echo "no" | "/opt/android-sdk/cmdline-tools/latest/bin/avdmanager" create avd \
--name "${{ inputs.android-avd-name }}" \
--package "$IMAGE" \
--device "${{ inputs.android-device }}"
shell: bash

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Android SDK Path Issues in CI

The setup-e2e-env action's Android setup has two issues:

  1. It inconsistently uses hardcoded /opt/android-sdk paths in sdkmanager and avdmanager commands, despite setting ANDROID_HOME and ANDROID_SDK_ROOT to the same value. This reduces flexibility and maintainability.
  2. It no longer adds essential Android SDK tool directories (e.g., platform-tools, emulator) to the system's PATH, which will cause downstream steps relying on commands like adb or emulator to fail.
Fix in Cursor Fix in Web

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: AVD Creation Hangs Due to Missing "No" Input

The AVD creation step no longer pipes "no" to avdmanager create avd. This can cause the command to hang in CI by prompting for a custom hardware profile, even with the --force flag.

Fix in Cursor Fix in Web


Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Android Setup Bugs: KVM Permissions Removed, Environment Variables Ignored

The Android setup in .github/actions/setup-e2e-env/action.yml introduces two bugs:

  1. The "Enable KVM group perms (Ubuntu only)" step, critical for Android emulator hardware acceleration on Linux self-hosted runners, was removed, potentially causing emulator failures or poor performance.
  2. ANDROID_HOME and ANDROID_SDK_ROOT environment variables are set but then ignored, with subsequent sdkmanager and avdmanager calls using hardcoded /opt/android-sdk paths, leading to inconsistency and reduced maintainability.
Locations (1)
Fix in Cursor Fix in Web

## iOS Platform Setup ##

- name: Configure iOS Signing Certificates
if: ${{ inputs.platform == 'ios' && inputs.configure-keystores == 'true' }}
uses: MetaMask/github-tools/.github/actions/configure-keystore@e2e-env-actions
with:
aws-role-to-assume: ${{ inputs.keystore-role-to-assume }}
aws-region: 'us-east-2'
platform: 'ios'
environment: ${{ inputs.environment }}

## Node.js & JavaScript Dependencies Setup ##

- name: Setup Node.js
uses: actions/setup-node@v4
with:
Expand Down Expand Up @@ -135,14 +261,6 @@ runs:
"$FOUNDRY_BIN/foundryup"

## IOS Setup ##
- name: Configure iOS Signing Certificates
if: ${{ inputs.platform == 'ios' && inputs.configure-keystores == 'true' }}
uses: MetaMask/github-tools/.github/actions/configure-keystore@e2e-env-actions
with:
aws-role-to-assume: ${{ inputs.keystore-role-to-assume }}
aws-region: 'us-east-2'
platform: 'ios'
environment: ${{ inputs.environment }}

## Ruby Setup & Cache Management
- name: Setup Ruby
Expand Down Expand Up @@ -213,108 +331,3 @@ runs:
if: ${{ inputs.platform == 'ios' }}
run: xcrun simctl list devices
shell: bash

## Android Setup ##

## JDK Setup
- name: Setup Java
if: ${{ inputs.platform == 'android' }}
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00
with:
java-version: ${{ inputs.jdk-version }}
distribution: ${{ inputs.jdk-distribution }}

- name: Configure Android Signing Certificates
if: ${{ inputs.platform == 'android' && inputs.configure-keystores == 'true' }}
uses: MetaMask/github-tools/.github/actions/configure-keystore@e2e-env-actions
with:
aws-role-to-assume: ${{ inputs.keystore-role-to-assume }}
aws-region: 'us-east-2'
platform: 'android'
environment: ${{ inputs.environment }}

## Android SDK Setup

- name: Install required emulator dependencies
if: ${{ inputs.platform == 'android' && runner.os == 'Linux' }}
run: |
sudo apt-get update
sudo apt-get install -y \
libpulse0 \
libglu1-mesa \
libnss3 \
libxss1

echo "✅ Linux dependencies installed successfully"
shell: bash

- name: Install Android SDK packages
if: ${{ inputs.platform == 'android' }}
run: |
echo "Accepting SDK licenses..."
printf 'y\n%.0s' {1..10} | "${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" --licenses

echo "Installing Android SDK components..."
"${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" --install \
"platform-tools" \
"platforms;android-${{ inputs.android-api-level }}" \
"build-tools;34.0.0" \
"emulator" \
"system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}" \

echo "Updating SDK packages..."
"${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" --update

echo "✅ Android SDK packages installed successfully"
shell: bash

## NDK Setup

- name: Debug Android SDK Paths
if: ${{ inputs.platform == 'android' }}
run: |
echo "ANDROID_HOME: $ANDROID_HOME"
echo "ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
shell: bash

- name: Install Android NDK
if: ${{ inputs.platform == 'android' }}
run: |
"$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "ndk;${{ inputs.ndk-version }}"
shell: bash

- name: Add Android tools to PATH
if: ${{ inputs.platform == 'android' }}
run: |
echo "$ANDROID_HOME/platform-tools" >> "$GITHUB_PATH"
echo "$ANDROID_HOME/emulator" >> "$GITHUB_PATH"
echo "$ANDROID_HOME/cmdline-tools/latest/bin" >> "$GITHUB_PATH"
shell: bash

- name: Add NDK related toolchains to PATH
if: ${{ inputs.platform == 'android' }}
run: |
NDK_TOOLCHAIN="$ANDROID_SDK_ROOT/ndk/${{ inputs.ndk-version }}/toolchains/llvm/prebuilt/linux-x86_64/bin"
echo "$NDK_TOOLCHAIN" >> "$GITHUB_PATH"
echo "$ANDROID_SDK_ROOT/ndk/${{ inputs.ndk-version }}" >> "$GITHUB_PATH"
shell: bash

## Launch AVD

- name: Set ANDROID_AVD_HOME for downstream steps
if: ${{ inputs.platform == 'android'}}
shell: bash
run: |
echo "ANDROID_AVD_HOME=$HOME/.android/avd" >> "$GITHUB_ENV"
mkdir -p "$HOME/.android/avd"

- name: Create Android Virtual Device (AVD)
if: ${{ inputs.platform == 'android'}}
run: |
IMAGE="system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
echo "Creating AVD with image: $IMAGE"
echo "no" | "${ANDROID_HOME}/cmdline-tools/latest/bin/avdmanager" create avd \
--name "${{ inputs.android-avd-name }}" \
--package "$IMAGE" \
--device "${{ inputs.android-device }}"
shell: bash
Loading