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 buildLokales Testen, CI/CD-Vorbereitung
wm push✅ AutoStandard-Workflow
wm push --no-buildCI/CD nach separatem Build

Nächste Schritte

Webmate Studio Component Development Dokumentation