Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2009
    Messages : 112
    Points : 90
    Points
    90

    Par défaut Variables d'environnement jamais chargées dans Batch Windows 7

    Bonjour à tous!

    J'utilise Jenkins pour faire des tests fonctionnels avec des tâches Rake qui sont appelées par deux Batch Windows. Mon Jenkins est sur une Debian sous VirtualBox et utilise ma machine Windows comme slave machine.
    Une des tâches Rake fait appel au framework Cucumber pour les scenarios de test à proprement parler.
    Le processus de tests (dans les shells Jenkins) est ordonné de cette manière :

    Un premier Batch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    call rake uninstall
    call rake install
    call rake check
    Deuxième Batch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    call rake cucumber
    call rake uninstall
    La tâche "rake install" est censé déployer un programme et rajouter/configurer des variables d'environnement dans le Registre (et non pas avec des set), comme par exemple le Path.
    La tâche "rake check" est contrôle la présence des différentes variables d'environnement dans l'environnement courant.
    La tâche "rake cucumber" exécute les scénarios de tests en se basant sur les variables d'environnement dont il a besoin.

    Le produit que je teste positionne, à l'installation, le Path et d'autres variables d'environnement en modifiant le Registre "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment".

    Théoriquement, lorsque Jenkins ouvre un nouveau Batch, l'environnement est chargé depuis le Registre Windows et je suis censé avoir mon Path (entre autre) qui est chargé correctement.
    Or dans mon cas ce n'est pas le cas, le second Batch n'aura pas l'environnement chargé depuis le Registre.

    Je n'ai aucune connaissance des Batchs Windows et cette méthode de fonctionnement par variable d'environnement est imposé par le produit lui-même.

    Mon idée est de lancer un Batch, comme quand on lance un Shell de login Linux (i.e. "bash --login").

    Quelqu'un sait-il d'où peut venir cette erreur?

    Merci à vous!

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : août 2005
    Messages : 2 894
    Points : 7 208
    Points
    7 208

    Par défaut

    Je pense que tu auras plus de réponses dans la section Windows : Scripts/Batchs


    Mais à mon avis, call ne créé pas un nouvel environnement.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2009
    Messages : 112
    Points : 90
    Points
    90

    Par défaut

    Salut.

    Si j'exécute ces commandes à la main dans un Batch plutôt que dans le Batch Jenkins, tout fonctionne et l'environnement est bien chargé. J'installe le programme dans un premier Batch et je lance un deuxième Batch pour charger le nouvel environnement et lancer des binaires pour effectuer mes tests. Pour moi le problème vient de comment Jenkins met en place l'environnement des Batchs et non pas comment mon code se sert de l'environnement.

    Quelqu'un m'a expliqué que dans le cas de Jenkins sous Windows, le client JLPN lancé pour que Jenkins commande la machine Windows slave capture l'environnement actuel et le garde pendant toute la durée de son exécution, càd tout le temps. En gros l'environnement disponible dans chaque Batch Windows est celui que le client JLPN aura capturé au lancement.

    Je suis ouvert à toute idée/proposition!

    Merci à vous!

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : août 2005
    Messages : 2 894
    Points : 7 208
    Points
    7 208

    Par défaut

    Je serai plutôt tenter d'exécuter "cmd", au moins t'es sûr d'instancier une nouvelle ligne de commande.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. [Batch] sed (de cygwin) dans batch windows : erreur Invalid cross-device link
    Par Christophe P. dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 03/06/2015, 11h11
  2. EJB jamais chargé dans JBoss
    Par kevin254kl dans le forum Wildfly/JBoss
    Réponses: 10
    Dernier message: 15/12/2014, 21h00
  3. Réponses: 0
    Dernier message: 19/09/2008, 14h40
  4. Script Batch : Variable d'environnement dans un fichier "ordinaire"
    Par falcon dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 06/05/2008, 15h54
  5. [WIN2003]définir une variable d'environnement dans un batch
    Par creezeer dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 28/08/2007, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo