681 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			681 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			YAML
		
	
	
| name: Code CI
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     paths-ignore:
 | |
|       - "**.md"
 | |
|   pull_request:
 | |
|     paths-ignore:
 | |
|       - "**.md"
 | |
| 
 | |
| concurrency:
 | |
|   group: build-ci-${{ github.event.pull_request.number || github.sha }}
 | |
|   cancel-in-progress: true
 | |
| 
 | |
| jobs:
 | |
|   ubuntu-tcc:
 | |
|     runs-on: ubuntu-20.04
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     timeout-minutes: 121
 | |
|     env:
 | |
|       VFLAGS: -cc tcc -no-retry-compilation
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           sudo apt-get update
 | |
|           sudo apt-get install --quiet -y libssl-dev sqlite3 libsqlite3-dev valgrind
 | |
|           sudo apt-get install --quiet -y libfreetype6-dev  libxi-dev libxcursor-dev libgl-dev
 | |
|           ## The following is needed for examples/wkhtmltopdf.v
 | |
|           wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
 | |
|           sudo apt-get install --quiet -y xfonts-75dpi xfonts-base
 | |
|           sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb          
 | |
|       - name: Build v
 | |
|         run: |
 | |
|           echo $VFLAGS
 | |
|           make
 | |
|           ./v test-cleancode
 | |
|           ./v -d debug_malloc -d debug_realloc -o v cmd/v
 | |
|           ./v -cg -cstrict -o v cmd/v
 | |
|           # Test v -realloc arena allocation
 | |
|           ./v -o vrealloc -prealloc cmd/v && ./vrealloc -o v3 cmd/v && ./v3 -o v4 cmd/v          
 | |
|       - name: Test v->c
 | |
|         run: |
 | |
|           thirdparty/tcc/tcc.exe -version
 | |
|           ./v -cg -o v cmd/v # Make sure vtcc can build itself twice          
 | |
|       #        ./v test-all
 | |
|       - name: v self compilation
 | |
|         run: ./v -o v2 cmd/v && ./v2 -o v3 cmd/v && ./v3 -o v4 cmd/v
 | |
|       - name: v self compilation with -skip-unused
 | |
|         run: ./v -skip-unused -o v2 cmd/v && ./v2 -skip-unused -o v3 cmd/v && ./v3 -skip-unused -o v4 cmd/v
 | |
|       - name: v doctor
 | |
|         run: |
 | |
|           ./v doctor          
 | |
|       - name: Verify `v test` works
 | |
|         run: |
 | |
|           echo $VFLAGS
 | |
|           ./v cmd/tools/test_if_v_test_system_works.v
 | |
|           ./cmd/tools/test_if_v_test_system_works          
 | |
|       - name: All code is formatted
 | |
|         run: ./v test-cleancode
 | |
|       - name: Self tests
 | |
|         run: ./v test-self
 | |
|       # - name: Self tests (-cstrict)
 | |
|       #   run: V_CI_CSTRICT=1 ./v -cstrict test-self
 | |
|       - name: Test time functions in a timezone UTC-12
 | |
|         run: TZ=Etc/GMT+12 ./v test vlib/time/
 | |
|       - name: Test time functions in a timezone UTC-3
 | |
|         run: TZ=Etc/GMT+3 ./v test vlib/time/
 | |
|       - name: Test time functions in a timezone UTC+3
 | |
|         run: TZ=Etc/GMT-3 ./v test vlib/time/
 | |
|       - name: Test time functions in a timezone UTC+12
 | |
|         run: TZ=Etc/GMT-12 ./v test vlib/time/
 | |
|       - name: Test time functions in a timezone using daylight saving (Europe/Paris)
 | |
|         run: TZ=Europe/Paris ./v test vlib/time/
 | |
|       - name: Build examples
 | |
|         run: ./v -W build-examples
 | |
|       - name: Test building v tools
 | |
|         run: ./v -W build-tools
 | |
|       - name: Test v binaries
 | |
|         run: ./v build-vbinaries
 | |
|       - name: Run a VSH script
 | |
|         run: ./v run examples/v_script.vsh
 | |
|       - name: Test v tutorials
 | |
