Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tenderness driven development for Redmine plugin

pinzolo
July 12, 2014

Tenderness driven development for Redmine plugin

This slide has been published in RxTstudy 11th on 2014-07-12 at Osaka, Japan

pinzolo

July 12, 2014
Tweet

More Decks by pinzolo

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ 4 ໺ా ੣ਓ 4 גࣜձࣾ ۭ 4 Engineer 4

    @pinzolo 4 https://github.com/pinzolo
  2. Rubygems 4 detox 4 formup 4 logdup 4 mastar 4

    rails-flog 4 rails-render_hooks 4 tekido
  3. Redmine plugins 4 redmine_bx 4 Redmine ্Ͱςʔϒϧఆٛ΍ϦιʔεఆٛΛ؅ཧ͢Δ ʢ࡞Γͳ͓͢༧ఆʣ 4 redmine_persist_wfmt

    4 Wiki ͷϑΥʔϚοτอଘͱબ୒ 4 redmine_reminderz 4 Reminder λεΫΛͪΐͬͱ͚֦ͩுͨ͠΋ͷ
  4. Travis CI ͷϝϦοτ (1) ϏϧυϚτϦΫε Ruby: 1.9.3, 2.0.0, 2.1.2 Redmine:

    2.3.x, 2.4.x, 2.5.x ςετର৅: Redmineຊମ, ϓϥάΠϯ ͜ΕΒΛ૊Έ߹Θͤͨ؀ڥͷςετ͕؆୯ʹͰ͖Δ
  5. Travis CI ͷϝϦοτ (2) apt ͕࢖༻Մೳ apt ͕࢖͑ΔͷͰ CVS, Subversion,

    Mercurial ͳͲΛ࢖༻͠ ͨςετ͕Մೳ ͨͩ͠ɺDarcs ͸ඍົ ※ͪͳΈʹ Travis CI ͷ OS ͸ Ubuntu Server 12.04 LTS
  6. Travis CI ͷϝϦοτ (4) push Ҏ֎ͰͷϏϧυ Travis-CI Ͱ͸ Pull Request

    ΍ Release(λά)ʹରͯ͠΋Ϗ ϧυΛͯ͘͠ΕΔ
  7. TEST, CI ͕ਁಁ͢Ε͹ 4 ϓϥάΠϯͷ඼࣭޲্ 4 ίϯϑϦΫτ͠ͳ͍ϓϥάΠϯ։ൃͷϊ΢ϋ΢ͷ஝ੵ 4 ҆৺ײʹΑΔϓϥάΠϯར༻ͷଅਐ 4

    ͔ͬ͠Γϝϯς͞Εɺਓؾͱ࣮੷ͷ͋ΔϓϥάΠϯ͸ຊՈ ʹऔΓࠐ·ΕΔ͔΋ʁ → ͍͍͜ͱͩΒ͚
  8. ݱ࣮ (2) ϥΠϒϥϦͷόʔδϣϯ໰୊ 4 ϓϥάΠϯಉ࢜ͷόʔδϣϯিಥ 4 ຊମͱͷόʔδϣϯিಥ 4 ྫ͑͹ RSpec3

    ΛϓϥάΠϯͷςετʹར༻͢Δ͜ͱ͸ Ͱ͖·ͤΜ ʢࢀߟ: tail -f pinzo.log: Redmine ͷϓϥάΠϯΛ RSpec3 Ͱςετग़དྷͳ͍ʣ
  9. ݱ࣮ (3) Redmine ຊମͷςετ 4 ࠷ۙͷ Darcs Ͱ͸όʔδϣϯ͕৽ͯ͘͠ rake ci

    ͕ίέΔ 4 ൺֱతݹ͍όʔδϣϯΛϗετ͍ͯ͠Δ apt Ͱ΋μϝ 4 ࢖༻͢Δ SCM Λࢦఆͯ͠ςετΛ૸ΒͤΔ͜ͱ͕Ͱ͖ ΔΑ͏ʹͳͬͨͷ͸ Redmine 2.5 Ҏ߱
  10. ݱ࣮ (3) Redmine ຊମͷςετ 4 UI ͷςετ͸ issues_test.rb ͷ 10

    ςετέʔεͷΈ 4 Ϣχοτςετ͸໿2000݅ 4 ϑΝϯΫγϣφϧςετ͕1300݅ 4 ΠϯςάϨʔγϣϯςετ͕໿1000݅ 4 ci λεΫͰ͸࣮ߦ͞Εͳ͍
  11. ݱ࣮ (4) ܾͯ͠खް͍ͱ͸ݴ͑ͳ͍ Redmine ͷϓϥάΠϯαϙʔτ 4 View hook গͳ͍ &

    ภ͍ͬͯΔ 4 ը໘্͔ΒΠϯετʔϧ͢Δखஈ͕ͳ͍ 4 Α͏΍͘࠷৽͔Ͳ͏͔ΛνΣοΫ͢Δػೳ͕௥Ճ͞Εͨ (2.5.2ʙ) 4 Github ͳͲͷ SCM αʔϏεͱͷ࿈ܞ͕ແ͍ͨΊɺ໺ྑϓ ϥάΠϯ͕ଟ͍