Slide 1

Slide 1 text

go-selfupdate-github Ͱ πʔϧΛࣗݾΞοϓσʔτ͢Δ Go Con 2018 Spring LT @Linda_pp @rhysd

Slide 2

Slide 2 text

GoͷCLIπʔϧͷΞοϓσʔτͲ ͏ͯ͠·͔͢ʁ • go get -u • γεςϜͷύοέʔδϚωʔδϟʢbrew ͳ ͲʣΛ࢖͏ • GitHub ͷϦϦʔεϖʔδ͔Β࠷৽൛Λμ΢ϯ ϩʔυ͢Δ

Slide 3

Slide 3 text

go get -u • ϦϦʔε͢Δඞཁͳָͯ͘ʢϝϯςφʣ • ৗʹϦϙδτϦͷ HEAD ΛϏϧυ͢ΔͷͰ unstableʢϢʔβʣ • Go ͷ։ൃ؀ڥͷΠϯετʔϧ͕ඞཁʢϢʔ βʣ

Slide 4

Slide 4 text

γεςϜͷύοέʔδϚωʔδϟ ʢbrewͳͲʣΛ࢖͏ • ࠷৽ͷ stable ൛ΛָʹೖΕΒΕΔʢϢʔβʣ • OSʹΑͬͯ΍Γํ͕ҧ͏ʢϢʔβ&ϝϯς φʣ • ύοέʔδొ࿥͕େมʢϝϯςφʣ

Slide 5

Slide 5 text

GitHub ͷϦϦʔεϖʔδ͔Β࠷ ৽൛Λμ΢ϯϩʔυ͢Δ • ࠷৽ͷ stable ൛ΛೖΕΒΕΔʢϢʔβʣ • gox ΍ ghr ͳͲͰ؆୯ϦϦʔεʢϝϯςφʣ • खͰμ΢ϯϩʔυͯ͘͠Δͷ͕໘౗ʢϢʔβʣ

Slide 6

Slide 6 text

ͲΕ΋Ұ௕Ұ୹

Slide 7

Slide 7 text

GitHub ͷϦϦʔεϖʔδ͔Β࠷ ৽൛Λμ΢ϯϩʔυ͢Δ • ࠷৽ͷ stable ൛ΛೖΕΒΕΔʢϢʔβʣ • gox ΍ ghr ͳͲͰ؆୯ϦϦʔεʢϝϯςφʣ • खͰμ΢ϯϩʔυͯ͘͠Δͷ͕໘౗ʢϢʔβʣ • खͰμ΢ϯϩʔυͯ͘͠Δͷ͕໘౗ʢϢʔβʣ ࣗಈԽͰ͖ΔͷͰ͸ʁ

Slide 8

Slide 8 text

go-github-selfupdate όΠφϦΛࣗݾΞοϓσʔτ͢Δ࢓૊ΈΛఏڙ ͢ΔϥΠϒϥϦ https://github.com/rhysd/go-github-selfupdate

Slide 9

Slide 9 text

go-github-selfupdate • GitHub ͷϦϦʔεϖʔδ͔Β࠷৽൛ͷόΠφ ϦΛࣗಈݕग़ʢsemver Λ૝ఆʣ • ϦϦʔεϖʔδ͔ΒόΠφϦΛࣗಈμ΢ϯϩʔ υʢ+ղౚʣ • ࣮ߦϑΝΠϧΛࣗಈஔ͖׵͑

Slide 10

Slide 10 text

import ( "log" "github.com/blang/semver" "github.com/rhysd/go-github-selfupdate/selfupdate" ) const current = "1.2.3" func doSelfUpdate() { v := semver.MustParse(current) latest, err := selfupdate.UpdateSelf(v, "myname/myrepo") if err != nil { log.Panicln("Binary update failed:", err) } if latest.Version.Equals(v) { log.Println("Current binary is the latest", current) } else { log.Println( "Updated to", latest.Version, "Release note:\n", latest.ReleaseNotes, ) } }

Slide 11

Slide 11 text

GitHub ͷϦϦʔεϖʔδ + go-github-selfupdate • ࠷৽ͷ stable ൛ΛೖΕΒΕΔʢϢʔβʣ • gox ΍ ghr ͳͲͰ؆୯ϦϦʔεʢϝϯςφʣ • खͰμ΢ϯϩʔυͯ͘͠Δͷ͕໘౗ʢϢʔβʣ • ίϚϯυҰൃͰࣗಈΞοϓσʔτʢϢʔβʣ

Slide 12

Slide 12 text

go-github-selfupdate ৄࡉ • ✔ Linux, Windows, macOS Ͱ CI • ✔ ϓϥΠϕʔτϦϙδτϦରԠ • ✔ GitHub Enterprise ରԠ • ✔ ࣮ߦϑΝΠϧஔ͖׵ࣦ͑ഊ࣌ͷϩʔϧόοΫ • ✔ ѹॖܗࣜɿzip, tar, gzip, xzip

Slide 13

Slide 13 text

ࢀߟϦϯΫ • ϦϙδτϦ: • https://github.com/rhysd/go-github-selfupdate • υΩϡϝϯτ: • https://godoc.org/github.com/rhysd/go-github-selfupdate/ selfupdate • ϥούʔϥΠϒϥϦ: • https://github.com/Songmu/ghselfupdate • ϒϩάهࣄ: • https://rhysd.hatenablog.com/entry/2017/12/30/220214 @Linda_pp @rhysd CZ