kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

PPP3: Circle CI (続き5)

10-07 ドキュメントのビルドを実行する

Sphinxのところは読むだけに
やればできそう感はある

10-8 便利な機能

lintが成功したらテストを実行するという例
題材はcalculations.pyに戻ってる

config.yml

version: 2.1
jobs:
  lint:
    docker:
      - image: circleci/python:3.6
    steps:
      - checkout
      - run: |
          python3.6 -m venv venv
          source ./venv/bin/activate
          pip install flake8
          flake8 test_calculations.py

Lintをかける部分

flake8 test_calculations.pyっていうのは意図的にやってるんだろうか
普通に考えたらflake8 calculations.pyじゃないかという気がするんだけれども
テストコードだってスタイル合わせはするんだろうけど

  test:
    ...

  workflows:
    version: 2.1
    myworkflow:
      jobs:
        -lint:
          filters:
            branches:
              only:master
        -test:
          requires:
            - lint
  • ブランチがmasterのときだけlintを実行する
  • testの実行にはlint(の成功)が必要

わかります

さてpush
やってるかな
やってるやってる

・・・

なんか変だな
testのほうしかやってなくない?
あれ?

ちょっとlintで失敗させてみるか
失敗した
ちゃんとやってるのか

戻す
成功
それはいいんだけどlintの結果が見えないなあ
表示されないのかなあ

・・・

なんか2回やってる?
どうなってんの?
なんかおかしくしちゃった?

・・・


lintとtestが別で表示されてるのか
そういうことか
lintっていうjobとtestっていうjobが走ってJobsの画面見てるわけだからそうなるよな

よく見たら画面の右の方に"myworkflow/lint"とか"myworkflow/test"とか書いてあるし
"myworkflow"をクリックするとlintしてtestしましたよっていうのがビジュアルに表示される

一番上しか見てませんでしたよ

じゃこんどはmaster以外はワークフローが走らないことを確認
ブランチ切って修正してcommitしてpush
なにも起こらない
masterに戻ってmergeしてpush
ジョブ走った

OK