mirror of
				https://github.com/tobspr/shapez.io.git
				synced 2025-06-13 13:04:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			102 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const path = require("path");
 | |
| const fs = require("fs");
 | |
| 
 | |
| const buildUtils = require("./buildutils");
 | |
| 
 | |
| function gulptasksFTP($, gulp, buildFolder) {
 | |
|     const commitHash = buildUtils.getRevision();
 | |
| 
 | |
|     const additionalFolder = path.join(__dirname, "additional_build_files");
 | |
| 
 | |
|     const additionalFiles = [
 | |
|         path.join(additionalFolder, "*"),
 | |
|         path.join(additionalFolder, "*.*"),
 | |
|         path.join(additionalFolder, ".*"),
 | |
|     ];
 | |
| 
 | |
|     const credentials = {
 | |
|         alpha: {
 | |
|             host: process.env.SHAPEZ_CLI_SERVER_HOST,
 | |
|             user: process.env.SHAPEZ_CLI_ALPHA_FTP_USER,
 | |
|             pass: process.env.SHAPEZ_CLI_ALPHA_FTP_PW,
 | |
|         },
 | |
|         staging: {
 | |
|             host: process.env.SHAPEZ_CLI_SERVER_HOST,
 | |
|             user: process.env.SHAPEZ_CLI_STAGING_FTP_USER,
 | |
|             pass: process.env.SHAPEZ_CLI_STAGING_FTP_PW,
 | |
|         },
 | |
|         prod: {
 | |
|             host: process.env.SHAPEZ_CLI_SERVER_HOST,
 | |
|             user: process.env.SHAPEZ_CLI_LIVE_FTP_USER,
 | |
|             pass: process.env.SHAPEZ_CLI_LIVE_FTP_PW,
 | |
|         },
 | |
|     };
 | |
| 
 | |
|     // Write the "commit.txt" file
 | |
|     gulp.task("ftp.writeVersion", cb => {
 | |
|         fs.writeFileSync(
 | |
|             path.join(buildFolder, "version.json"),
 | |
|             JSON.stringify(
 | |
|                 {
 | |
|                     commit: buildUtils.getRevision(),
 | |
|                     appVersion: buildUtils.getVersion(),
 | |
|                     buildTime: new Date().getTime(),
 | |
|                 },
 | |
|                 null,
 | |
|                 4
 | |
|             )
 | |
|         );
 | |
|         cb();
 | |
|     });
 | |
| 
 | |
|     const gameSrcGlobs = [
 | |
|         path.join(buildFolder, "**/*.*"),
 | |
|         path.join(buildFolder, "**/.*"),
 | |
|         path.join(buildFolder, "**/*"),
 | |
|         path.join(buildFolder, "!**/index.html"),
 | |
|     ];
 | |
| 
 | |
|     for (const deployEnv of ["alpha", "prod", "staging"]) {
 | |
|         const deployCredentials = credentials[deployEnv];
 | |
| 
 | |
|         gulp.task(`ftp.upload.${deployEnv}.game`, () => {
 | |
|             return gulp
 | |
|                 .src(gameSrcGlobs, { base: buildFolder })
 | |
|                 .pipe(
 | |
|                     $.rename(pth => {
 | |
|                         pth.dirname = path.join("v", commitHash, pth.dirname);
 | |
|                     })
 | |
|                 )
 | |
|                 .pipe($.sftp(deployCredentials));
 | |
|         });
 | |
| 
 | |
|         gulp.task(`ftp.upload.${deployEnv}.indexHtml`, () => {
 | |
|             return gulp
 | |
|                 .src([path.join(buildFolder, "index.html"), path.join(buildFolder, "version.json")], {
 | |
|                     base: buildFolder,
 | |
|                 })
 | |
|                 .pipe($.sftp(deployCredentials));
 | |
|         });
 | |
| 
 | |
|         gulp.task(`ftp.upload.${deployEnv}.additionalFiles`, () => {
 | |
|             return gulp
 | |
|                 .src(additionalFiles, { base: additionalFolder }) //
 | |
|                 .pipe($.sftp(deployCredentials));
 | |
|         });
 | |
| 
 | |
|         gulp.task(
 | |
|             `ftp.upload.${deployEnv}`,
 | |
|             gulp.series(
 | |
|                 "ftp.writeVersion",
 | |
|                 `ftp.upload.${deployEnv}.game`,
 | |
|                 `ftp.upload.${deployEnv}.indexHtml`,
 | |
|                 `ftp.upload.${deployEnv}.additionalFiles`
 | |
|             )
 | |
|         );
 | |
|     }
 | |
| }
 | |
| 
 | |
| module.exports = {
 | |
|     gulptasksFTP,
 | |
| };
 |