æ¨æ¥ã®ã¨ã³ããªã¼ã®ç¶ãã§ãã
Gradleä¸è½æ´¾ã®åã«ã¯ãç´å¾ããããªãã£ãã®ã§ãæå¾ã¾ã§ãã£ã¦ã¿ããã¨ã«ãã¾ããã
åãæ¨ã¦ããã¨
ã¾ãã忣ãã¹ãã¯ä½ãç®çãªã®ãèããã¨ããã¹ãçµæããã¼ã¸ãããã¨ãç®çãªã®ã§ã以ä¸ã®ãã¨ã¯åãæ¨ã¦ã¾ããã
- dockerã®å¤ã§ã³ã³ãã¤ã«ããã¯ã©ã¹ãã¡ã¤ã«ã®å ±æ(æ¨æ¥ã®ããããªãã®2ã«ãããå ±æãã¦ãã³ã³ãã¤ã«ãã¦ãã¾ãã®ã§è«¦ãã)
src
ãã£ã¬ã¯ããªã¼ã®å ±æ(Javaãã¡ã¤ã«ãçæããã¿ã¹ã¯ãããå ´åã¯src
ãã£ã¬ã¯ããªã¼ã®å ±æãããã¨ãåã³ã³ãããJavaãã¡ã¤ã«çæãè¡ã£ã¦ãã¾ãã®ã§ã諦ãã)
ã2015/10/20 12:19追è¨ã ã¤ã¾ããã³ã³ãã¤ã«çµæãå
±æãã¦ãåã³ã³ãã¤ã«ãããã®ã§ãbuild
ãã£ã¬ã¯ããªã¼ã®å
±æã¯è«¦ãã¾ãã
ãã®çµæã妥åããã®ã¯æ¬¡ã®ç¹ã§ãã
- åã³ã³ããã§ã½ã¼ã¹ã³ã¼ãçæã¿ã¹ã¯ãå®è¡ãããã¨
- åã³ã³ããã§ã¡ã¤ã³ã®ã¯ã©ã¹ãã¡ã¤ã«ã®ã³ã³ãã¤ã«ãè¡ããã¨
- åã³ã³ããã§ãã¹ãã®ã¯ã©ã¹ãã¡ã¤ã«ã®ã³ã³ãã¤ã«ãè¡ããã¨
å ±æãããã¡ã¤ã«
以ä¸ãããå ±æãããã¡ã¤ã«ã¯ä»¥ä¸ã«çµãã¾ããã
caches/modules-2/files-2.1
- dependencyãã¡ã¤ã«ãå ±æãã¦ãç¡é§ã«jarã®ãã¦ã³ãã¼ããé¿ããããcaches/modules-2/metadata-2.15
- ä¸è¨ã¨åãbuild/test-result
ãã£ã¬ã¯ããªã¼ - 忣ãã¦ãã¹ãå®è¡ããçµæãæ¸ãè¾¼ããã
ããã«ã諦ãããã¨
æ¨æ¥ã¯docker-compose
ããdockerã³ã³ãããèµ·åãã¦ãã¾ããããdocker-compose
ããèµ·åããã¨ã使
ãbuild/dependency-cache
ãã£ã¬ã¯ããªã¼ã®çæã«å¤±æãã¦ãã«ããæåã§ããªãã¨ããäºè±¡ãããã¾ããã
- ãªãã
docker run
ããã³ã³ãããèµ·åããå ´åã¯ãä¸è¨ã®ãã£ã¬ã¯ããªã¼çæã«å¤±æãããã¨ã¯ããã¾ãã docker run
ããã³ã³ãããè¤æ°èµ·åããå ´åãåæ§ã«ãä¸è¨ã®ãã£ã¬ã¯ããªã¼çæã«å¤±æãããã¨ã¯ããã¾ããdocker-compose
ããã³ã³ãããä¸ã¤èµ·åããå ´åã§ããä¸è¨ã®ãã£ã¬ã¯ããªã¼çæã«å¤±æãã
ãããã®ç¾è±¡ãå å³ããçµæãdocker-compose
ã§ã®ã³ã³ããèµ·åã¯è«¦ãã¦ãdocker run
ã«ãã£ã¦è¤æ°ã¹ã¬ããã§ä¸¦è¡ãã¦ã³ã³ãããèµ·åããæ¹æ³ãæ¡æãã¾ããã
ææ
以ä¸ãã¾ã¨ãã¦ãè¤æ°ã®dockerã³ã³ããã§ãã¹ãã並åå®è¡ãããããªãµã³ãã«ããã¸ã§ã¯ãã宿ãã¾ããã
ãã®ããã¸ã§ã¯ãã®distTest
ãå®è¡ããã¨ãdockerã³ã³ãããè¤æ°èµ·åãã¦ãã¹ãç°å¢ãéé¢ããã¾ã¾ãã¹ãã並åå®è¡ã§ãã¾ãã
ãã°ã¯ãããªæã
$ gradle distTest Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 :buildSrc:compileJava UP-TO-DATE :buildSrc:compileGroovy UP-TO-DATE :buildSrc:processResources UP-TO-DATE :buildSrc:classes UP-TO-DATE :buildSrc:jar UP-TO-DATE :buildSrc:assemble UP-TO-DATE :buildSrc:compileTestJava UP-TO-DATE :buildSrc:compileTestGroovy UP-TO-DATE :buildSrc:processTestResources UP-TO-DATE :buildSrc:testClasses UP-TO-DATE :buildSrc:test UP-TO-DATE :buildSrc:check UP-TO-DATE :buildSrc:build UP-TO-DATE :copyProjectFiles :createTestResultsDir UP-TO-DATE :writeDockerfile UP-TO-DATE :dockerBuild Sending build context to Docker daemon 77.82 kB Step 0 : FROM mikeneck/gradle ---> 1720aa922a94 Step 1 : USER root ---> Using cache ---> 01a3316dc9d8 Step 2 : RUN mkdir -p /home/gradle/.gradle/caches/modules-2/files-2.1 && mkdir -p /home/gradle/.gradle/caches/modules-2/metadata-2.15 && mkdir -p /home/gradle/project/build/dist-test ---> Using cache ---> 1b8cee94ad1e Step 3 : VOLUME /home/gradle/.gradle/caches/modules-2/files-2.1 ---> Using cache ---> 736cda47bacb Step 4 : VOLUME /home/gradle/.gradle/caches/modules-2/metadata-2.15 ---> Using cache ---> 533e5c464749 Step 5 : VOLUME /home/gradle/project/build/dist-test ---> Using cache ---> f7befe5611a8 Step 6 : WORKDIR /home/gradle/project ---> Using cache ---> b20935239c3b Step 7 : ADD src/ /home/gradle/project/src ---> Using cache ---> 1d936eab6fdc Step 8 : ADD buildSrc/ /home/gradle/project/buildSrc ---> dc816d72e386 Removing intermediate container 5c19b832caa7 Step 9 : ADD build.gradle /home/gradle/project/build.gradle ---> 3498c2975adc Removing intermediate container cc9eca27ba49 Step 10 : ADD settings.gradle /home/gradle/project/settings.gradle ---> 4cd61cc8b129 Removing intermediate container 4351a94629ec Step 11 : ADD gradle.properties /home/gradle/project/gradle.properties ---> 5b752a803e30 Removing intermediate container 81cfa4d1944e Step 12 : RUN mkdir -p /home/gradle/project/buildSrc/.gradle && chown -R gradle -R /home/gradle/.gradle && chown -R gradle /home/gradle/project && chown -R gradle /home/gradle/project/build && chown -R gradle /home/gradle/project/build/dist-test ---> Running in 1f6fd2e5a6ad ---> bb126c3e38b8 Removing intermediate container 1f6fd2e5a6ad Step 13 : USER gradle ---> Running in d5f708078091 ---> 83a26282ebe7 Removing intermediate container d5f708078091 Successfully built 83a26282ebe7 :prepareDocker :runTestOnDocker :removeContainer :reportDistributedTest :distTest BUILD SUCCESSFUL Total time: 3 mins 35.146 secs
ãªãããã®ãã¹ãã¯javajo-gradleã§ãã£ãé
ããã¹ãã¨ãã¦ãã¹ã並åå®è¡ã®é¡æã«ãããã®ã§ãmaxParallelForks
ã4ã«è¨å®ããã¨35ç§ãããã§ããããã®ã§ãããããã£ã¦ãä¸ã®ãããªå¦¥åããé¨åãããã«å½±é¿ãã¦ããã«ããé
ããªã£ã¦ããã¨ããå°è±¡ã¯å¦ãã¾ããã
å ãã¿ã®ãã¤ã¼ãããèæ ®ããéããé度ããç°å¢ã®éé¢ã«éç¹ãç½®ããã¦ãããããªã®ã§ãã¾ãããã«ããé ãã®ã¯è«¦ãã¦ãã ããã
@johtani è¤æ°å°ã ã¨å¬ãããã©åä¸ãã·ã³ã§ãokãå¤é¨ä¾åãããããdockerã§éé¢ããªãã¨ä¸¦åå®è¡ãã§ããªãã®ã§ãã
— ãããã (@tamtam180) 2015, 10æ 16
ãã¨ããã®ããã¸ã§ã¯ãã¯buildSrc
ã«ãã£ã¦ã«ã¹ã¿ã ãã©ã°ã¤ã³ã使ããªãã¨ãdockerã§åæ£ãã¹ãå®è¡ã§ããªãã®ã§ãããã¸ã§ã¯ãã®ä½ãã«ã©ããã¦ãä¾åãã¦ãã¾ãã¾ãããããã£ã¦ãæ±ç¨çã«åæ£å®è¡ãããããªæ¹æ³ã¯ãªãã¨æããã¾ãã
ã¾ããGradle plugin portalã§èª¿ã¹ã¾ããããdockeré¢é£ã®ãã©ã°ã¤ã³ã¯dockerã³ã³ããã®ããã¼ã¸/ã¤ã¡ã¼ã¸ã®Docker Hubã¸ã®ããã·ã¥ãªã©ã®ãã®ãããªãã®ã§ããã¯ã忣ãã¹ãå®è¡ããããã«ã¯ãããã¸ã§ã¯ãã¹ã£ããã«ãã©ã°ã¤ã³(buildSrc
ããã¸ã§ã¯ã)ãä½ãããå¿
è¦ãããã§ãããã
ãããGradleã«é¢ãã¦ãä½ããç¸è«ãããã°ã伺ãã¾ãã®ã§ãæ°è»½ã«ãç¸è«ãã ãã(ãã¡ãæå)ã
以ä¸