name: V Apps and Modules on: push: paths-ignore: - "**.md" pull_request: paths-ignore: - "**.md" concurrency: group: build-v-apps-and-modules-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: true jobs: v-apps-compile: 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 - name: Build V run: make && sudo ./v symlink - name: Install dependencies run: | sudo apt-get update sudo apt-get install --quiet -y libgc-dev libsodium-dev libssl-dev sqlite3 libsqlite3-dev valgrind libfreetype6-dev libxi-dev libxcursor-dev libgl-dev xfonts-75dpi xfonts-base sudo apt-get install --quiet -y --no-install-recommends gfortran liblapacke-dev libopenblas-dev ## for vsl/vtl sudo apt-get install --quiet -y --no-install-recommends sassc ## needed by gitly - name: Build V Language Server (VLS) run: | echo "Clone VLS" git clone --depth 1 https://github.com/vlang/vls /tmp/vls echo "Build VLS" v /tmp/vls/cmd/vls echo "Build VLS with -prod" v -prod /tmp/vls/cmd/vls echo "Build VLS with -gc boehm -skip-unused" v -gc boehm -skip-unused /tmp/vls/cmd/vls echo "Test VLS with gcc" v -cc gcc test /tmp/vls - name: Build V Coreutils run: | echo "Clone Coreutils" git clone --depth 1 https://github.com/vlang/coreutils /tmp/coreutils echo "Build Coreutils" cd /tmp/coreutils; make - name: Build VAB run: | echo "Install VAB" v install vab echo "Build vab" v ~/.vmodules/vab echo "Build vab with -gc boehm -skip-unused" v -gc boehm -skip-unused ~/.vmodules/vab - name: Build Gitly run: | echo "Install markdown" v install markdown echo "Clone Gitly" git clone https://github.com/vlang/gitly /tmp/gitly echo "Build Gitly" v /tmp/gitly echo "Build Gitly with -autofree" v -autofree /tmp/gitly echo "Compile gitly.css from gitly.scss" sassc /tmp/gitly/src/static/css/gitly.scss > /tmp/gitly/src/static/css/gitly.css echo "Run first_run.v" v run /tmp/gitly/tests/first_run.v # /tmp/gitly/gitly -ci_run - name: Build libsodium run: | echo "Install the libsodium wrapper" v install libsodium echo "Test libsodium" VJOBS=1 v test ~/.vmodules/libsodium - name: Build VEX run: | echo "Install Vex" v install nedpals.vex echo "Compile all of the Vex examples" v should-compile-all ~/.vmodules/nedpals/vex/examples echo "Compile the simple Vex example with -skip-unused" v -skip-unused ~/.vmodules/nedpals/vex/examples/simple_example.v echo "Run Vex Tests" v test ~/.vmodules/nedpals/vex - name: Build go2v run: | echo "Clone Go2V" git clone --depth=1 https://github.com/vlang/go2v /tmp/go2v/ echo "Build Go2V" v /tmp/go2v/ echo "Run Go2V tests" VJOBS=1 v -stats test /tmp/go2v/ - name: Build vlang/pdf run: | v install pdf echo "PDF examples should compile" v should-compile-all ~/.vmodules/pdf/examples - name: Install UI through VPM run: | echo "Official VPM modules should be installable" v install ui echo "Examples of UI should compile" v ~/.vmodules/ui/examples/build_examples.vsh - name: Build VSL run: | echo "Installing dependencies" sudo apt-get install --quiet -y --no-install-recommends \ gfortran \ libxi-dev \ libxcursor-dev \ mesa-common-dev \ liblapacke-dev \ libopenblas-dev \ libgc-dev \ libgl1-mesa-dev \ libopenmpi-dev \ opencl-headers echo "Install VSL" v install vsl echo "Execute Tests using Pure V Backend" ~/.vmodules/vsl/bin/test echo "Execute Tests using Pure V Backend with Pure V Math" ~/.vmodules/vsl/bin/test --use-cblas echo "Execute Tests using Pure V Backend and Garbage Collection enabled" ~/.vmodules/vsl/bin/test --use-gc boehm echo "Execute Tests using Pure V Backend with Pure V Math and Garbage Collection enabled" ~/.vmodules/vsl/bin/test --use-cblas --use-gc boehm - name: Build VTL run: | echo "Install VTL" v install vtl echo "Install dependencies" echo "Execute Tests using Pure V Backend" ~/.vmodules/vtl/bin/test echo "Execute Tests using Pure V Backend with Pure V Math" ~/.vmodules/vtl/bin/test --use-cblas echo "Execute Tests using Pure V Backend and Garbage Collection enabled" ~/.vmodules/vtl/bin/test --use-gc boehm echo "Execute Tests using Pure V Backend with Pure V Math and Garbage Collection enabled" ~/.vmodules/vtl/bin/test --use-cblas --use-gc boehm - name: Build AdventOfCode run: | echo "Clone the AdventOfCode repo" git clone --depth 1 https://github.com/vlang/adventofcode /tmp/adventofcode cd /tmp/adventofcode && v run verify.v