Skip to content

Revert "Update PHP and MariaDB versions: remove EOL, prioritize LTS, … #27

Revert "Update PHP and MariaDB versions: remove EOL, prioritize LTS, …

Revert "Update PHP and MariaDB versions: remove EOL, prioritize LTS, … #27

Workflow file for this run

name: πŸš€ Release Extension
on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
inputs:
version:
description: 'Release version (e.g., v1.0.1)'
required: true
default: 'v1.1.0'
jobs:
release:
name: πŸ“¦ Build and Release VSIX
runs-on: ubuntu-latest
steps:
- name: πŸ“₯ Checkout Repository
uses: actions/checkout@v4
- name: πŸ”§ Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: πŸ“¦ Install Dependencies
run: npm ci
# Skip tests for now - they require display/GUI
# - name: πŸ§ͺ Run Tests (Optional)
# run: npm run test --if-present
# continue-on-error: true
- name: πŸ—οΈ Build Extension
run: |
npm run compile
npm run package
- name: πŸ“‹ Package Extension
run: |
# Install vsce globally
npm install -g @vscode/vsce
# Create VSIX package (repository info already in package.json)
vsce package
# Get package info
PACKAGE_VERSION=$(node -p "require('./package.json').version")
PACKAGE_NAME=$(node -p "require('./package.json').name")
echo "PACKAGE_VERSION=${PACKAGE_VERSION}" >> $GITHUB_ENV
echo "PACKAGE_NAME=${PACKAGE_NAME}" >> $GITHUB_ENV
echo "VSIX_FILE=${PACKAGE_NAME}-${PACKAGE_VERSION}.vsix" >> $GITHUB_ENV
# Verify VSIX file exists
ls -la *.vsix
echo "Created VSIX: $(ls *.vsix)"
- name: πŸ“‹ Generate Changelog
id: changelog
run: |
PACKAGE_VERSION=$(node -p "require('./package.json').version")
cat > RELEASE_NOTES.md << EOF
## πŸš€ REDAXO Multi-Instances Manager v${PACKAGE_VERSION}
### ✨ Features
- πŸ—οΈ **Multi-Instance Management** - Erstellen, starten, stoppen und lΓΆschen von REDAXO-Instanzen
- πŸ”’ **SSL/HTTPS Support** - Automatische SSL-Zertifikate mit mkcert
- 🐳 **Docker Integration** - VollstÀndig containerisierte Umgebung
- πŸ“Š **Dashboard** - Modernes Webview-Dashboard
- πŸ”‘ **Login-Informationen** - Automatische Anzeige von Zugangsdaten und URLs
- πŸ“± **TreeView** - Seitenleiste mit allen Instanzen und deren Status
### πŸ”§ Technical Features
- **PHP Support** - PHP 7.4, 8.1, 8.2, 8.3, 8.4, 8.5
- **MariaDB Support** - Verschiedene MariaDB-Versionen (10.6 - 11.2)
- **Port Management** - Automatische Port-Zuweisung
- **SSL Zertifikate** - Lokale Entwicklungszertifikate
- **Docker Compose** - Automatische Container-Orchestrierung
### πŸ“₯ Installation
#### Option 1: VSIX Package (Empfohlen)
1. VSIX-Datei aus diesem Release herunterladen
2. VS Code ΓΆffnen
3. \`Cmd+Shift+P\` β†’ "Extensions: Install from VSIX"
4. VSIX-Datei auswΓ€hlen und installieren
#### Option 2: Repository klonen
\`\`\`bash
git clone https://github.com/FriendsOfREDAXO/redaxo-multi-instances-vscode.git
cd redaxo-multi-instances-vscode
npm install && npm run compile
\`\`\`
### πŸ”’ SSL Setup (Optional)
\`\`\`bash
# macOS
brew install mkcert nss && mkcert -install
# Linux
sudo apt install libnss3-tools && mkcert -install
\`\`\`
### 🏁 Erste Schritte
1. \`Cmd+Shift+P\` β†’ \`REDAXO: Show Dashboard\`
2. \`REDAXO: Create New Instance\`
3. Instanz konfigurieren (Name, PHP-Version, SSL)
4. Automatisch generierte URLs verwenden
### πŸ“ž Support
- **Issues**: [GitHub Issues](https://github.com/FriendsOfREDAXO/redaxo-multi-instances-vscode/issues)
- **Community**: [REDAXO Slack](https://redaxo.org/slack/)
---
**Made with ❀️ for the REDAXO Community**
EOF
echo "Release notes created:"
cat RELEASE_NOTES.md
- name: 🏷️ Create Release
id: create_release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref_name || github.event.inputs.version }}
name: πŸš€ REDAXO Multi-Instances Manager ${{ github.ref_name || github.event.inputs.version }}
body_path: RELEASE_NOTES.md
draft: false
prerelease: false
files: "*.vsix"
- name: πŸ“Š Release Summary
run: |
echo "## πŸŽ‰ Release Summary" >> $GITHUB_STEP_SUMMARY
echo "| | |" >> $GITHUB_STEP_SUMMARY
echo "|---|---|" >> $GITHUB_STEP_SUMMARY
echo "| **Version** | $(node -p 'require(\"./package.json\").version') |" >> $GITHUB_STEP_SUMMARY
echo "| **Package** | $(ls *.vsix) |" >> $GITHUB_STEP_SUMMARY
echo "| **Size** | $(du -h *.vsix | cut -f1) |" >> $GITHUB_STEP_SUMMARY
echo "| **Release** | [${{ github.ref_name || github.event.inputs.version }}](https://github.com/FriendsOfREDAXO/redaxo-multi-instances-vscode/releases/tag/${{ github.ref_name || github.event.inputs.version }}) |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### πŸ“₯ Installation" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "# Download VSIX from release" >> $GITHUB_STEP_SUMMARY
echo "# VS Code: Cmd+Shift+P β†’ 'Extensions: Install from VSIX'" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
# Optional: Auto-publish to VS Code Marketplace
# publish:
# name: πŸ“€ Publish to Marketplace
# needs: release
# runs-on: ubuntu-latest
# if: startsWith(github.ref, 'refs/tags/v')
#
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-node@v4
# with:
# node-version: '18'
# cache: 'npm'
#
# - run: npm ci
# - run: npm install -g @vscode/vsce
#
# - name: πŸš€ Publish to Marketplace
# run: vsce publish -p ${{ secrets.VSCE_PAT }}