|         run: ./v tutorials/building_a_simple_web_blog_with_vweb/code/blog
 | |
|       - name: Build cmd/tools/fast
 | |
|         run: cd cmd/tools/fast && ../../../v fast.v && ./fast
 | |
|       - name: V self compilation with -usecache
 | |
|         run: |
 | |
|           unset VFLAGS
 | |
|           ./v -usecache examples/hello_world.v && examples/hello_world
 | |
|           ./v  -o v2 -usecache cmd/v
 | |
|           ./v2 -o v3 -usecache cmd/v
 | |
|           ./v3 version
 | |
|           ./v3 -o tetris  -usecache examples/tetris/tetris.v          
 | |
| 
 | |
|   ubuntu-tcc-boehm-gc:
 | |
|     runs-on: ubuntu-20.04
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     timeout-minutes: 121
 | |
|     env:
 | |
|       VFLAGS: -cc tcc -no-retry-compilation
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           sudo apt-get update
 | |
|           sudo apt-get install --quiet -y libssl-dev sqlite3 libsqlite3-dev valgrind
 | |
|           sudo apt-get install --quiet -y libfreetype6-dev  libxi-dev libxcursor-dev libgl-dev
 | |
|           sudo apt-get install --quiet -y libgc-dev
 | |
|           ## The following is needed for examples/wkhtmltopdf.v
 | |
|           wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
 | |
|           sudo apt-get install --quiet -y xfonts-75dpi xfonts-base
 | |
|           sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb          
 | |
|       - name: Build v
 | |
|         run: |
 | |
|           echo $VFLAGS
 | |
|           make          
 | |
|       - name: Test v->c
 | |
|         run: |
 | |
|           thirdparty/tcc/tcc.exe -version
 | |
|           ./v -cg -o v cmd/v # Make sure vtcc can build itself twice          
 | |
|       - name: v self compilation with -gc boehm
 | |
|         run: |
 | |
|           ./v -gc boehm -o v2 cmd/v && ./v2 -gc boehm -o v3 cmd/v && ./v3 -gc boehm -o v4 cmd/v
 | |
|           mv v4 v          
 | |
|       - name: v doctor
 | |
|         run: |
 | |
|           ./v doctor          
 | |
|       - name: Verify `v -gc boehm test` works
 | |
|         run: |
 | |
|           ./v -gc boehm cmd/tools/test_if_v_test_system_works.v
 | |
|           ./cmd/tools/test_if_v_test_system_works          
 | |
|       - name: All code is formatted
 | |
|         run: ./v test-cleancode
 | |
|       - name: Self tests with `-gc boehm` with V compiler using Boehm-GC itself
 | |
|         run: ./v -gc boehm test-self
 | |
|       - name: Test leak detector
 | |
|         run: |
 | |
|           ./v -gc boehm_leak -o testcase_leak vlib/v/tests/testcase_leak.vv
 | |
|           ./testcase_leak 2>leaks.txt
 | |
|           grep "Found 1 leaked object" leaks.txt && grep -P ", sz=\s?1000," leaks.txt          
 | |
|       - name: Test leak detector not being active for `-gc boehm`
 | |
|         run: |
 | |
|           ./v -gc boehm -o testcase_leak vlib/v/tests/testcase_leak.vv
 | |
|           ./testcase_leak 2>leaks.txt
 | |
|           [ "$(stat -c %s leaks.txt)" = "0" ]          
 | |
|       - name: Test leak detector not being active for normal compile
 | |
|         run: |
 | |
|           ./v -o testcase_leak vlib/v/tests/testcase_leak.vv
 | |
|           ./testcase_leak 2>leaks.txt
 | |
|           [ "$(stat -c %s leaks.txt)" = "0" ]          
 | |
| 
 | |
|   macos:
 | |
|     runs-on: macOS-latest
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     timeout-minutes: 121
 | |
|     env:
 | |
|       VFLAGS: -cc clang
 | |
|       PKG_CONFIG_PATH: /usr/local/opt/openssl@3/lib/pkgconfig
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - uses: actions/setup-node@v1
 | |
|         with:
 | |
