Как устранить ошибку «неожиданный токен» в Gruntfile. js на Jenkins? - PullRequest
0 голосов
/ 07 марта 2020

Я не могу понять, почему я могу запустить задание сборки grunt dev на моем локальном компьютере, но на сервере Jenkins происходит сбой с этой ошибкой:

Loading "Gruntfile.js" tasks
SyntaxError: Unexpected token ...

Обратите внимание, что это Раньше Дженкинс каждые 10 минут работал нормально, пока однажды не перестал работать. Интересно, обновилось ли что-то еще, что теперь ломает сборку. Тот факт, что я могу выполнить ту же самую грубую работу на моей локальной машине, OK говорит о том, что что-то было обновлено на Jenkins, которое теперь нарушает сборку только на Jenkins.

Файл Gruntfile. js выглядит хорошо для меня :

var argv = require('yargs')
    .usage('$0 <cmd> [args]')
    .string('env')
    .required('env')
    .choices('env', ['development', 'staging'])
    .help()
    .argv;

module.exports = function(grunt) {
    var path = require('path');
    var fs = require('fs');
    var child_process = require('child_process');

    grunt.log.writeln('Using ' + argv.env);

    // Load plugins
    grunt.loadTasks('grunt/tasks');

    // Display execution time of grunt tasks
    require('time-grunt')(grunt);
    var buildId;

    // Load all grunt configs
    require('load-grunt-config')(grunt, {
        configPath: path.join(process.cwd(), 'grunt/config'),
        postProcess: function(config) {
            // Modify path to the configuration file, without altering core grunt scripts.
            config.properties.configFile = 'build/config.' + argv.env + '.json';
            // Figure out version number
            // Get build sequence id
            var sequence = fs.readFileSync('../.buildsequence', 'utf8').replace(/[^0-9a-zA-Z]/g, '');
            var build = process.env.BUILD_NUMBER.replace(/[^0-9a-f]/g, '');
            // Get short git hash.
            var hash = child_process.execSync('git describe --always').toString().toLowerCase().replace(/[^0-9a-f]/g, '');
            grunt.log.writeln('Git hash ' + hash);
            buildId = sequence + '-' + build + '-' + hash;
        }
    });

    grunt.log.writeln();
    grunt.log.writeln('********************************************');
    grunt.log.writeln(' -- Initializing...');

    // Load and parse configuration file(s)
    require('./grunt/lib/config/loader')(grunt);

    // Map legacy config to current format
    require('./grunt/lib/config/mapper')(grunt);

    // Normalize config (default values, correct format)
    require('./grunt/lib/config/normalizer')(grunt);

    // Avoids DEPTH_ZERO_SELF_SIGNED_CERT error for self-signed certs where hostname/IP do not match
    process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

    var settings = grunt.config.get('settings');
    settings.project.build = buildId;
    grunt.config.set('settings', settings);

    //Output
    grunt.log.write(' -- Initialization '); grunt.log.ok();
    grunt.log.writeln();
    grunt.log.writeln(' -- Project: ' + grunt.config('settings').project.name);
    grunt.log.writeln(' -- Build: ' + grunt.config('settings').project.build);
    grunt.log.writeln(' -- Version: ' + grunt.config('properties').version.name);
    grunt.log.writeln(' -- Target:  ' + grunt.config('environment').webdav.server);
    grunt.log.writeln();
};
...