Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
13 changes: 13 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"permissions": {
"allow": [
"make help",
"make build-*",
"docker buildx ls"
],
"deny": [
"make publish-*",
"docker push *"
]
}
}
55 changes: 55 additions & 0 deletions .claude/skills/add-version/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
name: add-version
description: Add support for a new Magento or PHP version. Use when adding new version support.
---

# Add New Version Support

Add a new Magento/PHP combination using the unified Dockerfile.

## Steps

1. **Add entry to versions.json**
```json
{
"id": "m2.4.9-php8.5",
"tag": "m2.4.9-php8.5",
"php_version": "8.5",
"magento_version": "2.4.9",
"mcrypt_version": null,
"sodium_from_source": false,
"extra_extensions": []
}
```

2. **Add Makefile targets**
```makefile
## Build Magento 2.4.9 on PHP 8.5
.PHONY: build-m2.4.9-php8.5
build-m2.4.9-php8.5:
$(call build_image,8.5,2.4.9,,false,,m2.4.9-php8.5)

## Publish Magento 2.4.9 on PHP 8.5
.PHONY: publish-m2.4.9-php8.5
publish-m2.4.9-php8.5:
$(call push_image,m2.4.9-php8.5)
```

3. **Update build-all and publish-all targets** to include new version

4. **Test the build**
```bash
make build-m2.4.9-php8.5
```

## Version Configuration

| Field | Description |
|-------|-------------|
| `id` | Unique identifier, format: `m<magento>-php<php>` |
| `tag` | Docker Hub tag |
| `php_version` | PHP version (e.g., `8.5`) |
| `magento_version` | Magento version (e.g., `2.4.9`) |
| `mcrypt_version` | mcrypt PECL version or `null` if not needed |
| `sodium_from_source` | `true` for PHP < 8.2 requiring libsodium build |
| `extra_extensions` | Array of additional PHP extensions (e.g., `["ftp"]`) |
52 changes: 52 additions & 0 deletions .claude/skills/build-image/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
name: build-image
description: Build a Docker image for Magento testing. Use when user wants to build or rebuild a test image.
---

# Build Docker Image

Build a multi-platform Docker image for Magento testing.

## Prerequisites

Ensure Docker buildx is configured:
```bash
docker buildx ls
```

## List Available Versions

```bash
make list-versions
```

## Available Versions

| Command | Magento | PHP | Tag |
|---------|---------|-----|-----|
| `make build-m2.4.4-p3-php8.1` | 2.4.4-p3 | 8.1 | m2.4-php8.1 |
| `make build-m2.4.6-p3-php8.2` | 2.4.6-p3 | 8.2 | m2.4.6-php8.2 |
| `make build-m2.4.7-php8.2` | 2.4.7 | 8.2 | m2.4.7 |
| `make build-m2.4.7-p5-php8.3` | 2.4.7-p5 | 8.3 | m2.4.7-p5 |
| `make build-m2.4.8-php8.4` | 2.4.8 | 8.4 | m2.4.8-php8.4 |

Legacy aliases: `build-81`, `build-82`, `build-247`, `build-247-p5`, `build-84`

## Steps

1. Run `make list-versions` to see available versions
2. Run `make build-<version-id>` for specific version
3. Or run `make build-all` for all versions

## Example

```bash
# Build specific version
make build-m2.4.8-php8.4

# Build all versions
make build-all

# Using legacy alias
make build-84
```
49 changes: 49 additions & 0 deletions .claude/skills/publish-image/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
name: publish-image
description: Publish a Docker image to Docker Hub. Use when user wants to push/publish a built image.
---

# Publish Docker Image

Push a built image to Docker Hub under `idealpostcodes/magento-test`.

## Prerequisites

1. Image must be built first using `/build-image`
2. Must be logged into Docker Hub with push access

## Available Versions

| Command | Tag |
|---------|-----|
| `make publish-m2.4.4-p3-php8.1` | m2.4-php8.1 |
| `make publish-m2.4.6-p3-php8.2` | m2.4.6-php8.2 |
| `make publish-m2.4.7-php8.2` | m2.4.7 |
| `make publish-m2.4.7-p5-php8.3` | m2.4.7-p5 |
| `make publish-m2.4.8-php8.4` | m2.4.8-php8.4 |

Legacy aliases: `publish-81`, `publish-82`, `publish-247`, `publish-247-p5`, `publish-84`

## Steps

1. Verify the image is built locally
2. Confirm Docker Hub login: `docker login`
3. Run `make publish-<version-id>` or `make publish-all`
4. Verify on Docker Hub

## Example

```bash
# Publish specific version
make publish-m2.4.8-php8.4

# Publish all versions
make publish-all

# Using legacy alias
make publish-84
```

## Warning