|           node-version: 12.x
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           ##brew install libpq openssl freetype ### these are *already installed* on Catalina ...
 | |
|           brew uninstall --ignore-dependencies libpq ## libpq is a dependency of PHP
 | |
|           brew install postgresql openssl
 | |
|           export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/"
 | |
|           echo "PKG_CONFIG_PATH is '$PKG_CONFIG_PATH'"          
 | |
|       - name: Build V
 | |
|         run: make -j4 && ./v -cg -cstrict -o v cmd/v
 | |
|       - name: Run sanitizers
 | |
|         run: |
 | |
|           ./v -o v2 cmd/v -cflags -fsanitize=undefined
 | |
|           UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v2 -o v.c cmd/v          
 | |
|       - name: Build V using V
 | |
|         run: ./v -o v2 cmd/v && ./v2 -o v3 cmd/v
 | |
|       - name: Test symlink
 | |
|         run: ./v symlink
 | |
|       #    - name: Set up pg database
 | |
|       #      run: |
 | |
|       #        pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
 | |
|       #        psql -d postgres -c 'select rolname from pg_roles'
 | |
|       #        psql -d postgres -c 'create database customerdb;'
 | |
|       #        psql -d customerdb -f examples/database/pg/mydb.sql
 | |
|       #    - name: Test v->c
 | |
|       #      run: ./v test-all
 | |
|       #    - name: Test v binaries
 | |
|       #      run: ./v build-vbinaries
 | |
|       ##    - name: Test v->js
 | |
|       ##      run: ./v -o hi.js examples/hello_v_js.v && node hi.js
 | |
|       - name: Verify `v test` works
 | |
|         run: |
 | |
|           echo $VFLAGS
 | |
|           ./v cmd/tools/test_if_v_test_system_works.v
 | |
|           ./cmd/tools/test_if_v_test_system_works          
 | |
|       - name: All code is formatted
 | |
|         run: VJOBS=1 ./v test-cleancode
 | |
|       - name: Self tests
 | |
|         run: VJOBS=1 ./v test-self
 | |
|       - name: Build examples
 | |
|         run: ./v build-examples
 | |
|       - name: Build examples with -autofree
 | |
|         run: |
 | |
|           ./v -autofree -o tetris examples/tetris/tetris.v
 | |
|           ./v -autofree -o blog tutorials/building_a_simple_web_blog_with_vweb/code/blog          
 | |
|       - name: v doctor
 | |
|         run: |
 | |
|           ./v doctor          
 | |
|       - name: Test ved
 | |
|         run: |
 | |
|           git clone --depth 1 https://github.com/vlang/ved
 | |
|           cd ved && ../v -o ved .
 | |
|           ../v -autofree .
 | |
|           cd ..          
 | |
| #      - name: Test c2v
 | |
| #        run: |
 | |
| #          git clone --depth 1 https://github.com/vlang/c2v
 | |
| #          cd c2v && ../v -o c2v .
 | |
| #          ../v .
 | |
| #          ../v run tests/run_tests.vsh
 | |
| #          ../v -experimental -w c2v_test.v
 | |
| #          cd ..
 | |
|       - name: Build V UI examples
 | |
|         run: |
 | |
|           git clone --depth 1 https://github.com/vlang/ui
 | |
|           cd ui
 | |
|           mkdir -p ~/.vmodules
 | |
|           ln -s $(pwd) ~/.vmodules/ui
 | |
|           ../v examples/rectangles.v
 | |
|           ## ../v run examples/build_examples.vsh          
 | |
|       - name: V self compilation with -usecache
 | |
|         run: |
 | |
|           unset VFLAGS
 | |
|           ./v -usecache examples/hello_world.v && examples/hello_world
 | |
|           ./v  -o v2 -usecache cmd/v
 | |
|           ./v2 -o v3 -usecache cmd/v
 | |
|           ./v3 version
 | |
|           ./v3 -o tetris  -usecache examples/tetris/tetris.v          
 | |
| 
 | |
|   ubuntu:
 | |
|     runs-on: ubuntu-20.04
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     timeout-minutes: 121
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - uses: actions/setup-node@v1
 | |
