Slide 1

Slide 1 text

"OESPJE։ൃʹ͓͍ͯͷࣗಈԽ ͋Ε͜Ε 3VJ

Slide 2

Slide 2 text

3VJ OPUF "OESPJEΤϯδχΞ ,:050ϫούʔ͕ؾʹͳΔ

Slide 3

Slide 3 text

w ߦͳͬͨࣗಈԽ w ΠϯύΫτ͕͋ͬͨ΋ͷΛ঺հͦͷ w ΠϯύΫτ͕͋ͬͨ΋ͷΛ঺հͦͷ

Slide 4

Slide 4 text

ߦͳͬͨࣗಈԽ w ϦϦʔεϒϥϯν13࡞੒ɺ(PPHMF1MBZ΁ͷࣗಈΞοϓϩʔυ w ϦϦʔεϊʔτ13࡞੒ɺ4MBDL௨஌ w ,UMJOUνΣοΫ w 1VMM3FRVFTUʹMBCFMɺNJMFTUPOFɺBTTJHOFFΛࣗಈઃఆ w 1VMM3FRVFTUΛ"*ʹཁ໿

Slide 5

Slide 5 text

,UMJOUͱ͸ w ,UMJOU͸ɺ,PUMJOͷίʔυελΠϧΛνΣοΫ͠ɺࣗಈͰमਖ਼ͯ͘͠ΕΔπʔ ϧͰ͢ɻ w ,PUMJOͷίʔσΟϯάن໿ͱ"OESPJE,PUMJOελΠϧΨΠυʹԊͬͯίʔυ Λ੔ܗ͠·͢ɻ ࢀরIUUQTQJOUFSFTUHJUIVCJPLUMJOUMBUFTU

Slide 6

Slide 6 text

,UMJOUͷࣗಈԽͰߦͳͬͨ͜ͱ w ໨త13ʹ,UMJOUͰࢦఠ͞Εͨमਖ਼Օॴͷఏࣔ w ࢖༻ͨ͠πʔϧ4QPUMFTTɺ3FWJFXEPH ࢀߟIUUQTRJJUBDPNUBLBIJSPNJUFNTBEF

Slide 7

Slide 7 text

,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͢Δ

Slide 8

Slide 8 text

,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Ͱ ϑΥʔϚοτνΣοΫΛߦ͏ɻ

Slide 9

Slide 9 text

,UMJOUͷࣗಈԽͰߦͳͬͨ͜ͱ w 13Λ࡞੒ͨ͠ࡍʹɺ,UMJOUͷϑΥʔ ϚοτʹԊͬͨ4VHHFTUJPOΛͯ͘͠ ΕΔΑ͏ʹͳΓ·͢ɻ

Slide 10

Slide 10 text

,UMJOUͷࣗಈԽΛͯ͠Α͔ͬͨ͜ͱ w νʔϜ಺ͰͷίʔυελΠϧͷ౷Ұ w ίʔυ඼࣭ͷ޲্

Slide 11

Slide 11 text

(PPHMF1MBZ΁ͷࣗಈΞοϓϩʔυ w ໨తϦϦʔεϒϥϯνʹίϛοτ͞ΕΔͨͼʹɺ(PPHMF1MBZ΁ͷࣗಈΞο ϓϩʔυ w ࢖༻ͨ͠πʔϧ$JSDMF$*ɺ'BTUMBOF w ϦϦʔεϒϥϯνͷӡ༻εϓϦϯτຖͷ࣮૷͕ऴ͍ྃͯ͠Δஈ֊Ͱ࡞੒͠ ͯɺෆ۩߹मਖ਼౳͕͋ͬͨΒमਖ਼ΛؚΉɻ

Slide 12

Slide 12 text

$JSDMF$*ϑϩʔ

Slide 13

Slide 13 text

όʔδϣϯߋ৽ ৽ͨͳ $PNNJU WFSTJPO$PEF ߋ৽ $PNNJU WFSTJPO$PEF 6QMPBEUP (PPHMFQMBZ

Slide 14

Slide 14 text

όʔδϣϯίʔυΛߋ৽ - &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$*ͷϏϧυ͕࠶ͼߦΘΕͳ͍ Α͏ʹΛ͚ͭΔ

Slide 15

Slide 15 text

όʔδϣϯίʔυΛߋ৽ // 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಺Ͱ্هͷόʔδϣ ϯίʔυΛΠϯΫϦϝϯτ͢Δ

Slide 16

Slide 16 text

(PPHMF1MBZ΁ͷࣗಈΞοϓϩʔυ - &deploy_google_play_console name: "Deploy Google Play Console" command: | bundle exec fastlane deploy w ࠷ޙʹGBTUMBOF࢖༻ͯ͠ɺEFQMPZ͢ Δ

Slide 17

Slide 17 text

ࣗಈԽΛͯ͠Α͔ͬͨ͜ͱ w ϦϦʔεϒϥϯνΛ࡞੒͔ͯ͠Β͸ɺίϛοτ͞ΕΔͨͼʹΞοϓϩʔυͯ͠ ͍ΔͷͰɺجຊతʹ৮Βͳ͍ͰΦοέʔ w ϦϦʔεपΓΛखಈͰ΍Βͳͯ͘΋͍͍ͷͰɺਓతϛε͕গͳ͘ͳΔ w ݱࡏɺ4MBDLͷϫʔΫϑϩʔ͔Β;BQJFSΛ࢖༻ͯ͠ɺϒϥϯνɺ13Λ࡞੒͠ ͯɺ(PPHMFQMBZ΁ͷΞοϓϩʔυɺ4MBDL௨஌·Ͱߦͳ͍ͬͯ·͢ɻ

Slide 18

Slide 18 text

5IBOLZPV