Skip to content

Continuous Integration #2768

Continuous Integration

Continuous Integration #2768

Workflow file for this run

name: Continuous Integration
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name == 'main' && github.sha || github.ref_name }}
cancel-in-progress: true
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
schedule:
- cron: '31 1,12 * * *'
push:
paths-ignore:
- '**.md'
- '**.yml'
- '!.github/workflows/ci.yml'
pull_request:
paths-ignore:
- '**.md'
- '**.yml'
- '!.github/workflows/ci.yml'
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@v4
with:
path: vtl
- name: Setup V
uses: vlang/[email protected]
with:
check-latest: true
- name: V doctor
run: v doctor
- name: Install dependencies
run: |
v install vsl && \
sudo apt-get -qq update && \
sudo apt-get -qq install \
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@v4
with:
path: vtl
- name: Setup V
uses: vlang/setup-v@v1
with:
check-latest: true
- name: V doctor
run: v doctor
- name: Install dependencies
run: |
v install vsl && \
sudo apt-get -qq update && \
sudo apt-get -qq install \
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-20.04, ubuntu-22.04, macos-12, macos-14]
flags: ['', '--prod']
backend: ['pure-v', 'cblas']
fail-fast: false
env:
# Fixes complaints about $TERM not being set when running the vtl test script
# (a warning on Linux, but an error on macOS).
TERM: xterm
steps:
- name: Checkout VTL
uses: actions/checkout@v4
with:
path: vtl
- name: Setup V
uses: vlang/[email protected]
with:
check-latest: true
- name: V doctor
run: v doctor
- name: Install dependencies
run: |
if [ $RUNNER_OS == 'Linux' ]; then
sudo apt -qq update
sudo apt -qq install \
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
else
brew install coreutils hdf5 open-mpi openblas lapack opencl-headers
fi
v install vsl
- name: Move VTL source code to V Modules
run: mv ./vtl ~/.vmodules
- name: Execute Tests
run: |
if [[ "${{ matrix.backend }}" == "cblas" ]]; then
backend_flag=--use-cblas
fi
~/.vmodules/vtl/bin/test ${{ matrix.flags }} $backend_flag