diff --git a/framework_development.org b/framework_development.org index 75832af..f134a17 100644 --- a/framework_development.org +++ b/framework_development.org @@ -667,149 +667,7 @@ bundle exec guard init **** 課題 - GitHubとTravis CIを連携させ,継続的統合を行いなさい * 第8章 GitHubを用いた開発演習 -** GitHubとは -*** GitHubについて - - Web サイト - - [[https://github.com/][GitHub]] - - [[http://github.co.jp/][GitHub Japan]] - - 主な機能 - - ソースコード共有(Git) - - Issue - - Pull requests - - Wiki - - コード解析 - -*** GitHub Flow - - Git-flow - - GitHub が登場する以前、 Git-flow が提唱された - - [[http://nvie.com/posts/a-successful-git-branching-model/][A successful Git branching model » nvie.com]] - - GitHub flow - - GitHub により、よりシンプルで強力なワークフローが可能に - - [[http://scottchacon.com/2011/08/31/github-flow.html][GitHub Flow – Scott Chacon]] - - [[https://gist.github.com/Gab-km/3705015][GitHub Flow (Japanese translation)]] - - この演習では GitHub flow を学ぶ - -*** GitHub flow におけるコンフリクトについて - - マージのコンフリクト - - GitHub に提出した Pull requests が自動的にマージできないこと - - 基本的な対処法 - - コンフリクトは、コードの同じ箇所を複数の人が別々に編集すると発生 - - 初心者は、演習の最初の方では「他人と同じファイルを編集しない」こと - にして、操作になれる - - 上達したら積極的にコンフリクトを起こしてみて、その解決方法を学ぶ - - Pull requests でコンフリクトが発生し、自動的にマージできない状態に - なったら、 その PR を送った人がコンフリクトを自分で解消する - -*** Gemの作成とリポジトリへの登録 -**** Gemの作成からGitHubへの登録まで - -#+begin_src bash -bundle gem ychubachi_2016_gem -cd ychubachi_2016_gem/ -git commit -m 'Initial commit' -git create -git push -u origin master -#+end_src - -**** コラボレーターの追加 - -- GitHubのリポジトリをブラウザで開く. -- Settings -> Collaborators を選ぶ -- メンバーを招待する -- 招待されたメンバーには確認のメールが届くので,リンクをクリックする - -**** コラボレーターがソースコードを入手する方法 - -下記の「ychubachi」の部分を代表者のアカウント名にする. -#+begin_src bash -git clone ychubachi/ychubachi_2016_gem -#+end_src - -*** 基本的な git コマンド -**** 新しくブランチを作成してチェックアウトする -#+begin_src bash -git checkout -b some_new_feature -#+end_src - -**** ブランチをGitHubにpushする -#+begin_src bash -git add . -git commit -m '(作業内容)' -git push -u origin some_new_feature -#+end_src - -**** プルリクエストとマージ - -- ブランチがGitHubに登録されたことを確認し,Pull requestを作成する -- Pull requestのレビューが済んだらマージする - -**** ローカルのmaster を最新版にする - -- GitHubで行ったマージをローカルに反映させる - -#+begin_src bash -git checkout master -git pull -#+end_src - -** ペアで行う GitHub -*** ペアで GitHub を使ってみよう - 1. 隣同士でペアを組む - 2. レポジトリを作成する(どちらか一方) - - =bundle gem= でひな形を作る(初心者は Gem でなくても良い) - 3. レポジトリの Collaborators に登録する - 4. レポジトリに対して、次のことを行う - - Pull requests を利用してみる - - Issue を利用してみる - - Wiki を利用してみる -*** 課題1 - 1. Pull request & merge の作業を各自5回以上行う - - ディスカッションやコードレビューもやってみる - 2. Issue を5個以上登録する - - Pull request による Issue の close なども試す - 3. Wiki でページを作成する - - ページを5つ程度作成して、リンクも貼る - 4. 以上が終わったペアはグループでの演習に進む - - 講師に申告すること - -** グループで行う GitHub -*** 課題:グループで GitHub (1) - 1. ペアを2つ組み合わせて4人グループを作成する - - 課題1が終わったペアから順番にグループ編成 - 2. 作りたい Gem について相談して仕様を決める - - テーマはなんでも良い - - Web API を利用したコマンドラインツールなど - - ある程度の役割分担も決めておく - 3. レポジトリを作成する(代表者1名) - - コラボレーターを追加する - 4. 今まで学んだ知識を活用して Gem を開発する -*** 課題:グループで GitHub (2) - 1. グルーブメンバーでGemを共同で作成する - 2. GitHub Flow の実践 - 3. Travis CI によるテストの自動化 - 4. RubyGems.org への自動ディプロイ - 5. その他、GitHub の各種機能の活用 - -** TODO 補足資料 -*** Travis CI ステータスイメージ -**** Travis CIのテスト結果を分かりやすく共有したい - - Travis CIのステータスイメージをREADME.mdに埋め込むことができる - - [[http://docs.travis-ci.com/user/status-images/][Embedding Status Images - Travis CI]] - - [[http://blog.ruedap.com/2013/09/02/travis-ci-coveralls-code-climate-github-badge][Travis CIとCoverallsとCode Climateを使ってGitHubリポジトリにバッジを付ける - アインシュタインの電話番号]] -*** GitHubでのコンフリクトの解消方法 -**** 前提 - - new_feature ブランチで作業中であり、最新の更新は commit 済 - -**** 操作(一例) - -#+begin_src bash -git checkout master # master をチェックアウト -git pull origin master # 手元の master を最新版にする -git checkout new_feature # 作業中のブランチに戻る -git merge master # この後、コンフリクトを修正する -git push origin new_feature # 作業中のブランチを再度、push -#+end_src - +- [[https://github.com/ychubachi/github_practice][ychubachi/github_practice: GitHub入門]] 参照 * 第9章 まとめ ** この授業で取り上げたこと *** Rubyのエコシステム(1) @@ -876,3 +734,9 @@ git push origin new_feature # 作業中のブランチを再度、push - [[https://rubygems.org/][RubyGems.org | your community gem host]] - このページの解説 - [[http://guides.rubygems.org/rubygems-basics/][RubyGems Basics - RubyGems Guides]] +** TODO 補足資料 +*** Travis CI ステータスイメージ +**** Travis CIのテスト結果を分かりやすく共有したい + - Travis CIのステータスイメージをREADME.mdに埋め込むことができる + - [[http://docs.travis-ci.com/user/status-images/][Embedding Status Images - Travis CI]] + - [[http://blog.ruedap.com/2013/09/02/travis-ci-coveralls-code-climate-github-badge][Travis CIとCoverallsとCode Climateを使ってGitHubリポジトリにバッジを付ける - アインシュタインの電話番号]]