|         with:
 | |
|           node-version: 12.x
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           sudo apt-get update
 | |
|           sudo apt-get install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
 | |
|           sudo apt-get install --quiet -y libfreetype6-dev  libxi-dev libxcursor-dev libgl-dev          
 | |
|       - name: Build V
 | |
|         run: make -j4 && ./v -cc gcc -cg -cstrict -o v cmd/v
 | |
|       - name: Valgrind v.c
 | |
|         run: valgrind --error-exitcode=1 ./v -o v.c cmd/v
 | |
|       - name: Run sanitizers
 | |
|         run: |
 | |
|           ./v -o v2 cmd/v -cflags -fsanitize=thread
 | |
|           ./v -o v3 cmd/v -cflags "-fsanitize=undefined -fno-sanitize=alignment"
 | |
|           UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v2 -o v.c cmd/v
 | |
|           UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v3 -o v.c cmd/v          
 | |
|       #    - name: Test V
 | |
|       #      run: ./v test-all
 | |
|       #    - name: Test v binaries
 | |
|       #      run: ./v build-vbinaries
 | |
|       ##    - name: Test v->js
 | |
|       ##      run: ./v -o hi.js examples/hello_v_js.v && node hi.js
 | |
|       #    - name: Build Vorum
 | |
|       #      run: git clone --depth 1 https://github.com/vlang/vorum && cd vorum && ../v . && cd ..
 | |
|       - name: Build vpm
 | |
|         run: git clone --depth 1 https://github.com/vlang/vpm && cd vpm && ../v . && cd ..
 | |
|       - name: Freestanding
 | |
|         run: ./v -freestanding run vlib/os/bare/bare_example_linux.v
 | |
|       - name: V self compilation
 | |
|         run: ./v -o v2 cmd/v && ./v2 -o v3 cmd/v && ./v3 -o v4 cmd/v
 | |
|       - name: V self compilation with -usecache
 | |
|         run: |
 | |
|           unset VFLAGS
 | |
|           ./v -usecache examples/hello_world.v && examples/hello_world
 | |
|           ./v  -o v2     -usecache cmd/v
 | |
|           ./v2 -o v3     -usecache cmd/v
 | |
|           ./v3 version
 | |
|           ./v3 -o tetris -usecache examples/tetris/tetris.v          
 | |
|       - name: Verify `v test` works
 | |
|         run: |
 | |
|           echo $VFLAGS
 | |
|           ./v cmd/tools/test_if_v_test_system_works.v
 | |
|           ./cmd/tools/test_if_v_test_system_works          
 | |
|       - name: All code is formatted
 | |
|         run: ./v test-cleancode
 | |
|       - name: Self tests
 | |
|         run: ./v test-self
 | |
|       - name: Self tests (-prod)
 | |
|         run: ./v -o vprod -prod cmd/v && ./vprod test-self
 | |
|       - name: Self tests (-cstrict)
 | |
|         run: V_CI_CSTRICT=1 ./v -cc gcc -cstrict test-self
 | |
|       - name: Build examples
 | |
|         run: ./v build-examples
 | |
|       - name: Build tetris.v with -autofree
 | |
|         run: ./v -autofree -experimental -o tetris examples/tetris/tetris.v
 | |
|       - name: Build option_test.v with -autofree
 | |
|         run: ./v -autofree vlib/v/tests/option_test.v
 | |
|       - name: Build modules
 | |
|         run: |
 | |
|           ./v build-module vlib/os
 | |
|           ./v build-module vlib/builtin
 | |
|           ./v build-module vlib/strconv
 | |
|           ./v build-module vlib/time
 | |
|           ./v build-module vlib/term
 | |
|           ./v build-module vlib/math
 | |
|           ./v build-module vlib/strings
 | |
|           ./v build-module vlib/v/token
 | |
|           ./v build-module vlib/v/ast
 | |
|           ./v build-module vlib/v/parser
 | |
|           ./v build-module vlib/v/gen/c
 | |
|           ./v build-module vlib/v/depgraph
 | |
|           ./v build-module vlib/os/cmdline          
 | |
|       - name: native machine code generation
 | |
