Skip to content

Commit 4dd7c9f

Browse files
authored
Merge pull request #1 from MetaMask/migration/initial-import
Import consensys-vertical-apps repo into MetaMask org
2 parents 5fb53e9 + 95ed0b0 commit 4dd7c9f

File tree

7 files changed

+227
-1
lines changed

7 files changed

+227
-1
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @MetaMask/SRE @MetaMask/devsecops

.github/workflows/release.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Build and Push to GHCR
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
tags:
8+
- 'v*.*.*'
9+
10+
jobs:
11+
build-and-push:
12+
runs-on: ubuntu-latest
13+
permissions:
14+
contents: read
15+
packages: write
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Log in to GHCR
22+
uses: docker/login-action@v3
23+
with:
24+
registry: ghcr.io
25+
username: ${{ github.actor }}
26+
password: ${{ secrets.GITHUB_TOKEN }}
27+
28+
- name: Extract metadata
29+
id: meta
30+
uses: docker/metadata-action@v5
31+
with:
32+
images: ghcr.io/MetaMask/metamask-extension-e2e-image
33+
tags: |
34+
type=ref,event=branch
35+
type=ref,event=tag
36+
type=sha
37+
labels: |
38+
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
39+
org.opencontainers.image.revision=${{ github.sha }}
40+
41+
- name: Build and push Docker image
42+
uses: docker/build-push-action@v5
43+
with:
44+
context: .
45+
platforms: linux/amd64
46+
push: true
47+
tags: ${{ steps.meta.outputs.tags }}
48+
labels: ${{ steps.meta.outputs.labels }}
49+

Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM cimg/node:22.15-browsers
2+
3+
RUN sudo apt-get -o Acquire::AllowInsecureRepositories=true update && \
4+
sudo apt-get --allow-unauthenticated install -y zstd xvfb
5+
# Install corepack and yarn
6+
RUN sudo corepack enable && sudo corepack prepare [email protected] --activate

README.md

Lines changed: 119 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,119 @@
1-
# metamask-extension-e2e-image
1+
# MetaMask Extension E2E Docker Image
2+
3+
This image is built for running MetaMask Extension end-to-end (E2E) tests.
4+
It includes:
5+
6+
- Node 22.15 (with browsers)
7+
- Yarn 4.9.1 (via Corepack)
8+
- zstd compression tool
9+
- Xvfb for headless GUI environments
10+
11+
## 🚀 Using the Image
12+
13+
### Pull from GHCR
14+
15+
```bash
16+
# Latest version
17+
docker pull ghcr.io/MetaMask/metamask-extension-e2e-image:latest
18+
19+
# Specific version
20+
docker pull ghcr.io/MetaMask/metamask-extension-e2e-image:v1.0.0
21+
```
22+
23+
### Authentication
24+
25+
For public access, you can use any GitHub token:
26+
27+
```bash
28+
# Login to GHCR
29+
echo $GITHUB_TOKEN | docker login ghcr.io -u $GITHUB_USERNAME --password-stdin
30+
31+
# Or using GitHub CLI
32+
gh auth token | docker login ghcr.io -u $GITHUB_USERNAME --password-stdin
33+
```
34+
35+
### Using in CI/CD
36+
37+
#### GitHub Actions
38+
39+
```yaml
40+
steps:
41+
- name: Login to GHCR
42+
uses: docker/login-action@v3
43+
with:
44+
registry: ghcr.io
45+
username: ${{ github.actor }}
46+
password: ${{ secrets.GITHUB_TOKEN }}
47+
48+
- name: Run E2E tests
49+
run: |
50+
docker run --rm -v $PWD:/workspace \
51+
ghcr.io/MetaMask/metamask-extension-e2e-image:latest \
52+
yarn test:e2e
53+
```
54+
55+
#### Docker Compose
56+
57+
```yaml
58+
version: '3.8'
59+
services:
60+
e2e-tests:
61+
image: ghcr.io/MetaMask/metamask-extension-e2e-image:latest
62+
volumes:
63+
- ./:/workspace
64+
working_dir: /workspace
65+
command: yarn test:e2e
66+
```
67+
68+
## 🔨 Building the Image Locally
69+
70+
```bash
71+
# Build for local development
72+
docker build -t metamask-extension-e2e-local .
73+
74+
# Build with platform specification
75+
docker build --platform linux/amd64 -t metamask-extension-e2e-local .
76+
```
77+
78+
## 📦 Available Tags
79+
80+
- `latest` - Latest build from main branch
81+
- `v*.*.*` - Tagged releases
82+
- `main` - Main branch builds
83+
- `<sha>` - Specific commit builds
84+
85+
## 📋 Requirements
86+
87+
- Docker
88+
- GitHub account (for pulling from GHCR)
89+
- GitHub token with `read:packages` permission
90+
91+
## 🐛 Troubleshooting
92+
93+
### Authentication Issues
94+
95+
```bash
96+
# Check if you're logged in
97+
docker system info | grep -i registry
98+
99+
# Test image access
100+
docker run --rm ghcr.io/MetaMask/metamask-extension-e2e-image:latest echo "Success"
101+
```
102+
103+
### Common Solutions
104+
105+
1. **Permission Denied**: Ensure your GitHub token has `read:packages` permission
106+
2. **Image Not Found**: Check image name spelling and tag existence
107+
3. **Rate Limiting**: Use authenticated requests to avoid rate limits
108+
109+
## 🏗️ Development
110+
111+
This image is automatically built and pushed to GHCR on:
112+
- All branch commits (for testing and development)
113+
- Tagged releases
114+
- Pull requests
115+
116+
## 📞 Support
117+
118+
- **Issues**: Open an issue in this repository
119+
- **Internal**: Contact via Slack #mmig-devsecops-random
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @consensys-vertical-apps/directu-shared-dso @consensys-vertical-apps/metamask-wallet-platform @consensys-vertical-apps/directu-shared-sre
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Build and Push to GHCR
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
tags:
8+
- 'v*.*.*'
9+
10+
jobs:
11+
build-and-push:
12+
runs-on: ubuntu-latest
13+
permissions:
14+
contents: read
15+
packages: write
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Log in to GHCR
22+
uses: docker/login-action@v3
23+
with:
24+
registry: ghcr.io
25+
username: ${{ github.actor }}
26+
password: ${{ secrets.GITHUB_TOKEN }}
27+
28+
- name: Extract metadata
29+
id: meta
30+
uses: docker/metadata-action@v5
31+
with:
32+
images: ghcr.io/consensys-vertical-apps/metamask-extension-e2e-image
33+
tags: |
34+
type=ref,event=branch
35+
type=ref,event=tag
36+
type=sha
37+
labels: |
38+
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
39+
org.opencontainers.image.revision=${{ github.sha }}
40+
41+
- name: Build and push Docker image
42+
uses: docker/build-push-action@v5
43+
with:
44+
context: .
45+
platforms: linux/amd64
46+
push: true
47+
tags: ${{ steps.meta.outputs.tags }}
48+
labels: ${{ steps.meta.outputs.labels }}
49+
50+

legacy-e2e-image/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CHANGELOG/

0 commit comments

Comments
 (0)