-
Notifications
You must be signed in to change notification settings - Fork 10
Home
http://www.rubydoc.info/github/SoftwareFoundationGroupAtKyotoU/automata/master
# apt-get install shared-mime-info vim curl zip
もしもapacheを使ってCGIとして動作させる場合には mod_rewrite
が必要です。
$ bundle install # 依存ライブラリをインストール(Gemfile が変更されたらやる)
$ bundle exec rake test # テスト実行
$ bundle exec rake dummy # ダミーユーザ追加
$ bundle exec rackup --help # rackup のヘルプ
$ bundle exec rackup [-p port] [-o host] [-E environment] # サーバ起動(ポート番号 port) (ホスト host) (環境 environment デフォルトで development)
$ npm i # js の依存パッケージをインストール(package.json が変更されたらやる)
$ gulp build # js ファイルをビルド(js ファイルが変更されたらやる)
/config/master.yml
のcheck:
エントリで設定します。
check:
直下のdefault:
エントリで個別の設定のない課題のデフォルト値を指定します。
各課題に対して別の設定を与えたい場合は、default:
と同じレベルにscheme.yml
で設定した課題idのエントリを追加してください。
課題別の設定とデフォルトの設定は浅いマージが行われます。
check:
default:
ignore:
- \.o$
test:
run: echo
input: solved.in
report1:
test:
run: pwd
上記の設定があった場合、report1に使用される設定は以下のようになります。
ignore:
- \.o$
test:
run: pwd
test:
以下がreport1の設定で置き換わってinput:
が消えることに気をつけてください。
提出処理設定のbuild:
エントリでビルドの設定を行います。
check:
default:
build:
command:
- build.sh
file_location:
- location: default
上記のような設定があった場合、以下のようにサーバーで処理が行われます。(ビルド用の作業ディレクトリをtmp
とします)
- 提出されて展開されたファイルをすべて
tmp/src
以下にコピーする。 -
/build/default
以下のファイルをtmp
以下にコピーする。(check.default.build.file_location
で指定したディレクトリからコピーされます) -
build.sh
コマンドが実行されます。(check.default.build.command
で指定したコマンドが上から順番に実行されます)
file_location
以下の設定では、解いた問題によってコピー元に使用するディレクトリを変更することが可能です。
- location: base
- exercise:
- Ex1
location: ex1
- exercise:
- Ex1
- Ex2
location: ex1-2
上記のような設定をすると、Ex1と2を解いていればbase,ex1,ex1-2
ディレクトリのファイルがビルド用ディレクトリにコピーされます。Ex4だけを解いていればbase
ディレクトリのみが使われます。
コピーは上から順に行われるので、例えばEx1だけを解いていてbase/hoge.txt
とex1/hoge.txt
があればビルド用ディレクトリに残るのはex1/hoge.txt
からコピーされたファイルだけになります。
提出処理設定のtest:
エントリで設定を行います。
check:
default:
test:
sandbox: "http://sandbox.example.com/tester.cgi"
files:
- test.sh
- solved.txt
run: ./test.sh
input: solved.txt
output: :argument
上記のような設定があった場合、以下のような処理が行われます。(自動ビルド時に使用された作業ディレクトリをtmp
とします)
- 提出時にチェックされた回答済みの問題の一覧が
solved.txt
に出力されます。(check.default.test.input
で指定したファイルに出力されます) -
http://sandbox.example.com/tester.cgi
にテストに必要なファイルと実行するコマンドが送られます。(check.default.test.sandbox
で指定したURLが使用されます) -
tester.cgi
にアップロードされるファイルはcheck.default.test.files
で指定します。この例の場合はtmp
以下のtest.sh
とsolved.txt
がアップロードされます。 -
tester.cgi
で実行されるテストコマンドはcheck.default.test.run
で指定します。
この設定はtester.cgi
で実行されるテストコマンドの出力先ファイルの指定に用いられます。具体的にはこのファイル名のファイルを生成した後に、テストコマンドの実行引数としてこのファイル名が渡ります。
:argument
を指定するとランダムなファイル名が使用されます。
実行に必要なライブラリとappletの表示サイズの指定のみで、いずれも必須項目ではないです。
ライブラリは、/public/jar
以下に置いてください。
check:
default:
applet:
java_library: ["objectdrawV1.1.2.jar"]
width: 800
height: 400
提出された.class
ファイルを選択することで、テキスト等と同様に内部HTMLとして表示されます。
ただしJavaの例外サイトに追加しなければ動作しません.
https://www.java.com/ja/download/help/java_blocked.xmlなどを参考にしてください