|         run: |
 | |
|           exit
 | |
|           ./v -o vprod -prod cmd/v
 | |
|           cd cmd/tools
 | |
|           echo "Generating a 1m line V file..."
 | |
|           ../../vprod gen1m.v
 | |
|           ./gen1m > 1m.v
 | |
|           echo "Building it..."
 | |
|           ../../vprod -backend native -o 1m 1m.v
 | |
|           echo "Running it..."
 | |
|           ls          
 | |
| 
 | |
|   #        ./1m
 | |
|   # run: echo "TODO" #cd examples/native && ../../v -native hello_world.v && ./hello_world
 | |
|   #    - name: Coveralls GitHub Action
 | |
|   #      uses: coverallsapp/github-action@v1.0.1
 | |
|   #      with:
 | |
|   #        github-token: ${{ secrets.GITHUB_TOKEN }}
 | |
| 
 | |
|   ubuntu-clang:
 | |
|     runs-on: ubuntu-20.04
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     timeout-minutes: 121
 | |
|     env:
 | |
|       VFLAGS: -cc clang
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - uses: actions/setup-node@v1
 | |
|         with:
 | |
|           node-version: 12.x
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           sudo apt-get update
 | |
|           sudo apt-get install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
 | |
|           sudo apt-get install --quiet -y libfreetype6-dev  libxi-dev libxcursor-dev libgl-dev
 | |
|           sudo apt-get install --quiet -y clang          
 | |
|       - name: Build V
 | |
|         run: make -j4 && ./v -cc clang -cg -cstrict -o v cmd/v
 | |
|       - name: Valgrind
 | |
|         run: valgrind --error-exitcode=1 ./v -o v.c cmd/v
 | |
|       - name: Run sanitizers
 | |
|         run: |
 | |
|           ./v -o v2 cmd/v -cflags -fsanitize=memory
 | |
|           ./v -o v3 cmd/v -cflags -fsanitize=thread
 | |
|           ./v -o v4 cmd/v -cflags -fsanitize=undefined
 | |
|           ./v -o v5 cmd/v -cflags -fsanitize=address,pointer-compare,pointer-subtract
 | |
|           UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v2 -o v.c cmd/v
 | |
|           UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v3 -o v.c cmd/v
 | |
|           UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v4 -o v.c cmd/v
 | |
|           ASAN_OPTIONS=detect_leaks=0 UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v5 -o v.c cmd/v          
 | |
|       - name: v self compilation
 | |
|         run: ./v -o v2 cmd/v && ./v2 -o v3 cmd/v && ./v3 -o v4 cmd/v
 | |
|       - name: v self compilation with -usecache
 | |
|         run: |
 | |
|           unset VFLAGS
 | |
|           ./v -usecache examples/hello_world.v && examples/hello_world
 | |
|           ./v  -o v2     -usecache cmd/v
 | |
|           ./v2 -o v3     -usecache cmd/v
 | |
|           ./v3 version
 | |
|           ./v3 -o tetris -usecache examples/tetris/tetris.v          
 | |
|       - name: Verify `v test` works
 | |
|         run: |
 | |
|           echo $VFLAGS
 | |
|           ./v cmd/tools/test_if_v_test_system_works.v
 | |
|           ./cmd/tools/test_if_v_test_system_works          
 | |
|       - name: All code is formatted
 | |
|         run: ./v test-cleancode
 | |
| 
 | |
|       - name: Self tests
 | |
|         run: ./v test-self
 | |
|       - name: Self tests (vprod)
 | |
|         run: |
 | |
|           ./v -o vprod -prod cmd/v
 | |
|           ./vprod test-self          
 | |
|       - name: Self tests (-cstrict)
 | |
|         run: V_CI_CSTRICT=1 ./vprod -cstrict test-self
 | |
| 
 | |
|       - name: Build examples
 | |
|         run: ./v build-examples
 | |
|       - name: Build examples with -autofree
 | |
|         run: |
 | |
|           ./v -autofree -experimental -o tetris examples/tetris/tetris.v          
 | |
|       - name: Build modules
 | |
|         run: |
 | |
|           ./v build-module vlib/os
 | |
