From d1b8a67bca20f506ca4306afbe1953c719f572cc Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Fri, 13 May 2022 11:01:59 +0300 Subject: [PATCH] ci: extract v_apps_and_modules_compile.yml --- .github/workflows/other_ci.yml | 116 +------------- .../workflows/v_apps_and_modules_compile.yml | 145 ++++++++++++++++++ 2 files changed, 147 insertions(+), 114 deletions(-) create mode 100644 .github/workflows/v_apps_and_modules_compile.yml diff --git a/.github/workflows/other_ci.yml b/.github/workflows/other_ci.yml index ddbf70e92b..bc2e260ba1 100644 --- a/.github/workflows/other_ci.yml +++ b/.github/workflows/other_ci.yml @@ -85,6 +85,7 @@ jobs: - name: g++ version run: g++-9 --version - name: V self compilation with g++ + continue-on-error: true run: ./v -cc g++-9 -no-std -cflags -std=c++11 -o v2 cmd/v && ./v2 -cc g++-9 -no-std -cflags -std=c++11 -o v3 cmd/v ## - name: Running tests with g++ ## run: ./v -cc g++-9 test-self @@ -93,6 +94,7 @@ jobs: run: ./v -autofree -o v2 cmd/v ## NB: this does not mean it runs, but at least keeps it from regressing - name: Shader examples can be build + continue-on-error: true run: | wget https://github.com/floooh/sokol-tools-bin/raw/33d2e4cc26088c6c28eaef5467990f8940d15aab/bin/linux/sokol-shdc chmod +x ./sokol-shdc @@ -146,117 +148,3 @@ jobs: ./v test-parser -S examples/regex_example_fuzz.v ./v test-parser -S examples/2048/2048_fuzz.v - v-apps-compile: - runs-on: ubuntu-20.04 - 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 - sudo apt-get install --quiet -y libsodium-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 xfonts-75dpi xfonts-base - - ## vls - - name: Clone VLS - run: git clone --depth 1 https://github.com/vlang/vls - - name: Build VLS - run: pushd vls; v cmd/vls ; popd - - name: Build VLS with -prod - run: pushd vls; v -prod cmd/vls; popd - - name: Build VLS with -gc boehm -skip-unused - run: pushd vls; v -gc boehm -skip-unused cmd/vls; popd - - ## vsl - - name: Clone VSL - run: git clone --depth 1 https://github.com/vlang/vsl ~/.vmodules/vsl - - name: Install dependencies - run: sudo apt-get install --quiet -y --no-install-recommends gfortran liblapacke-dev libopenblas-dev libgc-dev - - name: Execute Tests using Pure V Backend - run: ~/.vmodules/vsl/bin/test - - name: Execute Tests using Pure V Backend with Pure V Math - run: ~/.vmodules/vsl/bin/test --use-cblas - - name: Execute Tests using Pure V Backend and Garbage Collection enabled - run: ~/.vmodules/vsl/bin/test --use-gc boehm - - name: Execute Tests using Pure V Backend with Pure V Math and Garbage Collection enabled - run: ~/.vmodules/vsl/bin/test --use-cblas --use-gc boehm - - ## vtl - - name: Clone VTL - run: git clone --depth 1 https://github.com/vlang/vtl ~/.vmodules/vtl - - name: Install dependencies - run: sudo apt-get install --quiet -y --no-install-recommends gfortran liblapacke-dev libopenblas-dev libgc-dev - - name: Execute Tests using Pure V Backend - run: ~/.vmodules/vtl/bin/test - - name: Execute Tests using Pure V Backend with Pure V Math - run: ~/.vmodules/vtl/bin/test --use-cblas - - name: Execute Tests using Pure V Backend and Garbage Collection enabled - run: ~/.vmodules/vtl/bin/test --use-gc boehm - - name: Execute Tests using Pure V Backend with Pure V Math and Garbage Collection enabled - run: ~/.vmodules/vtl/bin/test --use-cblas --use-gc boehm - - ## vab - - name: Clone vab - run: git clone --depth 1 https://github.com/vlang/vab - - name: Build vab - run: cd vab; ../v ./vab.v ; cd .. - - name: Build vab with -gc boehm -skip-unused - run: cd vab; ../v -gc boehm -skip-unused ./vab.v ; cd .. - - ## gitly - - name: Install markdown - run: git clone https://github.com/vlang/markdown ~/.vmodules/markdown - - name: Build Gitly - run: | - git clone --depth 1 https://github.com/vlang/gitly - cd gitly - ../v . - # ./gitly -ci_run - ../v -autofree . - ../v -o x tests/first_run.v - ./x - cd .. - - ## libsodium - - name: Install libsodium-dev package - run: sudo apt-get install --quiet -y libsodium-dev - - name: Install the libsodium wrapper - run: git clone https://github.com/vlang/libsodium ~/.vmodules/libsodium - - name: Test libsodium - run: VJOBS=1 ./v -stats test ~/.vmodules/libsodium - - - ## vex - - name: Install Vex dependencies - run: sudo apt-get install --quiet -y libsodium-dev libssl-dev sqlite3 libsqlite3-dev - - name: Install Vex - run: mkdir -p ~/.vmodules/nedpals; git clone https://github.com/nedpals/vex ~/.vmodules/nedpals/vex - - name: Compile all of the Vex examples - run: ./v should-compile-all ~/.vmodules/nedpals/vex/examples - - name: Compile the simple Vex example with -gc boehm -skip-unused - run: ./v -gc boehm -skip-unused ~/.vmodules/nedpals/vex/examples/simple_example.v - - name: Run Vex Tests - run: ./v test ~/.vmodules/nedpals/vex - - ## Go2V - - name: Clone & Build go2v - run: git clone --depth=1 https://github.com/vlang/go2v go2v/ - - name: Build go2v - run: ./v go2v/ - ## - name: Run tests for go2v - ## run: VJOBS=1 ./v -stats test go2v/ - - ## vlang/pdf - - name: Clone & Build vlang/pdf - run: git clone --depth=1 https://github.com/vlang/pdf ~/.vmodules/pdf/ - - name: PDF examples should compile - run: ./v should-compile-all ~/.vmodules/pdf/examples - - ## vpm modules - - name: Install UI through VPM - run: ./v install ui diff --git a/.github/workflows/v_apps_and_modules_compile.yml b/.github/workflows/v_apps_and_modules_compile.yml new file mode 100644 index 0000000000..deb561d1ca --- /dev/null +++ b/.github/workflows/v_apps_and_modules_compile.yml @@ -0,0 +1,145 @@ +name: V Apps and Modules + +on: + push: + paths-ignore: + - "**.md" + pull_request: + paths-ignore: + - "**.md" + +concurrency: + group: build-other-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +jobs: + v-apps-compile: + runs-on: ubuntu-20.04 + 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 + sudo apt-get install --quiet -y libsodium-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 xfonts-75dpi xfonts-base + + - name: Install UI through VPM + continue-on-error: true + run: | + echo "Official VPM modules should be installable" + ./v install ui + + - name: Build V Language Server (VLS) + continue-on-error: true + run: | + echo "Clone VLS" + git clone --depth 1 https://github.com/vlang/vls + echo "Build VLS" + pushd vls; v cmd/vls ; popd + echo "Build VLS with -prod" + pushd vls; v -prod cmd/vls; popd + echo "Build VLS with -gc boehm -skip-unused" + pushd vls; v -gc boehm -skip-unused cmd/vls; popd + + - name: Build VSL + continue-on-error: true + run: | + git clone --depth 1 https://github.com/vlang/vsl ~/.vmodules/vsl + sudo apt-get install --quiet -y --no-install-recommends gfortran liblapacke-dev libopenblas-dev libgc-dev + 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 + continue-on-error: true + run: | + echo "Clone VTL" + git clone --depth 1 https://github.com/vlang/vtl ~/.vmodules/vtl + echo "Install dependencies" + sudo apt-get install --quiet -y --no-install-recommends gfortran liblapacke-dev libopenblas-dev libgc-dev + 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 VAB + continue-on-error: true + run: | + echo "Clone vab" + git clone --depth 1 https://github.com/vlang/vab + echo "Build vab" + cd vab; ../v ./vab.v ; cd .. + echo "Build vab with -gc boehm -skip-unused" + cd vab; ../v -gc boehm -skip-unused ./vab.v ; cd .. + + - name: Build Gitly + continue-on-error: true + run: | + echo "Clone markdown" + git clone https://github.com/vlang/markdown ~/.vmodules/markdown + echo "Clone Gitly" + git clone --depth 1 https://github.com/vlang/gitly + cd gitly + echo "Build Gitly" + ../v . + echo "Build Gitly with -autofree" + ../v -autofree . + echo "Run first_run.v" + ../v run tests/first_run.v + # ./gitly -ci_run + + - name: Build libsodium + continue-on-error: true + run: | + echo "Install libsodium-dev package" + sudo apt-get install --quiet -y libsodium-dev + echo "Clone the libsodium wrapper" + git clone https://github.com/vlang/libsodium ~/.vmodules/libsodium + echo "Test libsodium" + VJOBS=1 ./v -stats test ~/.vmodules/libsodium + + - name: Build VEX + continue-on-error: true + run: | + echo "Install Vex dependencies" + sudo apt-get install --quiet -y libsodium-dev libssl-dev sqlite3 libsqlite3-dev + echo "Clone Vex" + mkdir -p ~/.vmodules/nedpals; git clone https://github.com/nedpals/vex ~/.vmodules/nedpals/vex + echo "Compile all of the Vex examples" + ./v should-compile-all ~/.vmodules/nedpals/vex/examples + echo "Compile the simple Vex example with -gc boehm -skip-unused" + ./v -gc boehm -skip-unused ~/.vmodules/nedpals/vex/examples/simple_example.v + echo "Run Vex Tests" + ./v test ~/.vmodules/nedpals/vex + + - name: Build go2v + continue-on-error: true + run: | + echo "Clone go2v" + clone --depth=1 https://github.com/vlang/go2v go2v/ + echo "Build go2v" + ./v go2v/ + ## echo "Run tests for go2v" + ## VJOBS=1 ./v -stats test go2v/ + + - name: Build vlang/pdf + continue-on-error: true + run: | + git clone --depth=1 https://github.com/vlang/pdf ~/.vmodules/pdf/ + echo "PDF examples should compile" + ./v should-compile-all ~/.vmodules/pdf/examples