ã¯ããã«
ãã®ã¬ã€ãã¯ãGradleãã«ãã·ã¹ãã ã䜿ã£ãŠJavaã®ãããžã§ã¯ãã®ããã®ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒãå®è¡ããã¯ãŒã¯ãããŒãäœæããæ¹æ³ã玹ä»ããŸãã äœæããã¯ãŒã¯ãããŒã«ãã£ãŠããã«ãªã¯ãšã¹ãã«å¯Ÿããã³ããããããã©ã«ããã©ã³ãã«å¯ŸããŠãã«ããããã¯ãã¹ãã®å€±æãåŒãèµ·ãããããšãèŠãããšãã§ããããã«ãªããŸãããã®ã¢ãããŒãã¯ãã³ãŒããåžžã«å¥å šã§ããããšãä¿èšŒããããã®åœ¹ã«ç«ã¡ãŸãã CIã¯ãŒã¯ãããŒããã£ãã·ã¥ ãã¡ã€ã«ã«æ¡åŒµããŠãã¯ãŒã¯ãããŒã®å®è¡ã«ããææç©ãã¢ããããŒãããããã«ãã§ããŸãã
GitHub ãã¹ããã ã©ã³ããŒã«ã¯ããªã€ã³ã¹ããŒã«ããããœãããŠã§ã¢ã®ããããŒã« ãã£ãã·ã¥ããããJava éçºããã (JDK) ãš Gradle ãå«ãŸããŠããŸãã JDK ãš Gradle ã«é¢ãããœãããŠã§ã¢ãšãã¬ã€ã³ã¹ããŒã«ãããããŒãžã§ã³ã®äžèЧã«ã€ããŠã¯ããGitHub ãã¹ããã ã©ã³ããŒããåç §ããŠãã ããã
åææ¡ä»¶
YAMLãšGitHub Actionsã®æ§æã«éŠŽæãã§ããå¿ èŠããããŸãã 詳现ã«ã€ããŠã¯ã以äžãåç §ããŠãã ãã:
Javaåã³Gradleãã¬ãŒã ã¯ãŒã¯ã®åºæ¬çãªçè§£ãããŠããããšãããããããŸãã 詳现ã«ã€ããŠã¯ããGradle ã®ãŠãŒã¶ãŒ ããã¥ã¢ã«ããåç §ããŠãã ããã
Gradle ã¯ãŒã¯ãã㌠ãã³ãã¬ãŒãã®äœ¿çš
ããã«éå§ããã«ã¯ããªããžããªã® .github/workflows
ãã£ã¬ã¯ããªã«ã¯ãŒã¯ãã㌠ãã³ãã¬ãŒãã远å ããŸãã
GitHub ã«ã¯ãã»ãšãã©ã® Gradleãããžã§ã¯ãã® Java ã§åäœãã Gradle ã®ã¯ãŒã¯ãã㌠ãã³ãã¬ãŒããçšæãããŠããŸãã ãã®ã¬ã€ãã®ä»¥éã®ã»ã¯ã·ã§ã³ã§ã¯ããã®ã¯ãŒã¯ãã㌠ãã³ãã¬ãŒããã«ã¹ã¿ãã€ãºããæ¹æ³ã®äŸã瀺ããŸãã
-
GitHub ã§ããªããžããªã®ã¡ã€ã³ ããŒãžã«ç§»åããŸãã
-
ãªããžããªåã®äžã«ãã [ã¢ã¯ã·ã§ã³] ãã¯ãªãã¯ããŸãã
-
ã¯ãŒã¯ãããŒãæ¢ã«ãªããžããªå ã«ããå Žåã¯ã [æ°ããã¯ãŒã¯ãããŒ] ãã¯ãªãã¯ããŸãã
-
[ã¯ãŒã¯ãããŒã®éžæ] ããŒãžã«ã¯ãæšå¥šãããã¯ãŒã¯ãã㌠ãã³ãã¬ãŒãã®éžæã衚瀺ãããŸãã ãJava with Gradleããæ€çŽ¢ããŸãã
-
"Java with Gradle" ã¯ãŒã¯ãããŒã§ã[æ§æ] ãã¯ãªãã¯ããŸãã ãã®ã¯ãŒã¯ãããŒã¯ä»¥äžã®ã¹ããããå®è¡ããŸãã
-
ãããžã§ã¯ãã®ãªããžããªã®ã³ããŒããã§ãã¯ã¢ãŠãããŸãã
-
Java JDKãã»ããã¢ããããŸãã
-
Gradle ç°å¢ãèšå®ããŸãã
gradle/actions/setup-gradle
ã¢ã¯ã·ã§ã³ã¯ ãã¯ãŒã¯ãããŒå®è¡éã®ãã£ãã·ã¥ç¶æ ãåŠçãããã¹ãŠã® Gradle å®è¡ã®è©³çŽ°ãªæŠèŠãæäŸããŸãã -
"Gradle ã§ãã«ããã" ã®ã¹ãããã§ã¯ãGradle ã©ãããŒã䜿çšããŠ
build
ã¿ã¹ã¯ãå®è¡ãããŸãã -
å¿ èŠã«å¿ããŠã¯ãŒã¯ãããŒãç·šéããŸãã ããšãã°ãJava ã®ããŒãžã§ã³ã倿ŽããŸãã
ã¡ã¢
- ãã®ã¯ãŒã¯ãã㌠ãã³ãã¬ãŒãã§ã¯ãGitHub ã«ãã£ãŠèªå®ãããŠããªãã¢ã¯ã·ã§ã³ã䜿ãããŸãã ãµãŒã ããŒãã£ã«ãã£ãŠæäŸãããã¢ã¯ã·ã§ã³ã«ã¯ãåå¥ã®ãµãŒãã¹äœ¿çšæ¡ä»¶ããã©ã€ãã·ãŒ ããªã·ãŒãããã³ãµããŒã ããã¥ã¡ã³ããé©çšãããŸãã
- ãµãŒã ããŒãã£ã®ã¢ã¯ã·ã§ã³ã䜿çšããã«ã¯ãã³ããã SHA ã§æå®ãããããŒãžã§ã³ã䜿çšããå¿ èŠããããŸãã ã¢ã¯ã·ã§ã³ã倿Žãããæ°ããããŒãžã§ã³ã䜿çšããå Žåã¯ãSHA ãæŽæ°ããå¿ èŠããããŸãã ã¿ã°ãŸãã¯ãã©ã³ããåç §ããŠããŒãžã§ã³ãæå®ã§ããŸãããã¢ã¯ã·ã§ã³ã¯èŠåãªãã«å€æŽãããå¯èœæ§ããããŸãã 詳ããã¯ããã»ãã¥ãªãã£ã§ä¿è·ããã䜿çšã«é¢ãããªãã¡ã¬ã³ã¹ããã芧ãã ããã
-
[倿Žãã³ããããã] ãã¯ãªãã¯ããŸãã
gradle.yml
ã¯ãŒã¯ãã㌠ãã¡ã€ã«ããªããžããªã® .github/workflows
ãã£ã¬ã¯ããªã«è¿œå ãããŸãã
Javaã®ããŒãžã§ã³ãšã¢ãŒããã¯ãã£ã®æå®
ã¯ãŒã¯ãã㌠ãã³ãã¬ãŒãã§ x64 ãã©ãããã©ãŒã çšã® OpenJDK 8 ãå«ãããã« PATH
ãèšå®ããŸãã ç°ãªãããŒãžã§ã³ã® Java ã䜿çšããå Žåããããã¯ç°ãªãã¢ãŒããã¯ã㣠(x64
ãŸã㯠x86
) ãã¿ãŒã²ãããšããå Žåãsetup-java
ã¢ã¯ã·ã§ã³ã䜿ã£ãŠç°ãªã Java ã©ã³ã¿ã€ã ç°å¢ãéžæã§ããŸãã
ããšãã°ãx64 ãã©ãããã©ãŒã ã«å¯Ÿã㊠Adoptium ã«ãã£ãŠæäŸããã JDK ã®ããŒãžã§ã³ 11 ã䜿çšããã«ã¯ãsetup-java
ã¢ã¯ã·ã§ã³ã䜿çšããŠãjava-version
ãdistribution
ãarchitecture
ãã©ã¡ãŒã¿ãŒã '11'
ã'temurin'
ãx64
ã«èšå®ããŸãã
steps: - uses: actions/checkout@v4 - name: Set up JDK 11 for x64 uses: actions/setup-java@v4 with: java-version: '11' distribution: 'temurin' architecture: x64
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11 for x64
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
architecture: x64
詳现ã«ã€ããŠã¯ããsetup-java
ã¢ã¯ã·ã§ã³ããåç
§ããŠãã ããã
ã³ãŒãã®ãã«ããšãã¹ã
ããŒã«ã«ã§äœ¿ãã®ãšåãã³ãã³ãããã³ãŒãã®ãã«ããšãã¹ãã«äœ¿ããŸãã
ã¯ãŒã¯ãã㌠ãã³ãã¬ãŒãã§ã¯ãæ¢å®ã§ build
ã¿ã¹ã¯ãå®è¡ãããŸãã ããã©ã«ãã®Gradleã®èšå®ã§ã¯ããã®ã³ãã³ãã¯äŸåé¢ä¿ãããŠã³ããŒãããã¯ã©ã¹ããã«ããããã¹ããå®è¡ããããšãã°JARãã¡ã€ã«ã®ãããªé
åžå¯èœãªãã©ãŒãããã«ã¯ã©ã¹ãããã±ãŒãžããŸãã
ãããžã§ã¯ãã®ãã«ãã«ç°ãªãã³ãã³ãã䜿ã£ãããç°ãªãã¿ã¹ã¯ã䜿ãããã®ã§ããã°ãããããæå®ã§ããŸãã ããšãã°ãci.gradle
ãã¡ã€ã«ã§æ§æãããŠãã package
ã¿ã¹ã¯ãå®è¡ã§ããŸãã
steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2 - name: Build with Gradle run: ./gradlew -b ci.gradle package
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
- name: Build with Gradle
run: ./gradlew -b ci.gradle package
äŸåé¢ä¿ã®ãã£ãã·ã³ã°
ãã«ãã®äŸåé¢ä¿ããã£ãã·ã¥ããŠãã¯ãŒã¯ãããŒã®å®è¡ãé«éåã§ããŸãã æ£åžžã«å®è¡ããããšãgradle/actions/setup-gradle
ã«ãã£ãŠ Gradle ãŠãŒã¶ãŒ ããŒã ãã£ã¬ã¯ããªã®éèŠãªéšåããã£ãã·ã¥ãããŸãã 以éã®ãžã§ãã§ã¯ããã£ãã·ã¥ã埩å
ãããã®ã§ããã«ã ã¹ã¯ãªãããåã³ã³ãã€ã«ããå¿
èŠããªããäŸåé¢ä¿ããªã¢ãŒã ããã±ãŒãž ãªããžããªããããŠã³ããŒãããå¿
èŠããªããªããŸãã
gradle/actions/setup-gradle
ã¢ã¯ã·ã§ã³ã䜿çšããŠãããšãã¯ããã£ãã·ã¥ãæ¢å®ã§æå¹ã«ãªããŸãã 詳现ã«ã€ããŠã¯ãgradle/actions/setup-gradle
ãåç
§ããŠãã ããã
ææç©ãšããŠã®ã¯ãŒã¯ãããŒã®ããŒã¿ã®ããã±ãŒãžå
ãã«ããæåãããã¹ãããã¹ããåŸã«ã¯ãçµæã®Javaã®ããã±ãŒãžããã«ãã®ææç©ãšããŠã¢ããããŒãããããšã«ãªããããããŸããã ããããã°ããã«ããããããã±ãŒãžãã¯ãŒã¯ãããŒã®å®è¡ã®äžéšãšããŠä¿åããããšã«ãªããããããããŠã³ããŒãã§ããããã«ãªããŸãã ææç©ã«ãã£ãŠãPull RequestãããŒãžããåã«ããŒã«ã«ã®ç°å¢ã§ãã¹ãåã³ãããã°ãããããªããŸãã 詳ããã¯ããã¯ãŒã¯ãããŒææç©ã䜿ã£ãããŒã¿ã®æ ŒçŽãšå ±æããã芧ãã ããã
Gradle ã§ã¯ãéåžžãJARãEARãWAR ã®ãããªåºåãã¡ã€ã«ã build/libs
ãã£ã¬ã¯ããªã«äœæãããŸãã upload-artifact
ã¢ã¯ã·ã§ã³ã䜿çšããŠããã®ãã£ã¬ã¯ããªã®å
容ãã¢ããããŒãã§ããŸãã
steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2 - name: Build with Gradle run: ./gradlew build - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: Package path: build/libs
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
- name: Build with Gradle
run: ./gradlew build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: Package
path: build/libs