|           ./v build-module vlib/builtin
 | |
|           ./v build-module vlib/strconv
 | |
|           ./v build-module vlib/time
 | |
|           ./v build-module vlib/term
 | |
|           ./v build-module vlib/math
 | |
|           ./v build-module vlib/strings
 | |
|           ./v build-module vlib/v/token
 | |
|           ./v build-module vlib/v/ast
 | |
|           ./v build-module vlib/v/parser
 | |
|           ./v build-module vlib/v/gen/c
 | |
|           ./v build-module vlib/v/depgraph
 | |
|           ./v build-module vlib/os/cmdline          
 | |
|       - name: native machine code generation
 | |
|         run: |
 | |
|           exit
 | |
|           ./v -o vprod -prod cmd/v
 | |
|           cd cmd/tools
 | |
|           echo "Generating a 1m line V file..."
 | |
|           ../../vprod gen1m.v
 | |
|           ./gen1m > 1m.v
 | |
|           echo "Building it..."
 | |
|           ../../vprod -backend native -o 1m 1m.v
 | |
|           echo "Running it..."
 | |
|           ls          
 | |
| 
 | |
|   windows-gcc:
 | |
|     runs-on: windows-2019
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     timeout-minutes: 121
 | |
|     env:
 | |
|       VFLAGS: -cc gcc
 | |
|       VERBOSE_MAKE: 1
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - uses: actions/setup-node@v1
 | |
|         with:
 | |
|           node-version: 12.x
 | |
|       - name: Build
 | |
|         run: |
 | |
|           gcc --version
 | |
|           .\make.bat -gcc          
 | |
|       - name: Test new v.c
 | |
|         run: |
 | |
|           .\v.exe -o v.c cmd/v
 | |
|           gcc -Werror -municode -w v.c          
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           .\v.exe setup-freetype
 | |
|           .\.github\workflows\windows-install-sqlite.bat          
 | |
|       - name: v doctor
 | |
|         run: |
 | |
|           ./v doctor          
 | |
|       - name: Verify `v test` works
 | |
|         run: |
 | |
|           echo $VFLAGS
 | |
|           ./v cmd/tools/test_if_v_test_system_works.v
 | |
|           ./cmd/tools/test_if_v_test_system_works          
 | |
|       - name: All code is formatted
 | |
|         run: ./v test-cleancode
 | |
|       - name: Self tests
 | |
|         run: .\v.exe test-self
 | |
|         #    - name: Test
 | |
|         #      run: .\v.exe test-all
 | |
|       - name: Test time functions in a timezone UTC-12
 | |
|         run: |
 | |
|           tzutil /s "Dateline Standard Time"
 | |
|           ./v test vlib/time/          
 | |
|       - name: Test time functions in a timezone UTC-3
 | |
|         run: |
 | |
|           tzutil /s "Greenland Standard Time"
 | |
|           ./v test vlib/time/          
 | |
|       - name: Test time functions in a timezone UTC+3
 | |
|         run: |
 | |
|           tzutil /s "Russian Standard Time"
 | |
|           ./v test vlib/time/          
 | |
|       - name: Test time functions in a timezone UTC+12
 | |
|         run: |
 | |
|           tzutil /s "New Zealand Standard Time"
 | |
|           ./v test vlib/time/          
 | |
|       - name: Test v->js
 | |
|         run: ./v -o hi.js examples/hello_v_js.v && node hi.js
 | |
|       - name: Test v binaries
 | |
|         run: ./v build-vbinaries
 | |
|       - name: Build examples
 | |
|         run: ./v build-examples
 | |
|       - name: v2 self compilation
 | |
|         run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
 | |
| 
 | |
|   windows-msvc:
 | |
|     runs-on: windows-2019
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     timeout-minutes: 121
 | |
|     env:
 | |
|       VFLAGS: -cc msvc
 | |
|       VERBOSE_MAKE: 1
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - uses: actions/setup-node@v1
 | |
|         with:
 | |
|           node-version: 12.x
 | |
|       - name: Build
 | |
|         run: |
 | |
|           echo %VFLAGS%
 | |
|           echo $VFLAGS
 | |
