Continuous Integration #1940
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Integration | |
concurrency: | |
group: ci-${{ github.event.number }} | |
cancel-in-progress: true | |
on: | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
schedule: | |
- cron: "31 1,12 * * *" | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
shellcheck: | |
name: Shellcheck | |
uses: ./.github/workflows/shellcheck.yml | |
todo: | |
if: github.event_name == 'push' | |
name: TODO | |
uses: ./.github/workflows/todo.yml | |
validate-docs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout VTL | |
uses: actions/checkout@v2 | |
with: | |
path: vtl | |
- name: Setup V | |
uses: vlang/setup-v@v1 | |
with: | |
check-latest: true | |
- name: V doctor | |
run: v doctor | |
- name: Install VSL and dependencies | |
run: | | |
v install vsl && \ | |
sudo apt-get update && \ | |
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 \ | |
libhdf5-dev \ | |
hdf5-tools \ | |
opencl-headers | |
- name: Copy VTL source code to V Modules | |
run: cp -rf ./vtl ~/.vmodules | |
- name: Validate Docs | |
run: | | |
cd ./vtl | |
v check-md . | |
fmt-check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout VTL | |
uses: actions/checkout@v2 | |
with: | |
path: vtl | |
- name: Setup V | |
uses: vlang/setup-v@v1 | |
with: | |
check-latest: true | |
- name: V doctor | |
run: v doctor | |
- name: Install VSL and dependencies | |
run: | | |
v install vsl && \ | |
sudo apt-get update && \ | |
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 \ | |
libhdf5-dev \ | |
hdf5-tools \ | |
opencl-headers | |
- name: Move VTL source code to V Modules | |
run: mv ./vtl ~/.vmodules | |
- name: Verify Fmt | |
run: | | |
cd ~ | |
v fmt -verify ~/.vmodules/vtl | |
run-tests: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-22.04 | |
- ubuntu-20.04 | |
flags: | |
- "" | |
- "--prod" | |
steps: | |
- name: Checkout VTL | |
uses: actions/checkout@v2 | |
with: | |
path: vtl | |
- name: Setup V | |
uses: vlang/setup-v@v1 | |
with: | |
check-latest: true | |
- name: V doctor | |
run: v doctor | |
- name: Install VSL and dependencies | |
run: | | |
v install vsl && \ | |
sudo apt-get update && \ | |
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 \ | |
libhdf5-dev \ | |
hdf5-tools \ | |
opencl-headers | |
- name: Move VTL source code to V Modules | |
run: mv ./vtl ~/.vmodules | |
- name: Execute Tests using Pure V Backend | |
run: ~/.vmodules/vtl/bin/test ${{ matrix.flags }} | |
- name: Execute Tests using Pure V Backend with Pure C Blas | |
run: ~/.vmodules/vtl/bin/test ${{ matrix.flags }} --use-cblas | |
if: ${{ matrix.os != 'ubuntu-18.04' }} | |
- name: Execute Tests using Pure V Backend and Garbage Collection enabled | |
run: ~/.vmodules/vtl/bin/test ${{ matrix.flags }} --use-gc boehm | |
- name: Execute Tests using Pure V Backend with Pure C Blas and Garbage Collection enabled | |
run: ~/.vmodules/vtl/bin/test ${{ matrix.flags }} --use-cblas --use-gc boehm | |
if: ${{ matrix.os != 'ubuntu-18.04' }} |