2017-07-10 1 views
-1

Je cherche à lancer un concombre (Ruby 2.3) Suite de test de Jenkins qui teste si oui ou non 2-4 octets caractères UTF-8 sont des noms valides pour les groupes.ne peut pas résoudre le codage des caractères incompatibles dans Jenkins

J'ai essayé un certain nombre de solutions et ont été la recherche de jours qui tentent de trouver une question pertinente à la mienne.

L'erreur qui a été me hante est:

incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError) 

Ce qui fait référence à une ligne où je suis en train d'envoyer une commande ssh à la CLI sur la machine que je suis en train de créer le groupe sur:

$mymachine.cli_ssh.exec!("config group create --name='#{group_name}'") 

Si, dans la commande exec!() existe:

command.force_encoding("UTF-8") 

le o d'erreur eul se produit lorsque j'envoie 2-4 octets UTF-8 caractères, tels que:

groupe 'abcd' ne pas cause de l'erreur et groupe 'ЯЯЯ' ne cause de l'erreur

Le problème:

L'exécution de ce script sur ma machine locale Ubuntu fonctionne parfaitement (Ruby 2.2.1), ainsi que sur d'autres machines de ma région. (c'est pourquoi je ne pense pas qu'il soit nécessaire de fournir plus de code que ce qui est donné). Je sais qu'il y a eu un changement d'encodage en UTF-8 avec le saut vers Ruby 2.0 mais les deux machines sont passées, donc je ne pense pas que ce soit le problème.

J'ai déjà essayé l'établissement paramètres régionaux du système sur la machine Jenkins en_US.UTF-8 à la fois en tant que variables du système de paramètres régionaux et dans le fichier /.bashrc. Aucun où ai-je vu une variable de codage définie sur ASCII-8BIT.

J'ai aussi essayé d'exporter les paramètres régionaux du système à partir du shell Jenkins avant l'exécution du script.

Je suis dans le besoin d'une réponse, ou une direction qui peut me aider à résoudre ce problème.

Répondre

0

Le problème a été résolu en mettant à jour toutes les gemmes Ruby sur le système Jenkins. Il est probable que certaines gemmes étaient périmées même si elles étaient techniquement compatibles avec la version de la machine Ruby the Jenkins, et par conséquent, il pouvait exister un code Ruby non-UTF8.

Si vous rencontrez ce problème à l'avenir, je recommanderais veiller à ce que toutes les versions de pierres précieuses et de rubis sont compatibles entre votre machine Jenkins et la machine de travail.