|           .\make.bat -msvc
 | |
|           .\v.exe -cflags /WX self          
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           .\v.exe setup-freetype
 | |
|           .\.github\workflows\windows-install-sqlite.bat          
 | |
|       - name: v doctor
 | |
|         run: |
 | |
|           ./v doctor          
 | |
|       - name: Verify `v test` works
 | |
|         run: |
 | |
|           echo $VFLAGS
 | |
|           ./v cmd/tools/test_if_v_test_system_works.v
 | |
|           ./cmd/tools/test_if_v_test_system_works          
 | |
| ### TODO: test-cleancode fails with msvc. Investigate why???
 | |
| ##      - name: All code is formatted
 | |
| ##        run: ./v test-cleancode
 | |
|       - name: Self tests
 | |
|         run: |
 | |
|           ./v -cg cmd\tools\vtest-self.v
 | |
|           ./v test-self          
 | |
|   #    - name: Test
 | |
|   #      run: .\v.exe test-all
 | |
|       - name: Test v->js
 | |
|         run: ./v -o hi.js examples/hello_v_js.v && node hi.js
 | |
|       - name: Test v binaries
 | |
|         run: ./v build-vbinaries
 | |
|       - name: Build examples
 | |
|         run: ./v build-examples
 | |
|       - name: v2 self compilation
 | |
|         run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
 | |
| 
 | |
|   windows-tcc:
 | |
|     runs-on: windows-2019
 | |
|     if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
|     timeout-minutes: 121
 | |
|     env:
 | |
|       VFLAGS: -cc tcc -no-retry-compilation
 | |
|       VJOBS: 1
 | |
|       VTEST_SHOW_START: 1
 | |
|       VERBOSE_MAKE: 1
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
|       - uses: actions/setup-node@v1
 | |
|         with:
 | |
|           node-version: 12.x
 | |
|       - name: Build with make.bat -tcc
 | |
|         run: |
 | |
|           .\make.bat -tcc          
 | |
|       - name: Test new v.c
 | |
|         run: |
 | |
|           .\v.exe -o v.c cmd/v
 | |
|           .\thirdparty\tcc\tcc.exe -Werror -w -ladvapi32 -bt10 v.c          
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           .\v.exe setup-freetype
 | |
|           .\.github\workflows\windows-install-sqlite.bat          
 | |
|       - name: v doctor
 | |
|         run: |
 | |
|           ./v doctor          
 | |
|       - name: Verify `v test` works
 | |
|         run: |
 | |
|           .\v.exe cmd/tools/test_if_v_test_system_works.v
 | |
|           .\cmd\tools\test_if_v_test_system_works.exe          
 | |
|       - name: Verify `v vlib/v/gen/c/coutput_test.v` works
 | |
|         run: |
 | |
|           .\v.exe vlib/v/gen/c/coutput_test.v          
 | |
|       - name: Make sure running TCC64 instead of TCC32
 | |
|         run: ./v test .github\workflows\make_sure_ci_run_with_64bit_compiler_test.v
 | |
|       - name: Test ./v doc -v clipboard *BEFORE building tools*
 | |
|         run: ./v doc -v clipboard
 | |
|       - name: Test v build-tools
 | |
|         run: ./v -W build-tools
 | |
|       - name: All code is formatted
 | |
|         run: ./v test-cleancode
 | |
|       - name: Self tests
 | |
|         run: ./v test-self
 | |
|       - name: Test v->js
 | |
|         run: ./v -o hi.js examples/hello_v_js.v && node hi.js
 | |
|       - name: Test v binaries
 | |
|         run: ./v build-vbinaries
 | |
|       - name: Build examples
 | |
|         run: ./v build-examples
 | |
|       - name: v2 self compilation
 | |
|         run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v && .\v3.exe -o v4.exe cmd/v
 | |
|       - name: v2 self compilation with -gc boehm
 | |
|         run: .\v.exe -o v2.exe -gc boehm cmd/v && .\v2.exe -o v3.exe -gc boehm cmd/v && .\v3.exe -o v4.exe -gc boehm cmd/v
 | |
| 
 | |
