haven-cypress-integration 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -10
- package/index.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,24 +28,30 @@ it("User registration @TC-AUTO-124, @p1", () => {
|
|
|
28
28
|
|
|
29
29
|
### 3. Build Docker Image
|
|
30
30
|
```bash
|
|
31
|
-
npx haven-cypress build
|
|
31
|
+
npx haven-cypress build --product=BE
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
### 4. Deploy to Haven
|
|
35
|
-
|
|
34
|
+
### 4. Push to ECR and Deploy to Haven
|
|
35
|
+
```bash
|
|
36
|
+
npx haven-cypress build --product=BE --push
|
|
37
|
+
```
|
|
38
|
+
Your Docker image is now pushed to ECR and ready to be deployed and run by HAVEN!
|
|
36
39
|
|
|
37
40
|
## Commands
|
|
38
41
|
|
|
39
42
|
### Build Image
|
|
40
43
|
```bash
|
|
41
|
-
# Basic build
|
|
42
|
-
npx haven-cypress build
|
|
44
|
+
# Basic build with product organization
|
|
45
|
+
npx haven-cypress build --product=BE
|
|
43
46
|
|
|
44
|
-
# Custom tag
|
|
45
|
-
npx haven-cypress build --tag=
|
|
47
|
+
# Custom tag with product
|
|
48
|
+
npx haven-cypress build --product=BE --tag=v1.0
|
|
46
49
|
|
|
47
|
-
# Build and push to
|
|
48
|
-
npx haven-cypress build --
|
|
50
|
+
# Build and push to ECR haven-test-images repository
|
|
51
|
+
npx haven-cypress build --product=BE --push
|
|
52
|
+
|
|
53
|
+
# Build and push with custom tag
|
|
54
|
+
npx haven-cypress build --product=BE --tag=v1.0 --push
|
|
49
55
|
```
|
|
50
56
|
|
|
51
57
|
### Run Tests
|
|
@@ -57,12 +63,29 @@ npx haven-cypress run
|
|
|
57
63
|
npx haven-cypress run --automationIds=TC-AUTO-123,TC-AUTO-124
|
|
58
64
|
```
|
|
59
65
|
|
|
66
|
+
### ECR Image Organization
|
|
67
|
+
Images are organized in the `haven-test-images` ECR repository with product-based tagging:
|
|
68
|
+
```
|
|
69
|
+
Repository: haven-test-images
|
|
70
|
+
├── BE-latest-2025-09-10T10-52-44
|
|
71
|
+
├── BE-v1.0-2025-09-10T14-30-15
|
|
72
|
+
├── billexplainer-latest-2025-09-10T11-15-30
|
|
73
|
+
└── payments-latest-2025-09-10T12-00-45
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Tag Format**: `{PRODUCT}-{VERSION}-{TIMESTAMP}`
|
|
77
|
+
- **Product**: Organizes images by product/team
|
|
78
|
+
- **Version**: `latest` (default) or custom tag (e.g., `v1.0`)
|
|
79
|
+
- **Timestamp**: Ensures unique tags and prevents overwrites
|
|
80
|
+
|
|
60
81
|
## What's Included
|
|
61
82
|
|
|
62
83
|
- ✅ **Tag-based test filtering** (`@TC-AUTO-XXXX`)
|
|
84
|
+
- ✅ **Product-based organization** (ECR repository management)
|
|
63
85
|
- ✅ **Mochawesome reporting** with screenshots
|
|
64
86
|
- ✅ **S3 artifact upload** (reports, logs, screenshots)
|
|
65
87
|
- ✅ **HAVEN API integration** (result synchronization)
|
|
88
|
+
- ✅ **ECR integration** (automatic push to haven-test-images repository)
|
|
66
89
|
- ✅ **Docker containerization** ready for HAVEN deployment
|
|
67
90
|
|
|
68
91
|
## How It Works
|
|
@@ -76,8 +99,9 @@ npx haven-cypress run --automationIds=TC-AUTO-123,TC-AUTO-124
|
|
|
76
99
|
## Requirements
|
|
77
100
|
|
|
78
101
|
- Node.js 14+
|
|
79
|
-
- Docker
|
|
102
|
+
- Docker or Podman
|
|
80
103
|
- Existing Cypress project
|
|
104
|
+
- AWS credentials configured (for ECR push)
|
|
81
105
|
- HAVEN access credentials (provided by Haven when container runs)
|
|
82
106
|
|
|
83
107
|
## Support
|
package/index.js
CHANGED
|
@@ -152,7 +152,7 @@ class HavenCypressIntegration {
|
|
|
152
152
|
const ecrRepo = 'haven-test-images';
|
|
153
153
|
const ecrUri = `${accountId}.dkr.ecr.${region}.amazonaws.com/${ecrRepo}`;
|
|
154
154
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
|
155
|
-
const ecrTag = `${product}
|
|
155
|
+
const ecrTag = `${product}-${localTag.split(':')[1] || 'latest'}-${timestamp}`;
|
|
156
156
|
const fullEcrUri = `${ecrUri}:${ecrTag}`;
|
|
157
157
|
|
|
158
158
|
console.log(`🏷️ ECR tag: ${ecrTag}`);
|
|
@@ -172,7 +172,7 @@ class HavenCypressIntegration {
|
|
|
172
172
|
|
|
173
173
|
console.log(`✅ Image pushed successfully!`);
|
|
174
174
|
console.log(`📍 ECR URI: ${fullEcrUri}`);
|
|
175
|
-
console.log(`🗂️ Organization: ${
|
|
175
|
+
console.log(`🗂️ Product Organization: ${product} (tag: ${ecrTag})`);
|
|
176
176
|
|
|
177
177
|
} catch (error) {
|
|
178
178
|
console.error(`❌ Failed to push to ECR: ${error.message}`);
|