From eb6d144f0b1462b6c4b96697569744f0107063b5 Mon Sep 17 00:00:00 2001 From: Syogo-Suganoya Date: Sat, 30 Sep 2023 21:25:59 +0900 Subject: [PATCH 1/4] fix #55 --- contents/sample/book/chapter2.md | 24 +-- contents/sample/book/chapter5.md | 8 +- contents/sample/coding-java-2/track.yml | 2 +- contents/sample/coding-java/README.md | 4 +- contents/sample/coding-java/build.gradle | 2 +- contents/sample/coding-java/track.yml | 2 +- contents/sample/shell/track.yml | 2 +- .../coding-csharp-testrunner/src/main.csproj | 5 +- .../coding-csharp-testrunner/track.yml | 4 +- .../tutorial/coding-java-testrunner/track.yml | 2 +- docs/ja/env.md | 144 ++++++++++++++---- docs/ja/how-to-make-book.md | 2 +- 12 files changed, 141 insertions(+), 60 deletions(-) diff --git a/contents/sample/book/chapter2.md b/contents/sample/book/chapter2.md index 2d152e0f..aa865d47 100644 --- a/contents/sample/book/chapter2.md +++ b/contents/sample/book/chapter2.md @@ -21,10 +21,10 @@ ${console}.${log}("Hello World!"); ### env -- imageName: givery/track-nodejs-8 +- imageName: nodejs ### hint -JavaScript(Node.js)を使用するセクションを作成する際にはDockerイメージとして`givery/track-nodejs-8`を使用します。 +JavaScript(Node.js)を使用するセクションを作成する際にはDockerイメージとして`nodejs`を使用します。 このブックではセクション毎に使用する言語が異なるため各セクションで`env`を指定していますが、通常は1つのブックで扱う言語はひとつだけなので、book.ymlで指定します。 @@ -51,11 +51,11 @@ ${puts} "Hello World!" - command: ruby main.rb ### hint -Rubyを使用するセクションを作成する際にはDockerイメージとして`givery/track-ruby-2.5`を使用します。 +Rubyを使用するセクションを作成する際にはDockerイメージとして`ruby`を使用します。 ### env -- imageName: givery/track-ruby-2.5 +- imageName: ruby ## Pythonで「Hello World!」 Pythonで「Hello World!」を出力してみましょう。 @@ -64,7 +64,7 @@ Pythonで「Hello World!」を出力してみましょう。 ``` ### remote -- command: python main.py +- command: python3 main.py ``` ### main(main.py) @@ -74,14 +74,14 @@ ${print}("Hello World!") ``` ### remote -- command: python main.py +- command: python3 main.py ### env -- imageName: givery/track-python-3.6 +- imageName: python ### hint -Python(Ptyhon3)を使用するセクションを作成する際にはDockerイメージとして`givery/track-python-3.6`を使用します。 +Python(Ptyhon3)を使用するセクションを作成する際にはDockerイメージとして`python`を使用します。 `givery/track-python-2.7`を使用してPython2系のブックを書くこともできます。 @@ -112,7 +112,7 @@ class Main { ``` ### hint -Javaを使用するセクションを作成する際にはDockerイメージとして`givery/track-java-8`を使用します。 +Javaを使用するセクションを作成する際にはDockerイメージとして`java`を使用します。 ### remote - build: javac Main.java @@ -120,7 +120,7 @@ Javaを使用するセクションを作成する際にはDockerイメージと ### env -- imageName: givery/track-java-8 +- imageName: java ## シェルで「Hello World!」 シェルコマンドで「Hello World!」を出力してみましょう。 @@ -146,10 +146,10 @@ ${echo} "Hello, World!" ### env -- imageName: givery/track-python-3.6 +- imageName: python ### hint -シェルコマンドはどのDockerイメージでも動作しますが、ubuntuベースの`givery/track-python-3.6`を使用することをおすすめします。 +シェルコマンドはどのDockerイメージでも動作しますが、ubuntuベースの`python`を使用することをおすすめします。 ### tips ブックの各セクションではDockerコンテナは毎回初期化されます。 diff --git a/contents/sample/book/chapter5.md b/contents/sample/book/chapter5.md index 4f5f5f52..930eab54 100644 --- a/contents/sample/book/chapter5.md +++ b/contents/sample/book/chapter5.md @@ -24,7 +24,7 @@ ### env -- imageName: givery/track-nodejs-8 +- imageName: nodejs ### hint `ok xxxx`, `not ok xxxxx`という書式は[TAP](https://testanything.org/)というテストプロトコルに基づいたものです。 @@ -61,7 +61,7 @@ TAPをサポートしたテストフレームワークを使えばもっと簡 ### env -- imageName: givery/track-nodejs-8 +- imageName: nodejs ## Rubyエクササイズの例 整数除算を行うメソッド`divide`を実装しなさい。 @@ -76,7 +76,7 @@ TAPをサポートしたテストフレームワークを使えばもっと簡 ### env -- imageName: givery/track-ruby-2.5 +- imageName: ruby ## Pythonエクササイズの例 整数除算を行うメソッド`divide`を実装しなさい。 @@ -91,7 +91,7 @@ TAPをサポートしたテストフレームワークを使えばもっと簡 ### env -- imageName: givery/track-python-3.6 +- imageName: python ## フロントエンドエクササイズの作り方 足し算を行うメソッド`add`を実装しなさい。 diff --git a/contents/sample/coding-java-2/track.yml b/contents/sample/coding-java-2/track.yml index 469a84b9..5dbde40f 100644 --- a/contents/sample/coding-java-2/track.yml +++ b/contents/sample/coding-java-2/track.yml @@ -17,4 +17,4 @@ testcases: open: 5 secret: 1 envConf: - imageName: givery/track-java-corretto-11.0 + imageName: java diff --git a/contents/sample/coding-java/README.md b/contents/sample/coding-java/README.md index 80ad741c..5ca71fdc 100644 --- a/contents/sample/coding-java/README.md +++ b/contents/sample/coding-java/README.md @@ -7,7 +7,7 @@ JUnitを使用して、Javaのユニットテスト問題を作成するサン ## 問題作成のポイント ### build.gradle このサンプルではTestRunnerとしてGradleを使用しています。 -[build.gradle](build.grade)はテストの実行結果を[TAP](https://testanything.org/)形式で出力するようにカスタマイズされています。 +[build.gradle](build.gradle)はテストの実行結果を[TAP](https://testanything.org/)形式で出力するようにカスタマイズされています。 Java問題を作成する際にはこのbuild.gradleをそのままコピーして使用してください。 @@ -29,7 +29,7 @@ JUnitを利用したごく普通のユニットテストです。 ``` envConf: - imageName: givery/track-java-8 + imageName: java cacheDirs: - /root/.m2 - /root/.gradle diff --git a/contents/sample/coding-java/build.gradle b/contents/sample/coding-java/build.gradle index 6a44ca01..8912282e 100644 --- a/contents/sample/coding-java/build.gradle +++ b/contents/sample/coding-java/build.gradle @@ -5,7 +5,7 @@ repositories { } dependencies { - testCompile 'junit:junit:4.12' + implementation group: 'junit', name: 'junit', version: '4.13.2' } test { diff --git a/contents/sample/coding-java/track.yml b/contents/sample/coding-java/track.yml index f44fbbb2..86ecdcae 100644 --- a/contents/sample/coding-java/track.yml +++ b/contents/sample/coding-java/track.yml @@ -14,7 +14,7 @@ testcases: open: 5 secret: 1 envConf: - imageName: givery/track-java-8 + imageName: java cacheDirs: - /root/.m2 - /root/.gradle diff --git a/contents/sample/shell/track.yml b/contents/sample/shell/track.yml index 0a2b59f2..6038e9b5 100644 --- a/contents/sample/shell/track.yml +++ b/contents/sample/shell/track.yml @@ -25,7 +25,7 @@ solutions: - src/script2.sh:solution/script2.sh - src/script3.sh:solution/script3.sh envConf: - imageName: givery/track-python-3.9 + imageName: python3 initialize: commands: - g++ -std=c++11 -o test/judge test/judge.cpp diff --git a/contents/tutorial/coding-csharp-testrunner/src/main.csproj b/contents/tutorial/coding-csharp-testrunner/src/main.csproj index ce11408e..7a8e2ed1 100644 --- a/contents/tutorial/coding-csharp-testrunner/src/main.csproj +++ b/contents/tutorial/coding-csharp-testrunner/src/main.csproj @@ -1,9 +1,12 @@ + net6.0 Exe - net6.0 + $(DOTNET_FRAMEWORK_VERSION) true + false + false diff --git a/contents/tutorial/coding-csharp-testrunner/track.yml b/contents/tutorial/coding-csharp-testrunner/track.yml index 43325234..2b907f0f 100644 --- a/contents/tutorial/coding-csharp-testrunner/track.yml +++ b/contents/tutorial/coding-csharp-testrunner/track.yml @@ -12,9 +12,9 @@ readonly: build: dotnet build src/main.csproj test: mocha --exit -R track-reporter envConf: - imageName: givery/track-cli-dotnet + imageName: dotnet variables: - APP_COMMAND: dotnet src/bin/Debug/net6.0/main.dll + APP_COMMAND: dotnet src/bin/Debug/main.dll solutions: - src/main/App.cs:solution/App.cs testcases: diff --git a/contents/tutorial/coding-java-testrunner/track.yml b/contents/tutorial/coding-java-testrunner/track.yml index 9bca2b1e..0aeac829 100644 --- a/contents/tutorial/coding-java-testrunner/track.yml +++ b/contents/tutorial/coding-java-testrunner/track.yml @@ -11,7 +11,7 @@ readonly: build: javac src/*.java test: mocha --exit -R track-reporter envConf: - imageName: givery/track-java-corretto-11.0 + imageName: java variables: APP_COMMAND: java -classpath src Main solutions: diff --git a/docs/ja/env.md b/docs/ja/env.md index 25fd489e..3aa923e7 100644 --- a/docs/ja/env.md +++ b/docs/ja/env.md @@ -32,42 +32,120 @@ envConfには以下のキーが指定できます すべてのdockerイメージにはclangとnodejsが含まれています。 -- givery/track-base2 -- givery/track-ruby-2.5 -- givery/track-ruby-2.6 -- givery/track-ruby-2.7 -- givery/track-java-8 -- givery/track-java-corretto-11.0 -- givery/track-go-1.10 -- givery/track-go-1.13 -- givery/track-perl-5 -- givery/track-python-2.7 -- givery/track-python-3.6 -- givery/track-python-3.8 -- givery/track-php-7.2 -- givery/track-php-7.4 -- givery/track-scala-2.12 -- givery/track-scala-2.13 -- givery/track-nodejs-10 -- givery/track-nodejs-12.13 -- givery/track-nightmare-3.0 -- givery/track-mono-5 -- givery/track-cpp-googletest -- givery/track-sql -- givery/track-postgres -- givery/track-kotlin -- givery/track-swift-5 -- givery/track-swift-5.1 -- givery/track-dotnet-2.2 -- givery/track-dotnet-3.0 -- givery/track-java-corretto-11.0 -- givery/track-rust-1.39 -- givery/track-haskell-14.11 -- givery/track-python3.7-anaconda +- cpp +- dart +- dotnet +- go +- haskell +- java +- kotlin +- nodejs +- perl +- php +- python +- python3 +- ruby +- rust +- scala +- swift +- typescript +- sqlite +- postgres +これらのイメージは[DockerHub](https://hub.docker.com/u/givery)で公開されているイメージと次のようにマッピングされています。`cacheDirs`などを含んだマッピングではデフォルトでその設定が反映されます。例えば`java`イメージを使用する時、envConfに`cacheDirs`を記載しなくても、自動で`cacheDirs`に`/root/.m2`の設定が反映されます。 + +
イメージのマッピング(クリックして展開) + +```yml +cpp: + image: givery/track-cli-cpp +dart: + image: givery/track-cli-dart +dotnet: + image: givery/track-cli-dotnet +go: + image: givery/track-cli-go + workingDir: "/root/src/src/tracks.run/challenge" + cacheDirs: + - /go/pkg +haskell: + image: givery/track-cli-haskell +java: + image: givery/track-cli-java + cacheDirs: + - /root/.m2 +kotlin: + image: givery/track-cli-kotlin + cacheDirs: + - /root/.gradle +nodejs: + image: givery/track-cli-nodejs +perl: + image: givery/track-cli-perl + cacheDirs: + - /root/.cpanm +php: + image: givery/track-cli-php +python: + image: givery/track-cli-python3 + cacheDirs: + - "/usr/local/lib/python3.11" +python3: + image: givery/track-cli-python3 + cacheDirs: + - "/usr/local/lib/python3.11" +ruby: + image: givery/track-cli-ruby + cacheDirs: + - "/usr/local/bundle" + - "/usr/local/lib/ruby/gems/3.2.0" +rust: + image: givery/track-cli-rust + cacheDirs: + - "/root/.cargo/registry" +scala: + image: givery/track-cli-scala + cacheDirs: + - "/root/.ivy2" + - "/root/.sbt" + - "/root/.cache" +swift: + image: givery/track-cli-swift +typescript: + image: givery/track-cli-typescript +sqlite: + image: givery/track-sqlite +postgres: + image: givery/track-postgres + username: "postgres" + baseDir: "/home/postgres" + cacheDirs: + - "/var/lib/postgresql/data" +``` + +
+ +### イメージのバージョンについて +イメージは自動で最新に保たれます。envConfを逐一更新する必要はありません。 + +#### バージョンの依存について +バージョンに依存するライブラリを利用している場合はご相談ください。 + +### postgresの注意事項 postgresのイメージを使用する際にはusernameとbaseDirに以下を指定してください。 ``` username: "postgres" baseDir: "/home/postgres" -``` \ No newline at end of file +``` + +### C#の注意事項 +C#に使用するcsprojファイルの`PropertyGroup`には以下の設定を記載してください。バージョンが変わっても動作するようにするためです。 +```xml +net6.0 +Exe +$(DOTNET_FRAMEWORK_VERSION) +true +false +false +``` diff --git a/docs/ja/how-to-make-book.md b/docs/ja/how-to-make-book.md index 5ac3867d..effa5755 100644 --- a/docs/ja/how-to-make-book.md +++ b/docs/ja/how-to-make-book.md @@ -1236,7 +1236,7 @@ book.ymlでenvを定義する代わりに個別のセクションでenvを定義 ``` ### env -- imageName: givery/track-java-8 +- imageName: java - cacheDirs: /root/.m2 - cacheDirs: /root/.gradle ``` From 3faf9832841e5a90dd67f7b9c3e2c0b4661e1c67 Mon Sep 17 00:00:00 2001 From: Syogo-Suganoya Date: Mon, 2 Oct 2023 20:06:27 +0900 Subject: [PATCH 2/4] fix env.md --- docs/ja/env.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/docs/ja/env.md b/docs/ja/env.md index 3aa923e7..c0e8e3db 100644 --- a/docs/ja/env.md +++ b/docs/ja/env.md @@ -43,6 +43,7 @@ envConfには以下のキーが指定できます - perl - php - python + - `python3`でも可能です。どちらも同じ `givery/track-cli-python3` のイメージが使用されます。 - python3 - ruby - rust @@ -131,14 +132,6 @@ postgres: #### バージョンの依存について バージョンに依存するライブラリを利用している場合はご相談ください。 -### postgresの注意事項 -postgresのイメージを使用する際にはusernameとbaseDirに以下を指定してください。 - -``` - username: "postgres" - baseDir: "/home/postgres" -``` - ### C#の注意事項 C#に使用するcsprojファイルの`PropertyGroup`には以下の設定を記載してください。バージョンが変わっても動作するようにするためです。 ```xml From 120a4ec3a87ef71c208b629398cbfaa9f2d020d6 Mon Sep 17 00:00:00 2001 From: Syogo-Suganoya Date: Mon, 2 Oct 2023 20:06:59 +0900 Subject: [PATCH 3/4] =?UTF-8?q?fix=20version=E6=8C=87=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contents/sample/coding-java/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/sample/coding-java/build.gradle b/contents/sample/coding-java/build.gradle index 8912282e..261049a1 100644 --- a/contents/sample/coding-java/build.gradle +++ b/contents/sample/coding-java/build.gradle @@ -5,7 +5,7 @@ repositories { } dependencies { - implementation group: 'junit', name: 'junit', version: '4.13.2' + implementation group: 'junit', name: 'junit', version: '4.+' } test { From 6efbf3a248dd55cc233b105f2505f5ae5f01bbd6 Mon Sep 17 00:00:00 2001 From: Syogo-Suganoya Date: Wed, 4 Oct 2023 09:41:46 +0900 Subject: [PATCH 4/4] =?UTF-8?q?fix=20#46=E3=81=AE=E5=8F=96=E3=82=8A?= =?UTF-8?q?=E8=BE=BC=E3=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contents/sample/book/chapter5.md | 4 ++-- contents/sample/book/chapter6.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contents/sample/book/chapter5.md b/contents/sample/book/chapter5.md index dc2ad9ee..1c16ba7e 100644 --- a/contents/sample/book/chapter5.md +++ b/contents/sample/book/chapter5.md @@ -24,7 +24,7 @@ ### env -- imageName: givery/track-java-8 +- imageName: java ### hint `ok xxxx`, `not ok xxxxx`という書式は[TAP](https://testanything.org/)というテストプロトコルに基づいたものです。 @@ -61,7 +61,7 @@ TAPをサポートしたテストフレームワークを使えばもっと簡 ### env -- imageName: givery/track-java-8 +- imageName: java ## Rubyエクササイズの例 整数除算を行うメソッド`divide`を実装しなさい。 diff --git a/contents/sample/book/chapter6.md b/contents/sample/book/chapter6.md index 3da2e614..01e89984 100644 --- a/contents/sample/book/chapter6.md +++ b/contents/sample/book/chapter6.md @@ -19,7 +19,7 @@ ### env -- imageName: givery/track-java-8 +- imageName: java ### hint ここでは、Main.javaとTest.javaの両方をplaygroundのfileとして指定しているのでどちらも編集可能です。