2019/03/15 このエントリーをはてなブックマークに追加 はてなブックマーク - とりあえず動かすためのCircle CI 1.0からCircle CI 2.0への移行

とりあえず動かすためのCircle CI 1.0からCircle CI 2.0への移行

カテゴリ:

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へ移行するために必要なことは以下です。


出来上がったものをガッと修正したら、以下のようになりました。
正直、元々の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 件のコメント:

コメントを投稿

GA