botjaeger
botjaeger

Reputation: 95

Jenkins - Symfony with environment variables

I've been struggling in building automated build using Jenkins with symfony 3.4.

How to properly set environment variables in Jenkins that symfony can find it.

here's my pipeline.

node {
def app
stage('composer install') {
    sh 'export $(cat env/env_vars | xargs)'
    sh 'composer install --optimize-autoloader'
}

stage('yarn install') {
    sh 'yarn install'
}

stage ('build assets') {
    sh 'yarn encore production'
}

stage('Clone repository') {
    // clone
}

stage('Build image') {
    // build here
}

stage('Push image') {
  // push here
}
}

then after I run my build.

I always got this message

....
Creating the "app/config/parameters.yml" file 
Some parameters are missing. Please provide them.
database_host ('%env(DATABASE_HOST)%'): Script Incenteev\ParameterHandler      
\ScriptHandler::buildParameters handling the symfony-scripts event terminated with an exception


[Symfony\Component\Console\Exception\RuntimeException]  
Aborted
....

I already used some jenkins plugin like EnvInjector and something similar. But still symfony can't find my environment variables.

Upvotes: 1

Views: 863

Answers (1)

Mondane
Mondane

Reputation: 498

You can probably solve this like this:

stage('composer install') { sh 'export $(cat env/env_vars | xargs) && composer install --optimize-autoloader' }

This will make the environment variables available in the same shell session.

Upvotes: 1

Related Questions