Browse Source

[TravisCI] Let's try to group targets to minimize build matrix.
Note that the `make BYTECODE=1` test is removed for simplicity. We always release native binaries anyway.

Andy Li 9 years ago
parent
commit
c9f0e03267
2 changed files with 94 additions and 140 deletions
  1. 94 122
      .travis.yml
  2. 0 18
      tests/RunCi.hx

+ 94 - 122
.travis.yml

@@ -22,153 +22,125 @@ env:
     - LUA=lua5.2
     - LUA=lua5.2
 
 
 sudo: required
 sudo: required
-addons:
+dist: trusty
+addons: &addons
   ssh_known_hosts: haxe.org
   ssh_known_hosts: haxe.org
-  apt:
-    packages: &apt_common
-      - ocaml-native-compilers
-      - camlp4
 
 
-apt_targets:
-  - &apt_cpp    [*apt_common, gcc-multilib, g++-multilib]
-  - &apt_cs     [*apt_common, mono-devel, mono-mcs]
-  - &apt_python [*apt_common, python3]
-  - &apt_flash  [*apt_common, "libcurl3:i386", "libglib2.0-0:i386", "libx11-6:i386", "libxext6:i386", "libxt6:i386", "libxcursor1:i386", "libnss3:i386", "libgtk2.0-0:i386"]
+install_linux: &install_linux
+  # Install neko and haxe dependencies
+  - sudo apt-get install -y
+      ocaml-native-compilers
+      camlp4
+      pkg-config
+      libgc-dev
+      libssl-dev
+      libpcre3-dev
+      zlib1g-dev
+      apache2-dev
+      libmysqlclient-dev
+      libsqlite3-dev
+      libgtk2.0-dev
+  # Install neko
+  - travis_retry git clone https://github.com/HaxeFoundation/neko.git ~/neko
+  - pushd ~/neko
+  - cmake -DSTATIC_DEPS=MbedTLS
+  - make
+  - sudo make install
+  - popd
+  # Setup database
+  - travis_retry sudo apt-get install mysql-server -y
+  - mysql -u root -e "create user travis@localhost identified by '';"
+  - mysql -u root -e "create database haxe_test;"
+  - mysql -u root -e "grant all on haxe_test.* to travis@localhost;"
+  # Build haxe
+  - make package_src -s
+  - make -s
+  - make package_bin -s
+  - export PATH="$PATH:$TRAVIS_BUILD_DIR"
+  - export HAXE_STD_PATH="$TRAVIS_BUILD_DIR/std"
+
+install_osx: &install_osx
+  # Install haxe dependencies
+  - travis_retry brew update
+  - travis_retry brew install ocaml camlp4;
+  # Install neko
+  - travis_retry brew install neko --HEAD;
+  # Setup database
+  - travis_retry brew install mysql
+  - mysql.server start
+  - mysql -u root -e "create user if not exists travis@localhost identified by '';"
+  - mysql -u root -e "create database haxe_test;"
+  - mysql -u root -e "grant all on haxe_test.* to travis@localhost;"
+  # Build haxe
+  - make package_src -s
+  - make -s
+  - make package_bin -s
+  - export PATH="$PATH:$TRAVIS_BUILD_DIR"
+  - export HAXE_STD_PATH="$TRAVIS_BUILD_DIR/std"
 
 
 matrix:
 matrix:
   include:
   include:
     #########
     #########
     # linux #
     # linux #
     #########
     #########
-    # - os: linux
-    #   env: TEST=third-party
-    #   language: php
-    #   php: 5.4
-    #   addons: {apt: {packages: [*apt_cpp, *apt_cs, *apt_python]}}
     - os: linux
     - os: linux
-      env: TEST=macro
-      addons: {apt: {packages: [*apt_cs, *apt_python]}}
-    - os: linux
-      sudo: required
-      dist: trusty
       env:
       env:
-        - TEST=neko
+        - TEST=macro,neko,js,php,flash9,as3,java,cs,python,hl,lua
         - DEPLOY=1
         - DEPLOY=1
