ずっと後回しにしていた移行をやりました
FINAL NOTICE: Two days left to upgrade your CircleCI configuration by March 15 This is the final notice reminding you that one or more of your projects has recently used the CircleCI 1.0 infrastructure, which will no longer be available after March 15, 2019. In order to address this issue and keep your project(s) building, please see: Instructions on seeing which projects still use CircleCI 1.0 config A guide to migrating from 1.0 to 2.0 CircleCI 1.0 EOL policy In two days, all projects will require a circle/config.yml, the 2.0 configuration file type, to build on CircleCI. It’s possible that your project is currently missing a configuration file, and is building on CircleCI 1.0 by default. We know we have sent you a number of notifications in recent weeks regarding 1.0 EOL. At the risk of over-informing you, our goal is to make sure that zero teams or projects are caught unawares when they can no longer build on CircleCI 1.0 on March 15, 2019. We are here to help in making this switch, please visit the migration center. Thanks again, The team at CircleCI
こんなメールが来ていたわけで。超めんどいな、と思ってスルーしていたんですが、
まぁ書き直すかぁということでやってみました。
ちょうど今日、pushしたら動かなくなっていて…(ちなみにきっかけは、せらさんのこのプルリク…ほんとすみません!!! https://github.com/yyYank/kotlin-rev-solution/pull/23)
3/15だからそうか、ということで修正しました。
移行するためにやること
Circle CI 1.0から Circle CI 2.0へ移行するために必要なことは以下です。
- git clone https://github.com/CircleCI-Public/circleci-config-generator
- Circle CIのアクセストークン発行 ( ここから https://circleci.com/account/api )
- circle ciを移行したいプロジェクトのディレクトリへ移動
- github.com/CircleCI-Public/circleci-config-generatorのcci-config-generator.shを実行
- トークン入力
- ブランチの circleci-20-testをpush
- 生成された.circleci/config.ymlを気合いで修正
config.yml
出来上がったものをガッと修正したら、以下のようになりました。
正直、元々のcircle.yml が綺麗人変換されているということはなく、勢いで書き換えました。
version: 2 jobs: build: working_directory: ~/yyYank/kotlin-rev-solution 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 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: ~/yyYank/kotlin-rev-solution environment: TZ: Asia/Tokyo command: 'echo ''Asia/Tokyo'' | sudo service mysql restart; sudo service postgresql restart; ' - run: working_directory: ~/yyYank/kotlin-rev-solution command: sudo rm -rf /var/lib/apt/lists/* - run: working_directory: ~/yyYank/kotlin-rev-solution command: sudo apt upgrade - run: working_directory: ~/yyYank/kotlin-rev-solution command: sudo apt-get update --fix-missing - run: working_directory: ~/yyYank/kotlin-rev-solution command: sudo apt install python3-pip # 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: pip install mkdocs==0.16.3 # 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 # 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: echo "-----start test-----" # This is based on your 1.0 configuration file or project settings - run: echo "-----no test-----" # This is based on your 1.0 configuration file or project settings - run: echo "-----end test-----" # Deployment # Your existing circle.yml file contains deployment steps. # The config translation tool does not support translating deployment steps # since deployment in CircleCI 2.0 are better handled through workflows. # See the documentation for more information https://circleci.com/docs/2.0/workflows/ - run: working_directory: ~/yyYank/kotlin-rev-solution command: mkdocs --version - run: working_directory: ~/yyYank/kotlin-rev-solution command: mkdocs build --clean - run: working_directory: ~/yyYank/kotlin-rev-solution command: git config --global user.email yy.yank.me@gmail.com - run: working_directory: ~/yyYank/kotlin-rev-solution command: git config --global user.name yyYank - run: working_directory: ~/yyYank/kotlin-rev-solution command: git commit ./site/* -m "build [ci skip]" - run: working_directory: ~/yyYank/kotlin-rev-solution command: git pull git@github.com:yyYank/kotlin-rev-solution.git master - run: working_directory: ~/yyYank/kotlin-rev-solution command: git push git@github.com:yyYank/kotlin-rev-solution.git master
まとめ
元々やっていた、リポジトリのpushからのherokuデプロイはCircle CI 2.0でもできるようになりました。
https://yyyank.blogspot.com/2016/06/circlecibuildgitpush.html
なんか、deploymentとかteardownが書かれたymlが生成されたわけですが、
なかなかうまくいってなかったのでごりっと直しました。
あと、pipのインストールとかあたりも全然ダメそうだったので、書き直しました。
ただ、これだと各phase(build, deploy, test)がごっちゃになってて綺麗じゃないですね。
stormcatさんの記事でも見て、そのうち綺麗にしようと思います。
https://blog.stormcat.io/post/entry/circleci2.0-overview01/
0 件のコメント:
コメントを投稿