|         ##      ## tcc32
 | |
|         ##      - name: Build with make.bat -tcc32
 | |
|         ##        run: |
 | |
|         ##          Remove-Item -Recurse -Force .\thirdparty\tcc
 | |
|         ##          .\v.exe wipe-cache
 | |
|         ##          .\make.bat -tcc32
 | |
|         ##      - name: Test new v.c
 | |
|         ##        run: .\v.exe -o v.c cmd/v && .\thirdparty\tcc\tcc.exe -Werror -g -w -ladvapi32 -bt10 v.c
 | |
|         ##      - name: v doctor
 | |
|         ##        run: ./v doctor
 | |
|         ##
 | |
|         ##      - name: Verify `v test` works
 | |
|         ##        run: |
 | |
|         ##          .\v.exe cmd/tools/test_if_v_test_system_works.v
 | |
|         ##          .\cmd\tools\test_if_v_test_system_works.exe
 | |
|         ##
 | |
|         ##      - name: Verify `v vlib/v/gen/c/coutput_test.v` works
 | |
|         ##        run: |
 | |
|         ##          .\v.exe vlib/v/gen/c/coutput_test.v
 | |
|         ##
 | |
|         ##      - name: Make sure running TCC32 instead of TCC64
 | |
|         ##        run: ./v -stats .github\workflows\make_sure_ci_run_with_32bit_compiler_test.v
 | |
|         ##
 | |
|         ##      - name: Test v build-tools
 | |
|         ##        run: ./v -W build-tools
 | |
|         ##
 | |
|         ##      - name: Test ./v doc clipboard
 | |
|         ##        run: ./v doc clipboard
 | |
|         ##
 | |
|         ##      - name: Self tests
 | |
|         ##        run: ./v test-self
 | |
|         ##      - name: Test v->js
 | |
|         ##        run: ./v -o hi.js examples/hello_v_js.v && node hi.js
 | |
|         ##      - name: Test v binaries
 | |
|         ##        run: ./v build-vbinaries
 | |
|         ##      - name: Build examples
 | |
|         ##        run: ./v build-examples
 | |
|         ##      - name: v2 self compilation
 | |
|         ##        run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
 | |
| 
 | |
| 
 | |
| #  ubuntu-autofree-selfcompile:
 | |
| #    runs-on: ubuntu-20.04
 | |
| #    if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
| #    timeout-minutes: 121
 | |
| #    env:
 | |
| #      VFLAGS: -cc gcc
 | |
| #    steps:
 | |
| #    - uses: actions/checkout@v2
 | |
| #    - name: Build V
 | |
| #      run: make -j4
 | |
| #    - name: V self compilation with -autofree
 | |
| #      run: ./v -o v2 -autofree cmd/v && ./v2 -o v3 -autofree cmd/v && ./v3 -o v4 -autofree cmd/v
 | |
| 
 | |
| 
 | |
| #   ubuntu-musl:
 | |
| #     runs-on: ubuntu-20.04
 | |
| #    if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
 | |
| #     timeout-minutes: 121
 | |
| #     env:
 | |
| #       VFLAGS: -cc musl-gcc
 | |
| #       V_CI_MUSL: 1
 | |
| #     steps:
 | |
| #     - uses: actions/checkout@v2
 | |
| #     - uses: actions/setup-node@v1
 | |
| #       with:
 | |
| #         node-version: 12.x
 | |
| #     - name: Install dependencies
 | |
| #       run: |
 | |
| #          sudo apt-get install --quiet -y musl musl-tools libssl-dev sqlite3 libsqlite3-dev valgrind
 | |
| #     - name: Build v
 | |
| #       run: echo $VFLAGS && make -j4 && ./v -cg -o v cmd/v
 | |
| # #    - name: Test v binaries
 | |
| # #      run: ./v build-vbinaries
 | |
| # ##    - name: Test v->js
 | |
| # ##      run: ./v -o hi.js examples/hello_v_js.v && node hi.js
 | |
| #     - name: quick debug
 | |
| #       run: ./v -stats vlib/strconv/format_test.v
 | |
| #     - name: Self tests
 | |
| #       run: ./v test-self
 |