2022-05-13 11:01:59 +03:00
|
|
|
name: V Apps and Modules
|
|
|
|
|
|
|
|
on:
|
2022-05-15 09:06:01 +03:00
|
|
|
push:
|
|
|
|
paths-ignore:
|
|
|
|
- "**.md"
|
|
|
|
pull_request:
|
|
|
|
paths-ignore:
|
|
|
|
- "**.md"
|
2022-05-13 11:01:59 +03:00
|
|
|
|
|
|
|
concurrency:
|
2022-05-21 01:16:29 +03:00
|
|
|
group: build-v-apps-and-modules-${{ github.event.pull_request.number || github.sha }}
|
2022-05-13 11:01:59 +03:00
|
|
|
cancel-in-progress: true
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
v-apps-compile:
|
|
|
|
runs-on: ubuntu-20.04
|
2022-05-22 20:19:04 +03:00
|
|
|
if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
|
2022-05-13 11:01:59 +03:00
|
|
|
timeout-minutes: 121
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Build V
|
|
|
|
run: make && sudo ./v symlink
|
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt-get update
|
2022-06-22 00:20:57 +03:00
|
|
|
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
|
2022-07-04 12:50:18 +03:00
|
|
|
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
|
2022-12-15 09:37:10 +03:00
|
|
|
sudo apt-get install --quiet -y --no-install-recommends libhdf5-cpp-103 libhdf5-dev libhdf5-mpi-dev hdf5-tools libopenmpi-dev opencl-headers liblapacke-dev libopenblas-dev ## needed by VSL
|
2022-05-13 11:01:59 +03:00
|
|
|
|
|
|
|
- name: Build V Language Server (VLS)
|
|
|
|
run: |
|
|
|
|
echo "Clone VLS"
|
2022-06-22 00:20:57 +03:00
|
|
|
git clone --depth 1 https://github.com/vlang/vls /tmp/vls
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Build VLS"
|
2022-06-22 00:20:57 +03:00
|
|
|
v /tmp/vls/cmd/vls
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Build VLS with -prod"
|
2022-06-22 00:20:57 +03:00
|
|
|
v -prod /tmp/vls/cmd/vls
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Build VLS with -gc boehm -skip-unused"
|
2022-06-22 00:20:57 +03:00
|
|
|
v -gc boehm -skip-unused /tmp/vls/cmd/vls
|
2022-08-22 10:10:59 +03:00
|
|
|
echo "Test VLS with gcc"
|
|
|
|
v -cc gcc test /tmp/vls
|
2022-05-13 11:01:59 +03:00
|
|
|
|
2022-06-22 00:20:57 +03:00
|
|
|
- name: Build V Coreutils
|
2022-05-13 11:01:59 +03:00
|
|
|
run: |
|
2022-06-22 00:20:57 +03:00
|
|
|
echo "Clone Coreutils"
|
|
|
|
git clone --depth 1 https://github.com/vlang/coreutils /tmp/coreutils
|
|
|
|
echo "Build Coreutils"
|
|
|
|
cd /tmp/coreutils; make
|
2022-05-13 11:01:59 +03:00
|
|
|
|
|
|
|
- name: Build VAB
|
|
|
|
run: |
|
2022-06-22 00:20:57 +03:00
|
|
|
echo "Install VAB"
|
|
|
|
v install vab
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Build vab"
|
2022-06-22 00:20:57 +03:00
|
|
|
v ~/.vmodules/vab
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Build vab with -gc boehm -skip-unused"
|
2022-06-22 00:20:57 +03:00
|
|
|
v -gc boehm -skip-unused ~/.vmodules/vab
|
2022-05-13 11:01:59 +03:00
|
|
|
|
|
|
|
- name: Build Gitly
|
|
|
|
run: |
|
2022-06-22 00:20:57 +03:00
|
|
|
echo "Install markdown"
|
|
|
|
v install markdown
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Clone Gitly"
|
2022-06-22 00:20:57 +03:00
|
|
|
git clone https://github.com/vlang/gitly /tmp/gitly
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Build Gitly"
|
2022-06-22 00:20:57 +03:00
|
|
|
v /tmp/gitly
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Build Gitly with -autofree"
|
2022-06-22 00:20:57 +03:00
|
|
|
v -autofree /tmp/gitly
|
2022-07-04 12:50:18 +03:00
|
|
|
echo "Compile gitly.css from gitly.scss"
|
2022-07-19 13:53:05 +03:00
|
|
|
sassc /tmp/gitly/src/static/css/gitly.scss > /tmp/gitly/src/static/css/gitly.css
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Run first_run.v"
|
2022-06-22 00:20:57 +03:00
|
|
|
v run /tmp/gitly/tests/first_run.v
|
|
|
|
# /tmp/gitly/gitly -ci_run
|
2022-05-13 11:01:59 +03:00
|
|
|
|
|
|
|
- name: Build libsodium
|
|
|
|
run: |
|
2022-06-22 00:20:57 +03:00
|
|
|
echo "Install the libsodium wrapper"
|
|
|
|
v install libsodium
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "Test libsodium"
|
2022-06-22 00:20:57 +03:00
|
|
|
VJOBS=1 v test ~/.vmodules/libsodium
|
2022-05-13 11:01:59 +03:00
|
|
|
|
2022-10-21 10:44:59 +03:00
|
|
|
- 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
|
2022-05-13 11:01:59 +03:00
|
|
|
|
|
|
|
- name: Build go2v
|
|
|
|
run: |
|
2022-06-02 06:19:38 +03:00
|
|
|
echo "Clone Go2V"
|
2022-06-22 00:20:57 +03:00
|
|
|
git clone --depth=1 https://github.com/vlang/go2v /tmp/go2v/
|
2022-06-02 06:19:38 +03:00
|
|
|
echo "Build Go2V"
|
2022-06-22 00:20:57 +03:00
|
|
|
v /tmp/go2v/
|
2022-06-02 06:19:38 +03:00
|
|
|
echo "Run Go2V tests"
|
2022-06-22 00:20:57 +03:00
|
|
|
VJOBS=1 v -stats test /tmp/go2v/
|
2022-05-13 11:01:59 +03:00
|
|
|
|
|
|
|
- name: Build vlang/pdf
|
|
|
|
run: |
|
2022-06-22 00:20:57 +03:00
|
|
|
v install pdf
|
2022-05-13 11:01:59 +03:00
|
|
|
echo "PDF examples should compile"
|
2022-06-22 00:20:57 +03:00
|
|
|
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: |
|
2022-12-05 09:50:36 +03:00
|
|
|
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
|
2022-06-22 00:20:57 +03:00
|
|
|
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
|
2022-12-08 12:15:07 +03:00
|
|
|
|
|
|
|
- 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
|