Skip to content

wm push ​

Build und upload Components zum CMS mit semantischer Versionierung.

Übersicht ​

wm push kombiniert Build und Upload in einem Befehl. Der Build läuft automatisch vor dem Upload, es sei denn, du verwendest --no-build.

bash
wm push

Was passiert:

  1. ✅ Prüft auf Änderungen (automatischer Build nur wenn nötig)
  2. 🔨 Baut Components (falls Änderungen vorhanden)
  3. 📦 Erstellt neue Version (semantische Versionierung)
  4. 🚀 Lädt zum CMS hoch

Versionierung ​

wm push verwendet Semantic Versioning (MAJOR.MINOR.PATCH):

Interaktiver Modus (Standard) ​

Ohne Flags wirst du gefragt, welche Art von Version du erstellen möchtest:

bash
wm push

Optionen:

  • Patch (x.y.Z) - Bugfixes, kleine Änderungen
  • Minor (x.Y.0) - Neue Features, rückwärtskompatibel
  • Major (X.0.0) - Breaking Changes
  • Force (gleiche Version) - Überschreiben (nur Development!)

Automatischer Modus ​

Übergib Flags für CI/CD oder Automatisierung:

bash
# Patch-Version (0.1.0 → 0.1.1)
wm push --patch

# Minor-Version (0.1.5 → 0.2.0)
wm push --minor

# Major-Version (0.3.2 → 1.0.0)
wm push --major

# Force-Modus: Version nicht erhöhen, überschreiben
wm push --force

Build-Verhalten ​

Automatischer Build (Standard) ​

wm push baut automatisch, wenn:

  • Kein Build existiert (dist/ ist leer)
  • Source-Files neuer sind als Build
bash
$ wm push

# Ausgabe:
Source files changed. Rebuilding components...
Building components...
✓ Build complete!

Existierenden Build verwenden ​

Wenn der Build aktuell ist, wird er wiederverwendet:

bash
$ wm push

# Ausgabe:
Using existing build (up to date).

Build überspringen (CI/CD) ​

Für CI/CD-Pipelines: Build vorher separat ausführen, dann Upload ohne Build:

bash
# In CI/CD Pipeline
wm build
wm push --no-build

Authentifizierung ​

Mit Login (Empfohlen) ​

Nach wm login werden Credentials automatisch verwendet:

bash
wm login
wm push

Ohne Login (Environment Variables) ​

Für CI/CD oder Headless-Umgebungen:

bash
export CMS_TOKEN="your-api-token"
wm push --target https://dein-projekt.cms.example.com

Beispiele ​

Standard-Workflow ​

bash
# 1. Login
wm login

# 2. Entwickeln
wm dev

# 3. Hochladen (interaktiv)
wm push
? Current version: 0.1.0. How do you want to publish?
  ❯ Patch (0.1.1) - Bug fixes, small changes
    Minor (0.2.0) - New features, backwards compatible
    Major (1.0.0) - Breaking changes
    Force (0.1.0) - Overwrite current version (development only)

# Ausgabe:
Building components...
✓ Build complete!
Publishing version: 0.1.1
Uploading to https://dein-projekt.cms.example.com...
✓ Upload complete!
Updated wm.config.js with version 0.1.1

✅ Uploaded 5 components to https://dein-projekt.cms.example.com
Version: 0.1.1
Components are now available in your CMS.

CI/CD Pipeline ​

yaml
# .github/workflows/deploy.yml
- name: Build
  run: wm build

- name: Push to CMS
  run: wm push --no-build --patch
  env:
    CMS_TOKEN: ${{ secrets.CMS_TOKEN }}

Bugfix Release ​

bash
# Bugfix → Patch-Version
wm push --patch

# 0.1.5 → 0.1.6

Feature Release ​

bash
# Neues Feature → Minor-Version
wm push --minor

# 0.1.5 → 0.2.0

Breaking Change Release ​

bash
# Breaking Changes → Major-Version
wm push --major

# 0.3.2 → 1.0.0

Development: Schnell iterieren ​

bash
# Force-Modus: Version nicht erhöhen, existierenden überschreiben
wm push --force

# Warnung: Nur in Development verwenden!
# Production: Immer neue Version erstellen

Optionen ​

OptionBeschreibung
-t, --target <url>CMS-URL (überschreibt Login-Credentials)
--token <token>API-Token (überschreibt Login-Credentials)
--patchPatch-Version erstellen (x.y.Z)
--minorMinor-Version erstellen (x.Y.0)
--majorMajor-Version erstellen (X.0.0)
-f, --forceExistierende Version überschreiben (Development only)
--no-buildBuild überspringen, existierenden dist/ verwenden

Fehlerbehebung ​

"No build found and --no-build specified" ​

Du hast --no-build verwendet, aber kein Build existiert:

bash
# Lösung 1: Erst bauen
wm build
wm push --no-build

# Lösung 2: Auto-Build verwenden (empfohlen)
wm push

"Not logged in and no target URL specified" ​

Du bist nicht eingeloggt:

bash
# Lösung 1: Einloggen (empfohlen)
wm login
wm push

# Lösung 2: Credentials manuell übergeben
wm push --target https://projekt.cms.example.com --token your-token

"Source files changed. Rebuilding components..." ​

Das ist normal! wm push hat Änderungen erkannt und baut automatisch neu.

Version-Konflikte ​

Force-Modus funktioniert nur in Development:

bash
# ✓ Development CMS
wm push --force  # Funktioniert

# ✗ Production CMS
wm push --force  # Fehler: Force mode not allowed in production

Lösung: Erstelle eine neue Version:

bash
wm push --patch  # oder --minor / --major

Best Practices ​

1. Semantic Versioning nutzen ​

bash
# Bugfixes
wm push --patch

# Neue Features
wm push --minor

# Breaking Changes
wm push --major

2. Nach Login pushen ​

bash
# Credentials werden automatisch verwendet
wm login
wm push

3. Vor Push testen ​

bash
# Lokal testen
wm dev

# Dann deployen
wm push

4. CI/CD: Build trennen ​

bash
# Build-Step
wm build

# Deploy-Step
wm push --no-build --patch

5. Force nur in Development ​

bash
# ✓ Development: Schnell iterieren
wm push --force

# ✗ Production: Immer neue Version
wm push --patch

Vergleich mit anderen Befehlen ​

BefehlBuild?Upload?Wann verwenden?
wm build✅❌Lokales Testen, CI/CD-Vorbereitung
wm push✅ Auto✅Standard-Workflow
wm push --no-build❌✅CI/CD nach separatem Build

Nächste Schritte ​

Webmate Studio Component Development Dokumentation