Преглед изворни кода

Merge pull request #120 from bronhuston/journey-test

CI runs journey test
Matthew Morgan пре 10 година
родитељ
комит
c7cfe1b078
4 измењених фајлова са 147 додато и 6 уклоњено
  1. 10
    1
      .travis.yml
  2. 55
    0
      bin/run-journey-test-in-ci.sh
  3. 75
    0
      bin/run-journey-test-locally.sh
  4. 7
    5
      bin/run-unit-tests-in-ci.sh

+ 10
- 1
.travis.yml Прегледај датотеку

5
 
5
 
6
 # http://docs.travis-ci.com/user/migrating-from-legacy
6
 # http://docs.travis-ci.com/user/migrating-from-legacy
7
 sudo: false
7
 sudo: false
8
+cache: bundler
9
+addons:
10
+  apt:
11
+    packages:
12
+      - tree
13
+before_install:
14
+  - rvm install 2.2.1
15
+  - rvm use 2.2.1
8
 
16
 
9
 script:
17
 script:
10
-  - bin/build.sh
18
+  - bin/run-unit-tests-in-ci.sh
19
+  - bin/run-journey-test-in-ci.sh

+ 55
- 0
bin/run-journey-test-in-ci.sh Прегледај датотеку

1
+#!/bin/bash
2
+set -e
3
+
4
+eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=1.5.3 bash)"
5
+export HOME=$PWD/..
6
+export GOPATH=$HOME
7
+
8
+REPO_ROOT=~/xjava
9
+EXERCISM_HOME=~/workspace/exercism/exercises
10
+SET_RUBY_VER_CMD=""
11
+
12
+mkdir -p ~/workspace/exercism
13
+cd ~/workspace/exercism/
14
+git clone https://github.com/exercism/x-api
15
+cd x-api
16
+git submodule init -- metadata
17
+git submodule update
18
+( cd tracks && rmdir java && ln -s $REPO_ROOT java && cd java/exercises && gradle clean )
19
+
20
+$SET_RUBY_VER_CMD
21
+gem install bundler
22
+bundle install
23
+
24
+RACK_ENV=development rackup&
25
+
26
+sleep 5
27
+
28
+export PATH=$PATH:$GOPATH/bin
29
+go get -u github.com/exercism/cli/exercism
30
+exercism -v
31
+
32
+mkdir -p $EXERCISM_HOME
33
+cd $EXERCISM_HOME
34
+exercism configure --dir=$EXERCISM_HOME
35
+exercism configure --api http://localhost:9292
36
+
37
+exercism debug
38
+
39
+cd $REPO_ROOT
40
+EXERCISES=`cat config.json | jq '.problems []' --raw-output`
41
+TOTAL_EXERCISES=`cat config.json | jq '.problems | length'`
42
+CURRENT_EXERCISE_NUMBER=1
43
+
44
+for EXERCISE in $EXERCISES; do
45
+  echo ''
46
+  echo '****' Testing $EXERCISE '('$CURRENT_EXERCISE_NUMBER / $TOTAL_EXERCISES') ****'
47
+  echo ''
48
+  exercism fetch java $EXERCISE
49
+  cp -R -H $REPO_ROOT/exercises/$EXERCISE/src/example/java/* $EXERCISM_HOME/java/$EXERCISE/src/main/java/
50
+  cd $EXERCISM_HOME/java/$EXERCISE/
51
+  gradle test
52
+
53
+  CURRENT_EXERCISE_NUMBER=$((CURRENT_EXERCISE_NUMBER + 1))
54
+done
55
+

+ 75
- 0
bin/run-journey-test-locally.sh Прегледај датотеку

1
+#!/bin/bash
2
+
3
+if [ "$0" != "./bin/run-journey-test-locally.sh" ]; then
4
+  echo "This script must be run from the root of the xjava checkout."
5
+  echo "Please change directory there and try again."
6
+  echo -e "\n  $ ./bin/run-journey-test-locally.sh"
7
+  exit 1
8
+fi
9
+
10
+function teardown() {
11
+  if [ "$XAPI_PID" != "" ] ; then
12
+     kill $XAPI_PID
13
+  fi
14
+}
15
+
16
+trap teardown EXIT
17
+
18
+set -e
19
+
20
+REPO_ROOT=$PWD
21
+BUILD_DIR=$REPO_ROOT/build
22
+export GOPATH=$BUILD_DIR/go
23
+XAPI_HOME=$BUILD_DIR/x-api
24
+EXERCISM_HOME=$BUILD_DIR/exercism
25
+SET_RUBY_VER_CMD="rbenv local 2.2.1"
26
+
27
+if [ -d "$BUILD_DIR" ] ; then
28
+  rm -rf "$BUILD_DIR"
29
+fi
30
+
31
+mkdir -p $XAPI_HOME
32
+cd $XAPI_HOME
33
+git clone https://github.com/exercism/x-api .
34
+git submodule init -- metadata
35
+git submodule update
36
+( cd tracks && rmdir java && ln -s $REPO_ROOT java && cd java/exercises && gradle clean )
37
+
38
+
39
+$SET_RUBY_VER_CMD
40
+gem install bundler
41
+bundle install
42
+
43
+RACK_ENV=development rackup&
44
+export XAPI_PID=$!
45
+
46
+sleep 5
47
+
48
+export PATH=$PATH:$GOPATH/bin
49
+go get -u github.com/exercism/cli/exercism
50
+EXERCISM="exercism --config $EXERCISM_HOME/.exercism.json"
51
+
52
+
53
+mkdir -p $EXERCISM_HOME
54
+cd $EXERCISM_HOME
55
+$EXERCISM configure --dir=$EXERCISM_HOME
56
+$EXERCISM configure --api http://localhost:9292
57
+
58
+$EXERCISM debug
59
+
60
+cd $REPO_ROOT
61
+EXERCISES=`cat config.json | jq '.problems []' --raw-output`
62
+TOTAL_EXERCISES=`cat config.json | jq '.problems | length'`
63
+CURRENT_EXERCISE_NUMBER=1
64
+
65
+for EXERCISE in $EXERCISES; do
66
+  echo ''
67
+  echo '****' Testing $EXERCISE '('$CURRENT_EXERCISE_NUMBER / $TOTAL_EXERCISES') ****'
68
+  echo ''
69
+  $EXERCISM fetch java $EXERCISE
70
+  cp -R -H $REPO_ROOT/exercises/$EXERCISE/src/example/java/* $EXERCISM_HOME/java/$EXERCISE/src/main/java/
71
+  cd $EXERCISM_HOME/java/$EXERCISE/
72
+  gradle test
73
+
74
+  CURRENT_EXERCISE_NUMBER=$((CURRENT_EXERCISE_NUMBER + 1))
75
+done

bin/build.sh → bin/run-unit-tests-in-ci.sh Прегледај датотеку

1
 #!/bin/bash
1
 #!/bin/bash
2
 set -e
2
 set -e
3
-pushd exercises
4
 gradle --version
3
 gradle --version
5
-echo ""
6
-echo ">>> Running tests..."
7
-TERM=dumb gradle check compileStarterSourceJava --continue
8
-popd
9
 
4
 
10
 echo ""
5
 echo ""
11
 echo ">>> Running configlet..."
6
 echo ">>> Running configlet..."
12
 bin/fetch-configlet
7
 bin/fetch-configlet
13
 bin/configlet .
8
 bin/configlet .
9
+
10
+pushd exercises
11
+echo ""
12
+echo ">>> Running tests..."
13
+TERM=dumb gradle check compileStarterSourceJava --continue
14
+popd
15
+