42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
const gulp = require('gulp');
|
|
const ftp = require('basic-ftp');
|
|
const log = require('fancy-log');
|
|
const dotenv = require('dotenv');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
|
|
// Laden der Umgebungsvariablen aus der .env-Datei (optional)
|
|
dotenv.config();
|
|
|
|
// Deploy Task mit basic-ftp
|
|
gulp.task('deploy', async function () {
|
|
const client = new ftp.Client();
|
|
client.ftp.verbose = true; // Aktiviert detaillierte Logs
|
|
|
|
try {
|
|
// Zugriff auf die FTP-Verbindung
|
|
await client.access({
|
|
host: process.env.FTP_HOST || 'ftps.verag.ag',
|
|
user: process.env.FTP_USER || 'daniel',
|
|
password: process.env.FTP_PASS || 'debug',
|
|
secure: true, // Aktiviert FTPS (erfordert PROT P)
|
|
secureOptions: {
|
|
rejectUnauthorized: false // Nur verwenden, wenn Ihr Server ein selbstsigniertes Zertifikat verwendet
|
|
}
|
|
});
|
|
|
|
// Wechseln in das Zielverzeichnis
|
|
await client.ensureDir(process.env.FTP_DEST || '/Websites/avisotv.app.verag.ag');
|
|
await client.cd(process.env.FTP_DEST || '/Websites/avisotv.app.verag.ag');
|
|
|
|
// Rekursives Hochladen des Inhalts des 'www'-Verzeichnisses
|
|
await client.uploadFromDir('www');
|
|
|
|
log('Deployment erfolgreich abgeschlossen.');
|
|
}
|
|
catch (err) {
|
|
log.error('Deployment fehlgeschlagen:', err);
|
|
}
|
|
client.close();
|
|
});
|