+        - SAUCE=1
         # haxeci_decrypt (Deploy source package to ppa:haxe/snapshots.)
         # haxeci_decrypt (Deploy source package to ppa:haxe/snapshots.)
         - secure: "Mw3p6bDZuqVQ6u7GrwLQfje5hhIOA4+mdqqLXYHP79UKdhgqb91Dn6IbG9vQ1VXVe64W4YZbQAMBMMRX5kEPDl6JvTVGSBhg00Mi69oO5qrCMcBI6f9FntG72YaVvLf+PA7co+vKrnJzaP2M9pe4SH9Ztbhy0YNxULp7NQ8FLsM="
         - secure: "Mw3p6bDZuqVQ6u7GrwLQfje5hhIOA4+mdqqLXYHP79UKdhgqb91Dn6IbG9vQ1VXVe64W4YZbQAMBMMRX5kEPDl6JvTVGSBhg00Mi69oO5qrCMcBI6f9FntG72YaVvLf+PA7co+vKrnJzaP2M9pe4SH9Ztbhy0YNxULp7NQ8FLsM="
         # deploy_key_decrypt (Deploy doc to api.haxe.org.)
         # deploy_key_decrypt (Deploy doc to api.haxe.org.)
         - secure: "A75uYqU0Xz6plIgSewEs0QQWe472dCMb9kf3j7Hx0DS7dApXgx8++189sw9Sv0wam5KPtbcIM292MucjGCb5zocVj9xCUVgajhEA0QpTuDMBjk/cg3ClWCGjfybaCl2E5LLdUs7Zy4b4oNWtVikOWLWJ4sC1kaarR9p6kv8yYZg="
         - secure: "A75uYqU0Xz6plIgSewEs0QQWe472dCMb9kf3j7Hx0DS7dApXgx8++189sw9Sv0wam5KPtbcIM292MucjGCb5zocVj9xCUVgajhEA0QpTuDMBjk/cg3ClWCGjfybaCl2E5LLdUs7Zy4b4oNWtVikOWLWJ4sC1kaarR9p6kv8yYZg="
-      before_script:
-        - travis_retry sudo apt-get install mysql-server -y
-        - mysql -u root -e "create user travis@localhost identified by '';"
+      addons:
+        <<: *addons
+        sauce_connect: true
+      before_install:
+        - sudo dpkg --add-architecture i386
+        - sudo apt-get update -y || true
+        - travis_retry sudo apt-get install -y
+            libcurl3:i386
+            libglib2.0-0:i386
+            libx11-6:i386
+            libxext6:i386
+            libxt6:i386
+            libxcursor1:i386
+            libnss3:i386
+            libgtk2.0-0:i386
+      install: *install_linux
+
     - os: linux
     - os: linux
       env:
       env:
-        - TEST=js
-        - SAUCE=1
-      addons: {apt: {packages: *apt_common}, sauce_connect: true}
-    - os: linux
-      env: TEST=php
-      language: php
-      php: 5.4
-    - os: linux
-      env: TEST=cpp
-      addons: {apt: {packages: *apt_cpp}}
-    - os: linux
-      env: TEST=flash9
-      addons: {apt: {packages: *apt_flash}}
-    # - os: linux
-    #   env: TEST=as3
-    #   addons: {apt: {packages: *apt_flash}}
-    - os: linux
-      env: TEST=java
-    - os: linux
-      env: TEST=cs
-      addons: {apt: {packages: *apt_cs}}
-    - os: linux
-      env: TEST=python
-      addons: {apt: {packages: *apt_python}}
-    - os: linux
-      env: TEST=hl
-    - os: linux
-      env: TEST=lua
+        - TEST=cpp
+      before_install:
+        - sudo apt-get update -y || true
+        - travis_retry sudo apt-get install -y
+            gcc-multilib
+            g++-multilib
+      install: *install_linux
 
 
     #######
     #######
     # osx #
     # osx #
     #######
     #######
-    # - os: osx
-    #   env: TEST=third-party
-    # - os: osx
-    #   env: TEST=macro
-    # - os: osx
-    #   env:
-    #     - TEST=neko
-    #     - DEPLOY=1
-    # - os: osx
-    #   env: TEST=js
-    - os: osx
-      env: TEST=php
     - os: osx
     - os: osx
