circleci-config-generator
circleci-config-generator copied to clipboard
php configuration translation problem
Hello, Thank you for this nice tool :)
I used the config-translator to convert a PHP project from circleci 1.0 to 2.0. But I have the following error :
#!/bin/bash --login
ln -fs << $HOME/.phpenv/versions/7.0.24/libexec/apache2/libphp5.so/usr/lib/apache2/modules/libphp5.so;
phpenv global 7.0.24 2>/dev/null
/bin/bash: line 1: warning: here-document at line 0 delimited by end-of-file (wanted `$HOME/.phpenv/versions/7.0.24/libexec/apache2/libphp5.so/usr/lib/apache2/modules/libphp5.so')
ln: missing file operand
Try 'ln --help' for more information.
Exited with code 1
I think the translator did not translate
php:
version: 7.0.24
correctly. Would you please have an idea how to fix this ?
This error has already been posted many times but I couldn't find an answer : https://discuss.circleci.com/t/config-translation-generated-broken-config/21094 https://discuss.circleci.com/t/upgrading-to-2-0-config-translation-error-deprecated-base-image/23866
Thank you very much ! :)
Mathieu.
-- Here is my old circle.yml :
machine:
php:
version: 7.0.24
hosts:
localhost: 127.0.0.1
services:
- mysql
dependencies:
post:
- wget https://phar.phpunit.de/phpunit-5.6.2.phar
- chmod +x phpunit-5.6.2.phar
- mv phpunit-5.6.2.phar phpunit
database:
override:
- mysql -u ubuntu -e "CREATE DATABASE db_test;SET @@global.sql_mode='';"
checkout:
post:
- cd library && git clone https://github.com/runkit7/runkit7.git && cd runkit7 && phpize && ./configure && make && make install && (echo "extension=runkit.so" && echo "runkit.internal_override=1") > /opt/circleci/php/7.0.24/etc/conf.d/runkit.ini
- cd library && tar -zxf install.tar.gz
- pear install channel://pear.php.net/XML_Serializer-0.21.0
test:
override:
- mkdir -p $CIRCLE_TEST_REPORTS/phpunit
- ./phpunit --log-junit $CIRCLE_TEST_REPORTS/phpunit/junit.xml
- ./phpunit --coverage-html $CIRCLE_ARTIFACTS
And the translated file .circleci/config.yml :
# This configuration was automatically generated from a CircleCI 1.0 config.
# It should include any build commands you had along with commands that CircleCI
# inferred from your project structure. We strongly recommend you read all the
# comments in this file to understand the structure of CircleCI 2.0, as the idiom
# for configuration has changed substantially in 2.0 to allow arbitrary jobs rather
# than the prescribed lifecycle of 1.0. In general, we recommend using this generated
# configuration as a reference rather than using it in production, though in most
# cases it should duplicate the execution of your original 1.0 config.
version: 2
jobs:
build:
working_directory: ~/ircf/myproject
parallelism: 1
shell: /bin/bash --login
# CircleCI 2.0 does not support environment variables that refer to each other the same way as 1.0 did.
# If any of these refer to each other, rewrite them so that they don't or see https://circleci.com/docs/2.0/env-vars/#interpolating-environment-variables-to-set-other-environment-variables .
environment:
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
# In CircleCI 1.0 we used a pre-configured image with a large number of languages and other packages.
# In CircleCI 2.0 you can now specify your own image, or use one of our pre-configured images.
# The following configuration line tells CircleCI to use the specified docker image as the runtime environment for you job.
# We have selected a pre-built image that mirrors the build environment we use on
# the 1.0 platform, but we recommend you choose an image more tailored to the needs
# of each job. For more information on choosing an image (or alternatively using a
# VM instead of a container) see https://circleci.com/docs/2.0/executor-types/
# To see the list of pre-built images that CircleCI provides for most common languages see
# https://circleci.com/docs/2.0/circleci-images/
docker:
- image: circleci/build-image:ubuntu-14.04-XXL-upstart-1189-5614f37
command: /sbin/init
steps:
# Machine Setup
# If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
# The following `checkout` command checks out your code to your working directory. In 1.0 we did this implicitly. In 2.0 you can choose where in the course of a job your code should be checked out.
- checkout
# Prepare for artifact and test results collection equivalent to how it was done on 1.0.
# In many cases you can simplify this from what is generated here.
# 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/'
- run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
# This is based on your 1.0 configuration file or project settings
- run:
working_directory: ~/ircf/myproject
command: |-
ln -fs << $HOME/.phpenv/versions/7.0.24/libexec/apache2/libphp5.so/usr/lib/apache2/modules/libphp5.so;
phpenv global 7.0.24 2>/dev/null
- run:
working_directory: ~/ircf/myproject
command: |-
printf '127.0.0.1 localhost
' | sudo tee -a /etc/hosts
- run:
working_directory: ~/ircf/myproject
command: 'sudo service mysql status || sudo service mysql start; '
# Checkout
# This would typically go in either a build or a build-and-test job when using workflows
# This is based on your 1.0 configuration file or project settings
- run: cd library && git clone https://github.com/runkit7/runkit7.git && cd runkit7 && phpize && ./configure && make && make install && (echo "extension=runkit.so" && echo "runkit.internal_override=1") > /opt/circleci/php/7.0.24/etc/conf.d/runkit.ini
- run: cd library && tar -zxf install.tar.gz
- run: pear install channel://pear.php.net/XML_Serializer-0.21.0
# Dependencies
# This would typically go in either a build or a build-and-test job when using workflows
# Restore the dependency cache
- restore_cache:
keys:
# This branch if available
- v1-dep-{{ .Branch }}-
# Default branch if not
- v1-dep-master-
# Any branch if there are none on the default branch - this should be unnecessary if you have your default branch configured correctly
- v1-dep-
# This is based on your 1.0 configuration file or project settings
- run: wget https://phar.phpunit.de/phpunit-5.6.2.phar
- run: chmod +x phpunit-5.6.2.phar
- run: mv phpunit-5.6.2.phar phpunit
# Save dependency cache
- save_cache:
key: v1-dep-{{ .Branch }}-{{ epoch }}
paths:
# This is a broad list of cache paths to include many possible development environments
# You can probably delete some of these entries
- vendor/bundle
- ~/virtualenvs
- ~/.m2
- ~/.ivy2
- ~/.bundle
- ~/.go_workspace
- ~/.gradle
- ~/.cache/bower
# This is based on your 1.0 configuration file or project settings
- run: mysql -u ubuntu -e "CREATE DATABASE db_test;SET @@global.sql_mode='';"
# Test
# This would typically be a build job when using workflows, possibly combined with build
# This is based on your 1.0 configuration file or project settings
- run: mkdir -p $CIRCLE_TEST_REPORTS/phpunit
- run: ./phpunit --log-junit $CIRCLE_TEST_REPORTS/phpunit/junit.xml
- run: ./phpunit --coverage-html $CIRCLE_ARTIFACTS
# Teardown
# If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
# Save test results
- store_test_results:
path: /tmp/circleci-test-results
# Save artifacts
- store_artifacts:
path: /tmp/circleci-artifacts
- store_artifacts:
path: /tmp/circleci-test-results