Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Danger-Swift 導入のススメ / Path to import Danger-Swift
Elvis Shi
July 22, 2020
Programming
2
260
Danger-Swift 導入のススメ / Path to import Danger-Swift
Elvis Shi
July 22, 2020
Tweet
Share
More Decks by Elvis Shi
See All by Elvis Shi
lovee
0
150
lovee
1
460
lovee
3
320
lovee
0
270
lovee
1
280
lovee
1
510
lovee
2
500
lovee
0
310
lovee
0
600
Other Decks in Programming
See All in Programming
rishitdagli
0
180
77web
0
210
fkubota
1
390
itosho525
0
140
decoc
1
320
kenmaz
1
100
azdaroth
0
120
saki4869
0
190
cocoeyes02
0
220
taoshotaro
1
360
manfredsteyer
PRO
0
250
akatsukinewgrad
0
160
Featured
See All Featured
ufuk
56
5.4k
smashingmag
229
18k
mthomps
39
2.3k
denniskardys
220
120k
davidbonilla
69
3.5k
scottboms
251
11k
addyosmani
494
110k
brad_frost
156
6.4k
stephaniewalter
260
11k
jacobian
255
20k
addyosmani
310
21k
frogandcode
127
20k
Transcript
%BOHFS4XJGUಋೖͷεεϝ f o r .PC JMF "D U
0/ - * / &
} var employedBy = "YUMEMI Inc." var job = "iOS
Tech Lead" var favoriteLanguage = "Swift" var twitter = "@lovee" var qiita = "lovee" var github = "el-hoshino" var additionalInfo = """ Nintendo Switch ͕ͳ͔ͳ͔ͨΒͳ͍! """ final class Me: Developable, Talkable {
13 ͷϨϏϡʔͰɺ͜ΜͳࢦఠΑ͘͠·ͤΜ͔ʁ w ςετΛՃ͍ͯͩ͘͠͞ w $IBOHFMPHΛՃ͍ͯͩ͘͠͞ w ͜ͷ -JOU ϫʔχϯάΛमਖ਼͍ͯͩ͘͠͞
w मਖ਼ྔ͕ଟ͗͢ΔͷͰখׂ͍ͯͩ͘͘͞͠͞ w FUD
%BOHFS4XJGU
%BOHFS4XJGUͱ ΤϯδχΞ Ϧϙϗετ ʢ(JU)VCʣ $*$%αʔό ʢ#JUSJTFʣ ᶃίʔυΛ1VTIͯ͠ 13Λग़͢ ᶄτϦΨʔΛൃՐ ᶅςετσϓϩΠ
ͳͲΛ࣮ߦ ᶆ࣮ߦ݁ՌΛฦ͢ %BOHFS4XJGU 13ࠩͷ ੩తղੳ
13ࠩΛ ੩తղੳ͢Δπʔϧ %BOHFS4XJGUͱ
w ϑΝΠϧมߋ֬ೝ w Ϗϧυϫʔχϯά w ϒϥϯν֬ೝ w ςετΧόϨοδ ʢશମʣ w
ςετΧόϨοδ ʢϑΝΠϧ͝ͱʣ
ػցݕࠪͰ ϨϏϡΞʔͷෛ୲ΛݮΒ͢πʔϧ %BOHFS4XJGUͱ
Ͱ%BOHFS4XJGUΛ ಋೖͯ͠ΈΑ͏
IUUQTHJUIVCDPNEBOHFSTXJGU
%BOHFS4XJGUͷಋೖᶃϩʔΧϧฤ .JOUΛ͏ํ๏͋Δ͕ɺݱࡏόά͕͋ΔͬΆ͍ͷͰͷؒ)PNFCSFXͷํ͕͓͢͢Ί $ brew install danger-swift * $ cd path/to/project
$ danger-swift edit $ # edit in Xcode $ # return $ # Dangerfile.swift generated
%BOHFS4XJGUͷಋೖᶄಈ࡞ςετฤ $ # Create a Pull Request $ danger-swift pr
url/to/pr
%BOHFS4XJGUͷಋೖᶅ$*࣮ߦฤ .JOUΛ͏ํ๏͋Δ͕ɺݱࡏόά͕͋ΔͬΆ͍ͷͰͷؒ)PNFCSFXͷํ͕͓͢͢Ί $ brew install danger-swift * $ # set
$DANGER_GITHUB_API_TOKEN $ danger-swift ci
͢Ͱʹ%BOHFS͕͋Δͷʹ ͳͥ%BOHFS4XJGUΛਪ͔͢
%BOHFS %BOHFS4XJGU
ϓϩύςΟʔએݴͷδϟϯϓ
%BOHFSΑΓ%BOHFS4XJGU͕͍͍ͱ͜Ζ w ͍׳ΕͯΔ4XJGUͰ%BOHFSpMFॻ͚ΔͷͰɺॻ͘ ͷಡΉͷ3VCZΑΓָʢJ04ΤϯδχΞతʹʣ w *%&ͷαϙʔτ͕ड͚ΒΕΔͷͰɺ༷ΛશʹѲ Ͱ͖ͯͳͯ͘τϥΠˍΤϥʔͰॻ͍͍͚ͯΔ w ߏจΤϥʔϏϧυΤϥʔͳͷͰɺϩʔΧϧͰͷಈ࡞ ςετ3VCZϑΝΠϧΑΓίετ͕͍
w 4XJGU1.ϓϩδΣΫτରԠͷϓϥάΠϯ͕%BOHFS ΑΓॆ࣮
13ͷϨϏϡʔͰɺ͜ΜͳࢦఠΑ͘͠·ͤΜ͔ʁ w ςετΛՃ͍ͯͩ͘͠͞ w $IBOHFMPHΛՃ͍ͯͩ͘͠͞ w ͜ͷ-JOUϫʔχϯάΛमਖ਼͍ͯͩ͘͠͞ w मਖ਼ྔ͕ଟ͗͢ΔͷͰখׂ͍ͯͩ͘͘͞͠͞ w
FUD
%BOHFSpMFTXJGUαϯϓϧ let danger = Danger() // ςετΧόϨοδΛ֬ೝ import DangerSwiftCoverage //
package: https://github.com/f-meloni/danger-swift-coverage.git Coverage.xcodeBuildCoverage(.xcresultBundle("Test.xcresult"), minimumCoverage: 60) // Changelog ฤूঢ়گ֬ೝ if !danger.git.modifiedFiles.contains(where: { $0 == "CHANGELOG.md" }) { danger.warn("CHANGELOG Λฤू͍ͯͩ͘͠͞ɻ") } // SwiftLint ϫʔχϯάΛ֬ೝ SwiftLint.lint() // मਖ਼ྔΛ֬ೝ let additions = danger.github.pullRequest.additions ?? 0 let deletions = danger.github.pullRequest.deletions ?? 0 if additions + deletions > 1_000 { danger.warn("मਖ਼ྔ͕ଟ͗͢Ͱ͢ɻPR Λখׂ͍ͯͩ͘͘͞͠͞ɻ") } // ϦϦʔεલͷόʔδϣϯ൪߸มߋ֬ೝ import DangerSwiftHammer // package: https://github.com/el-hoshino/DangerSwiftHammer.git if danger.github.pullRequest.head.ref == "master" { let xcodeprojFileDiff = danger.hammer.diffLines(in: "Project.xcodeproj/project.pbxproj") if !xcodeprojFileDiff.additions.contains(where: { $0.contains("MARKETING_VERSION = ") }) { danger.warn("ϦϦʔεલʹόʔδϣϯ൪߸Λมߋ͍ͯͩ͘͠͞") } }
͞Βʹৄ͘͠ɿ IUUQTRJJUBDPNMPWFFJUFNTBEBFC
ࢀߟࢿྉ w IUUQTEBOHFSTZTUFNTTXJGU w IUUQTEBOHFSTZTUFNTSVCZ w IUUQTHJUIVCDPNEBOHFSTXJGU w IUUQTHJUIVCDPNFMIPTIJOP2VJDLTIB3FCMPC EFWFMPQ%BOHFSpMFTXJGU