Publishing overwrites the existing tag on Docker Hub. Ensure the build is tested before publishing.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Claude local settings
.claude/settings.local.json
54 changes: 54 additions & 0 deletions .windsurf/workflows/add-version.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
description: Add support for a new Magento or PHP version
---

# Add New Version Support

Add a new Magento/PHP combination using the unified Dockerfile.

## Steps

1. **Add entry to versions.json**
```json
{
"id": "m2.4.9-php8.5",
"tag": "m2.4.9-php8.5",
"php_version": "8.5",
"magento_version": "2.4.9",
"mcrypt_version": null,
"sodium_from_source": false,
"extra_extensions": []
}
```

2. **Add Makefile targets**
```makefile
## Build Magento 2.4.9 on PHP 8.5
.PHONY: build-m2.4.9-php8.5
build-m2.4.9-php8.5:
$(call build_image,8.5,2.4.9,,false,,m2.4.9-php8.5)

## Publish Magento 2.4.9 on PHP 8.5
.PHONY: publish-m2.4.9-php8.5
publish-m2.4.9-php8.5:
$(call push_image,m2.4.9-php8.5)
```

3. **Update build-all and publish-all targets** to include new version

4. **Test the build**
```bash
make build-m2.4.9-php8.5
```

## Version Configuration

| Field | Description |
|-------|-------------|
| `id` | Unique identifier, format: `m<magento>-php<php>` |
| `tag` | Docker Hub tag |
| `php_version` | PHP version (e.g., `8.5`) |
| `magento_version` | Magento version (e.g., `2.4.9`) |
| `mcrypt_version` | mcrypt PECL version or `null` if not needed |
| `sodium_from_source` | `true` for PHP < 8.2 requiring libsodium build |
| `extra_extensions` | Array of additional PHP extensions (e.g., `["ftp"]`) |
51 changes: 51 additions & 0 deletions .windsurf/workflows/build-image.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
description: Build a Docker image for Magento testing
---

# Build Docker Image

Build a multi-platform Docker image for Magento testing.

## Prerequisites

Ensure Docker buildx is configured:
```bash
docker buildx ls
```

## List Available Versions

```bash
make list-versions
```

## Available Versions

| Command | Magento | PHP | Tag |
|---------|---------|-----|-----|
| `make build-m2.4.4-p3-php8.1` | 2.4.4-p3 | 8.1 | m2.4-php8.1 |
| `make build-m2.4.6-p3-php8.2` | 2.4.6-p3 | 8.2 | m2.4.6-php8.2 |
| `make build-m2.4.7-php8.2` | 2.4.7 | 8.2 | m2.4.7 |
| `make build-m2.4.7-p5-php8.3` | 2.4.7-p5 | 8.3 | m2.4.7-p5 |
| `make build-m2.4.8-php8.4` | 2.4.8 | 8.4 | m2.4.8-php8.4 |

Legacy aliases: `build-81`, `build-82`, `build-247`, `build-247-p5`, `build-84`

## Steps

1. Run `make list-versions` to see available versions
2. Run `make build-<version-id>` for specific version
3. Or run `make build-all` for all versions

## Example

```bash
# Build specific version
make build-m2.4.8-php8.4

# Build all versions
make build-all

# Using legacy alias
make build-84
```
48 changes: 48 additions & 0 deletions .windsurf/workflows/publish-image.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
description: Publish a Docker image to Docker Hub
---

# Publish Docker Image

Push a built image to Docker Hub under `idealpostcodes/magento-test`.

## Prerequisites

1. Image must be built first using `/build-image`
2. Must be logged into Docker Hub with push access

## Available Versions

| Command | Tag |
|---------|-----|
| `make publish-m2.4.4-p3-php8.1` | m2.4-php8.1 |
| `make publish-m2.4.6-p3-php8.2` | m2.4.6-php8.2 |
| `make publish-m2.4.7-php8.2` | m2.4.7 |
| `make publish-m2.4.7-p5-php8.3` | m2.4.7-p5 |
| `make publish-m2.4.8-php8.4` | m2.4.8-php8.4 |

Legacy aliases: `publish-81`, `publish-82`, `publish-247`, `publish-247-p5`, `publish-84`

## Steps

1. Verify the image is built locally
2. Confirm Docker Hub login: `docker login`
3. Run `make publish-<version-id>` or `make publish-all`
4. Verify on Docker Hub

## Example

```bash
# Publish specific version
make publish-m2.4.8-php8.4

# Publish all versions
make publish-all

# Using legacy alias
make publish-84
```

## Warning

Publishing overwrites the existing tag on Docker Hub. Ensure the build is tested before publishing.
64 changes: 0 additions & 64 deletions 2.4.7-p5/Dockerfile

This file was deleted.

Loading