-      env: TEST=cpp
-    # - os: osx
-    #   env: TEST=flash9
-    # - os: osx
-    #   env: TEST=as3
-    # - os: osx
-    #   env: TEST=java
-    # - os: osx
-    #   env: TEST=cs
-    # - os: osx
-    #   env: TEST=python
-    # - os: osx
-    #   env: TEST=lua
+      env:
+        - TEST=macro,neko,js,php,flash9,as3,java,cs,python,hl,lua
+        - DEPLOY=1
+      install: *install_osx
 
 
-install:
-  # Install haxe and neko dependencies
-  - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
-      sudo apt-get update -qq;
-      sudo apt-get install pkg-config libgc-dev libssl-dev libpcre3-dev zlib1g-dev apache2-dev libmysqlclient-dev libsqlite3-dev libgtk2.0-dev -y;
-    elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
-      travis_retry brew update;
-      travis_retry brew install ocaml camlp4 bdw-gc pcre mariadb-connector-c mbedtls;
-    fi
-  # Install neko
-  - travis_retry git clone https://github.com/HaxeFoundation/neko.git ~/neko;
-  - mkdir -p ~/neko/build;
-  - pushd ~/neko/build;
-  - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
-      cmake -DSTATIC_DEPS=MbedTLS ..;
-    elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
-      cmake ..;
-    fi
-  - make -s;
-  - sudo make install;
-  - popd;
-  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then
-      brew unlink mariadb-connector-c;
-    fi
+    - os: osx
+      env:
+        - TEST=cpp
+      install: *install_osx
 
 
 script:
 script:
-  # setup database
-  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then
-      travis_retry brew install mysql &&
-      mysql.server start;
-      mysql -u root -e "create user if not exists travis@localhost identified by '';";
-    fi
-  - mysql -u root -e "CREATE DATABASE haxe_test;"
-  - mysql -u root -e "grant all on haxe_test.* to travis@localhost;"
-  # start ssh-agent for deployment to haxe.org
-  - eval `ssh-agent -s`
-  - make package_src -s
-  - make -s
-  - make package_bin -s
-  - export PATH="$PATH:$TRAVIS_BUILD_DIR"
-  - export HAXE_STD_PATH="$TRAVIS_BUILD_DIR/std"
-  - cd tests/
-  - mkdir ~/haxelib && haxelib setup ~/haxelib
-  - haxe -version
-  - haxe RunCi.hxml
-  - neko RunCi.n
-  - cd $TRAVIS_BUILD_DIR
+  - eval `ssh-agent -s` # for deployment to haxe.org
+  - pushd tests
+  -   mkdir ~/haxelib && haxelib setup ~/haxelib
+  -   haxe -version
+  -   haxe RunCi.hxml
+  -   neko RunCi.n
+  - popd
 
 
 branches:
 branches:
   except:
   except:

+ 0 - 18
tests/RunCi.hx

@@ -927,24 +927,6 @@ class RunCi {
 					changeDirectory(sysDir);
 					changeDirectory(sysDir);
 					runCommand("haxe", ["compile-macro.hxml"]);
 					runCommand("haxe", ["compile-macro.hxml"]);
 					runCommand("haxe", ["compile-each.hxml", "--run", "Main"]);
 					runCommand("haxe", ["compile-each.hxml", "--run", "Main"]);
-
-					//BYTECODE
-					switch (ci) {
-						case null:
-							//pass
-						case TravisCI:
-							changeDirectory(repoDir);
-							runCommand("make", ["BYTECODE=1", "-s"]);
-							// runCommand("sudo", ["make", "install", "-s"]);
-							changeDirectory(unitDir);
-							runCommand("haxe", ["compile-macro.hxml"]);
-						case AppVeyor:
-							// save time...
-							// changeDirectory(repoDir);
-							// runCommand(Sys.getEnv("CYG_ROOT") + "/bin/bash", ["-lc", 'cd \"$$OLDPWD\" && make -s -f Makefile.win BYTECODE=1']);
-							// changeDirectory(unitDir);
-							// runCommand("haxe", ["compile-macro.hxml"]);
-					}
 				case Neko:
 				case Neko:
 					runCommand("haxe", ["compile-neko.hxml", "-D", "dump", "-D", "dump_ignore_var_ids"].concat(args));
 					runCommand("haxe", ["compile-neko.hxml", "-D", "dump", "-D", "dump_ignore_var_ids"].concat(args));
 					runCommand("neko", ["bin/unit.n"]);
 					runCommand("neko", ["bin/unit.n"]);