前提・実現したいこと
githubのプライベートリポジトリのstageブランチにマージされたタイミングでテスト環境に自動デプロイされるようにしたい。
現在AWSのEC2でPHP + reactのテスト環境があり、circleciでテスト環境に自動デプロイできるようなコードを書いています。
具体的な方法としてはcircleciからEC2へSSHで接続し、該当のディレクトリに移動後、git pullを実行するようなものです。
しかし、SSH接続はできるものの、その後のコマンドが実行されずに困っています。
同じような現象に見舞われた方は解決策を共有していただけると大変助かります。
発生している問題・エラーメッセージ
Too long with no output (exceeded 10m0s)
該当のソースコード
sshキーの設定
ホストとユーザー名の設定
configyml
1# PHP CircleCI 2.0 configuration file 2# 3# Check https://circleci.com/docs/2.0/language-php/ for more details 4# 5version: 2 6jobs: 7 build: 8 docker: 9 # specify the version you desire here 10 - image: circleci/php:7.3.8-apache-node-browsers 11 - image: circleci/mysql:5.7 12 13 # Specify service dependencies here if necessary 14 # CircleCI maintains a library of pre-built images 15 # documented at https://circleci.com/docs/2.0/circleci-images/ 16 # - image: circleci/mysql:9.4 17 18 environment: 19 - APP_DEBUG: true 20 - APP_ENV: testing 21 - APP_KEY: ************************************************* 22 - DB_CONNECTION: circle_test 23 - APP_URL: http://localhost:8000 24 - MYSQL_ALLOW_EMPTY_PASSWORD: true 25 26 working_directory: ~/repo 27 28 steps: 29 - checkout 30 31 # Install PHP Extension 32 - run: sudo docker-php-ext-install pdo_mysql 33 34 # Download and cache dependencies 35 - restore_cache: 36 keys: 37 - v1-dependencies-{{ checksum "composer.json" }} 38 # fallback to using the latest cache if no exact match is found 39 - v1-dependencies- 40 41 - run: composer install -n --prefer-dist 42 43 - save_cache: 44 paths: 45 - ./vendor 46 key: v1-dependencies-{{ checksum "composer.json" }} 47 48 - run: php artisan config:cache 49 - run: php artisan migrate 50 - run: php artisan db:seed 51 52 #circleCIのchromeは72なので、合わせる 53 - run: php artisan dusk:chrome-driver 72 54 55 # run tests! 56 - run: php ./vendor/bin/phpunit 57 - run: 58 name: Start Chrome Driver 59 command: ./vendor/laravel/dusk/bin/chromedriver-linux 60 background: true 61 - run: 62 name: Run Laravel Server 63 command: php artisan serve 64 background: true 65 - run: 66 name: Run Laravel Dusk Tests 67 command: php artisan dusk 68 69 stage_deploy: 70 machine: 71 image: circleci/classic:edge 72 steps: 73 - checkout 74 # CircleCIに登録した秘密鍵を呼び出す。 75 - add_ssh_keys: 76 - run: 77 name: ssh 78 command: ssh ${USER_NAME}@${HOST_NAME} && cd /var/www/develop && git pull 79# テストが成功した場合のみ、deployを実行 80workflows: 81 version: 2 82 build_and_deploy: 83 jobs: 84 - build 85 - stage_deploy: 86 requires: 87 - build 88 # masterブランチがpushされた場合のみdeployするようにする。 89 filters: 90 branches: 91 only: stage 92 - production_deploy: 93 requires: 94 - build 95 # masterブランチがpushされた場合のみdeployするようにする。 96 filters: 97 branches: 98 only: master 99
試したこと
- ssh接続できるユーザーを自分で作ったユーザーとEC2デフォルトのubuntuユーザーで接続
- run: name: ssh command: ssh ${USER_NAME}@${HOST_NAME} && cd /var/www/develop && git pull
ではなく。
- run: name: ssh command: ssh ${USER_NAME}@${HOST_NAME} - run: name: cd command: cd /var/www/develop - run: name: pull command: git pull
のように分割したのですが、結果は同じでした。
以上です、どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/25 11:29