Skip to content

VSL Continuous Integration #2110

VSL Continuous Integration

VSL Continuous Integration #2110

Workflow file for this run

name: VSL 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
markdownlint:
name: Markdown Lint
uses: ./.github/workflows/markdownlint.yml
todo:
if: github.event_name == 'push'
name: TODO
uses: ./.github/workflows/todo.yml
validate-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout VSL
uses: actions/checkout@v2
with:
path: vsl
- name: Setup V
uses: vlang/[email protected]
with:
check-latest: true
- name: V doctor
run: v doctor
- name: Install dependencies
run: |
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 VSL source code to V Modules
run: cp -rf ./vsl ~/.vmodules
- name: Validate Docs
run: |
cd ~
v check-md ~/.vmodules/vsl
fmt-check:
runs-on: ubuntu-latest
steps:
- name: Checkout VSL
uses: actions/checkout@v2
with:
path: vsl
- name: Setup V
uses: vlang/[email protected]
with:
check-latest: true
- name: V doctor
run: v doctor
- name: Install dependencies
run: |
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 VSL source code to V Modules
run: mv ./vsl ~/.vmodules
- name: Verify Fmt
# TODO: Remove continue-on-error when v fmt -verify is fixed for VSL on CI
continue-on-error: true
run: |
cd ~
v fmt -verify ~/.vmodules/vsl
run-tests-on-linux:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-20.04
flags:
- ""
- "--prod"
steps:
- name: Checkout VSL
uses: actions/checkout@v2
with:
path: vsl
- name: Setup V
uses: vlang/[email protected]
with:
check-latest: true
- name: V doctor
run: v doctor
- name: Install dependencies
run: |
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 VSL source code to V Modules
run: mv ./vsl ~/.vmodules
- name: Execute Tests using Pure V Backend
run: ~/.vmodules/vsl/bin/test ${{ matrix.flags }}
- name: Execute Tests using Pure V Backend with Pure C Blas
run: ~/.vmodules/vsl/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/vsl/bin/test ${{ matrix.flags }} --use-gc boehm
- name: Execute Tests using Pure V Backend with Pure C Blas and Garbage Collection enabled
run: ~/.vmodules/vsl/bin/test ${{ matrix.flags }} --use-cblas --use-gc boehm
if: ${{ matrix.os != 'ubuntu-18.04' }}