language: c matrix: include: - os: linux name: "linux" dist: xenial sudo: required addons: snaps: - name: node channel: latest/edge confinement: classic apt: sources: - ubuntu-toolchain-r-test packages: - gcc-5 - g++-5 - make - libglfw3 - libglfw3-dev - libfreetype6-dev - libssl-dev - os: windows name: "windows_gcc" language: bash filter_secrets: false - os: windows name: "windows_msvc" language: bash filter_secrets: false - os: osx name: "osx" osx_image: xcode10.3 addons: homebrew: packages: - freetype - glfw - openssl script: - | if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo unlink /usr/bin/gcc && sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc fi - | if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ fi - | if [[ "${TRAVIS_OS_NAME}" == "windows" ]]; then ### troubleshooting and diagnostics: show ALL environment variables in the instance #set set -e git clone --depth=1 https://github.com/ubawurinna/freetype-windows-binaries thirdparty/freetype/ if [[ "${TRAVIS_JOB_NAME}" == "windows_gcc" ]]; then echo "Building V with GCC" export VFLAGS="-os windows" ./make.bat -gcc fi if [[ "${TRAVIS_JOB_NAME}" == "windows_msvc" ]]; then echo "Building V with MSVC" export VFLAGS="-os msvc" ./make.bat -msvc fi ### running just repl_test.v produces failing results earlier and is easier to read echo "Running only the repl tests directly..." ./v.exe ./compiler/tests/repl/repl_test.v echo "Running ALL tests..." ./v.exe test v set +e fi - | if [[ "${TRAVIS_OS_NAME}" != "windows" ]]; then make ./v -o v compiler ./v test v fi - | if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then ## aliases do not work for some reason in travis, just use full commands :-| echo "Nodejs version:" snap run node --version # Build hi.js echo "fn main(){ println('Hello from V.js') }" > hi.v ./v -o hi.js hi.v snap run node hi.js fi - | if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then echo "Nodejs version:" node --version # Build hi.js echo "fn main(){ println('Hello from V.js') }" > hi.v ./v -o hi.js hi.v ## the node on osx requires --harmony-class-fields for now node --harmony-class-fields hi.js fi - | if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then # Build Vid git clone https://github.com/vlang/vid cd vid && ../v -debug -o vid . fi