#symfony #continuous-integration #continuous-deployment #bitbucket-pipelines
Вопрос:
Я должен заполнить файл parameters.yml переменными в моем конвейере. Это около 60 строк, необходимых в файле. Поэтому я попытался использовать около 60 операторов echo для заполнения файла и его легкой настройки, но при использовании валидатора он говорит, что мой файл конвейеров недействителен, потому что мне нужно использовать либо строку, либо канал.
Есть ли другой вариант, который позволил бы мне передать многострочную строку в файл, или другой вариант для заполнения этого файла переменными среды?
Вот как я попробовал это сейчас:
pipelines: default: - step: name: install and test caches: - composer - node - vendor script: - npm install - npm install -g gulp - echo "parameters:" gt; app/config/parameters.yml - echo " database_driver: pdo_mysql" gt;gt; app/config/parameters.yml - echo " database_host: $DB_HOST" gt;gt; app/config/parameters.yml - echo " database_port: $DB_PORT" gt;gt; app/config/parameters.yml - echo " database_name: $DB_NAME" gt;gt; app/config/parameters.yml - echo " database_user: $DB_USER" gt;gt; app/config/parameters.yml - echo " database_password: $DB_PASS" gt;gt; app/config/parameters.yml - echo " redis.dsn.cache: "$REDIS"/0" gt;gt; app/config/parameters.yml - echo " redis.dsn.doctrine: "$REDIS/1"" gt;gt; app/config/parameters.yml - echo " redis.dsn.session: "$REDIS/2"" gt;gt; app/config/parameters.yml - echo " mailer_transport: $MAIL_TRANSPORT" gt;gt; app/config/parameters.yml - echo " mailer_host: $MAIL_HOST" gt;gt; app/config/parameters.yml - echo " mailer_user: $MAIL_USER" gt;gt; app/config/parameters.yml - echo " mailer_password: $MAIL_PASS" gt;gt; app/config/parameters.yml - echo " mailer_port: $MAIL_PORT" gt;gt; app/config/parameters.yml
Ответ №1:
Я думаю, что у валидатора возникли некоторые проблемы с тем, что я повторил yaml в конфигурации. Вот как я это исправил:
pipelines: default: - step: name: install and test caches: - composer - node - vendor script: - npm install - npm install -g gulp - echo "parameters:" gt; app/config/parameters.yml - echo " database_driver: pdo_mysql" gt;gt; app/config/parameters.yml - echo " database_host: $DB_HOST" gt;gt; app/config/parameters.yml - echo " database_port: $DB_PORT" gt;gt; app/config/parameters.yml - echo " database_name: $DB_NAME" gt;gt; app/config/parameters.yml - echo " database_user: $DB_USER" gt;gt; app/config/parameters.yml - echo " database_password: $DB_PASS" gt;gt; app/config/parameters.yml - echo " redis.dsn.cache: "$REDIS/0"" gt;gt; app/config/parameters.yml - echo " redis.dsn.doctrine: "$REDIS/1"" gt;gt; app/config/parameters.yml - echo " redis.dsn.session: "$REDIS/2"" gt;gt; app/config/parameters.yml - echo " mailer_transport: $MAIL_TRANSPORT" gt;gt; app/config/parameters.yml - echo " mailer_host: $MAIL_HOST" gt;gt; app/config/parameters.yml - echo " mailer_user: $MAIL_USER" gt;gt; app/config/parameters.yml - echo " mailer_password: $MAIL_PASS" gt;gt; app/config/parameters.yml - echo " mailer_port: $MAIL_PORT" gt;gt; app/config/parameters.yml - sed -i 's/\ / /g' app/config/parameters.yml
В принципе, я не мог воспроизвести действительный yaml, поэтому я исправил его, используя sed, чтобы изменить файл, чтобы yaml стал действительным.