Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Android開発においての自動化あれこれ
Search
Rui
November 20, 2024
520
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
350
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Are puppies a ranking factor?
jonoalderson
2
4.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
350
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
360
Technical Leadership for Architectural Decision Making
baasie
3
610
Deep Space Network (abreviated)
tonyrice
0
380
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