Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android開発においての自動化あれこれ
Search
Rui
November 20, 2024
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Android開発においての自動化あれこれ
Rui
November 20, 2024
More Decks by Rui
See All by Rui
Protoファイルを使用しないProto DataStore実装
ruit
0
310
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
KATA
mclloyd
PRO
35
15k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Leo the Paperboy
mayatellez
7
1.8k
Crafting Experiences
bethany
1
180
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Odyssey Design
rkendrick25
PRO
2
700
Transcript
"OESPJE։ൃʹ͓͍ͯͷࣗಈԽ ͋Ε͜Ε 3VJ
3VJ OPUF "OESPJEΤϯδχΞ ,:050ϫούʔ͕ؾʹͳΔ
w ߦͳͬͨࣗಈԽ w ΠϯύΫτ͕͋ͬͨͷΛհͦͷ w ΠϯύΫτ͕͋ͬͨͷΛհͦͷ
ߦͳͬͨࣗಈԽ w ϦϦʔεϒϥϯν13࡞ɺ(PPHMF1MBZͷࣗಈΞοϓϩʔυ w ϦϦʔεϊʔτ13࡞ɺ4MBDL௨ w ,UMJOUνΣοΫ w 1VMM3FRVFTUʹMBCFMɺNJMFTUPOFɺBTTJHOFFΛࣗಈઃఆ w
1VMM3FRVFTUΛ"*ʹཁ
,UMJOUͱ w ,UMJOUɺ,PUMJOͷίʔυελΠϧΛνΣοΫ͠ɺࣗಈͰमਖ਼ͯ͘͠ΕΔπʔ ϧͰ͢ɻ w ,PUMJOͷίʔσΟϯάنͱ"OESPJE,PUMJOελΠϧΨΠυʹԊͬͯίʔυ Λܗ͠·͢ɻ ࢀরIUUQTQJOUFSFTUHJUIVCJPLUMJOUMBUFTU
,UMJOUͷࣗಈԽͰߦͳͬͨ͜ͱ w త13ʹ,UMJOUͰࢦఠ͞Εͨमਖ਼Օॴͷఏࣔ w ༻ͨ͠πʔϧ4QPUMFTTɺ3FWJFXEPH ࢀߟIUUQTRJJUBDPNUBLBIJSPNJUFNTBEF
,UMJOUͷࣗಈԽͰߦͳͬͨ͜ͱ name: ktLint-checker on: [ pull_request ] jobs: kotlin: name:
runner / suggester / spotless runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - run: ./gradlew ktlintFormat - run: ./gradlew spotlessKotlinApply - uses: reviewdog/action-suggester@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} tool_name: spotless w HJUIVCXPSL fl PXTLUMJOU DIFDLFSZNMͰ࡞͢Δ w TQPUMFTT,PUMJO"QQMZͰ,UMJOUʹԊ͏ Α͏ʹमਖ਼ͯ͠ɺSFWJFXEPXͰ TVHHFTUJPO͢Δ
,UMJOUͷࣗಈԽͰߦͳͬͨ͜ͱ tasks.register("ktlintFormat", JavaExec::class.java) { description = "Fix Kotlin code style
deviations." mainClass.set("com.pinterest.ktlint.Main") classpath = ktlint group = "formatting" args = listOf("-F", "src/**/*.kt") jvmArgs = listOf("--add-opens", "java.base/ java.lang=ALL-UNNAMED") } w TQPUMFTT,PUMJO"QQMZͷΈͩͱม ͯ͘͠Εͳ͍ͱ͜Ζ͕͋ͬͨͷͰɺ CVJMEHSBEMFLUTʹࣗ࡞Ͱ,UMJOUͰ ϑΥʔϚοτνΣοΫΛߦ͏ɻ
,UMJOUͷࣗಈԽͰߦͳͬͨ͜ͱ w 13Λ࡞ͨ͠ࡍʹɺ,UMJOUͷϑΥʔ ϚοτʹԊͬͨ4VHHFTUJPOΛͯ͘͠ ΕΔΑ͏ʹͳΓ·͢ɻ
,UMJOUͷࣗಈԽΛͯ͠Α͔ͬͨ͜ͱ w νʔϜͰͷίʔυελΠϧͷ౷Ұ w ίʔυ࣭ͷ্
(PPHMF1MBZͷࣗಈΞοϓϩʔυ w తϦϦʔεϒϥϯνʹίϛοτ͞ΕΔͨͼʹɺ(PPHMF1MBZͷࣗಈΞο ϓϩʔυ w ༻ͨ͠πʔϧ$JSDMF$*ɺ'BTUMBOF w ϦϦʔεϒϥϯνͷӡ༻εϓϦϯτຖͷ࣮͕ऴ͍ྃͯ͠Δஈ֊Ͱ࡞͠ ͯɺෆ۩߹मਖ਼͕͋ͬͨΒमਖ਼ΛؚΉɻ
$JSDMF$*ϑϩʔ
όʔδϣϯߋ৽ ৽ͨͳ $PNNJU WFSTJPO$PEF ߋ৽ $PNNJU WFSTJPO$PEF 6QMPBEUP (PPHMFQMBZ
όʔδϣϯίʔυΛߋ৽ - &update_version_code name: "commit & push update versionCode" command:
| git config user.email “
[email protected]
” git config user.name "note Android auto committer" git pull origin $(git branch --show-current) ./gradlew updateVersionCode git add note/app_version.properties git commit -m "[ci skip][auto commit] update to versionCode" git push origin HEAD w DJSDMFDJDPO fi HZNM w HJUDPO fi HͰϢʔβʔใΛઃఆ w $JSDMF$*ͷϏϧυ͕࠶ͼߦΘΕͳ͍ Α͏ʹ<DJTLJQ>Λ͚ͭΔ
όʔδϣϯίʔυΛߋ৽ // app_version.properties versionName=8.21.0 versionCode=366 // build.gradle.kts tasks.register("updateVersionCode") { doLast
{ val appVersionPropertyFile = "app_version.properties" val propertyKeyVersionCode = "versionCode" val propertyFile = file(appVersionPropertyFile) val props = loadProperties(propertyFile) val nextVersionCode = props.getProperty(propertyKeyVersionCode).toInt() + 1 props.setProperty(propertyKeyVersionCode, nextVersionCode.toString()) props.store(propertyFile.writer(), null) } } fun loadProperties(file: File): Properties { val props = Properties() file.inputStream().use { props.load(it) } return props } w BQQ@WFSTJPOQSPQFSUJFTʹόʔδϣ ϯίʔυΛఆٛ w #VJMEHSBEMFLUTͰ্هͷόʔδϣ ϯίʔυΛΠϯΫϦϝϯτ͢Δ
(PPHMF1MBZͷࣗಈΞοϓϩʔυ - &deploy_google_play_console name: "Deploy Google Play Console" command: |
bundle exec fastlane deploy w ࠷ޙʹGBTUMBOF༻ͯ͠ɺEFQMPZ͢ Δ
ࣗಈԽΛͯ͠Α͔ͬͨ͜ͱ w ϦϦʔεϒϥϯνΛ࡞͔ͯ͠Βɺίϛοτ͞ΕΔͨͼʹΞοϓϩʔυͯ͠ ͍ΔͷͰɺجຊతʹ৮Βͳ͍ͰΦοέʔ w ϦϦʔεपΓΛखಈͰΒͳ͍͍ͯ͘ͷͰɺਓతϛε͕গͳ͘ͳΔ w ݱࡏɺ4MBDLͷϫʔΫϑϩʔ͔Β;BQJFSΛ༻ͯ͠ɺϒϥϯνɺ13Λ࡞͠ ͯɺ(PPHMFQMBZͷΞοϓϩʔυɺ4MBDL௨·Ͱߦͳ͍ͬͯ·͢ɻ
5IBOLZPV