mirror of
https://github.com/vlang/v.git
synced 2025-08-04 02:07:28 -04:00
ci: add CI for OpenBSD (#24732)
This commit is contained in:
parent
10da1f632e
commit
9fb205a61c
102
.github/workflows/openbsd_ci.yml
vendored
Normal file
102
.github/workflows/openbsd_ci.yml
vendored
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
name: CI OpenBSD
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
|
- '**.yml'
|
||||||
|
- 'cmd/tools/**'
|
||||||
|
- '!**/openbsd_ci.yml'
|
||||||
|
- '!ci/openbsd_ci.vsh'
|
||||||
|
- '!cmd/tools/builders/**.v'
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
|
- '**.yml'
|
||||||
|
- 'cmd/tools/**'
|
||||||
|
- '!**/openbsd_ci.yml'
|
||||||
|
- '!ci/openbsd_ci.vsh'
|
||||||
|
- '!cmd/tools/builders/**.v'
|
||||||
|
|
||||||
|
### See https://github.com/cross-platform-actions/action
|
||||||
|
### for a description of the used fields here
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
tcc-openbsd:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Tests on OpenBSD with tcc
|
||||||
|
id: tests-openbsd-tcc
|
||||||
|
uses: cross-platform-actions/action@v0.28.0
|
||||||
|
with:
|
||||||
|
operating_system: openbsd
|
||||||
|
version: '7.7'
|
||||||
|
memory: 4G
|
||||||
|
shell: sh
|
||||||
|
sync_files: runner-to-vm
|
||||||
|
run: |
|
||||||
|
sudo pkg_add git sqlite3 gmake boehm-gc libiconv
|
||||||
|
# Mandatory: hostname not set in VM => some tests fail
|
||||||
|
sudo hostname -s openbsd-ci
|
||||||
|
echo "### OS infos"
|
||||||
|
uname -a
|
||||||
|
git config --global --add safe.directory .
|
||||||
|
gmake
|
||||||
|
sudo ./v symlink
|
||||||
|
export VFLAGS='-cc tcc -no-retry-compilation'
|
||||||
|
./v run ci/openbsd_ci.vsh all
|
||||||
|
|
||||||
|
clang-openbsd:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Tests on OpenBSD with clang
|
||||||
|
id: tests-openbsd-clang
|
||||||
|
uses: cross-platform-actions/action@v0.28.0
|
||||||
|
with:
|
||||||
|
operating_system: openbsd
|
||||||
|
version: '7.7'
|
||||||
|
memory: 4G
|
||||||
|
shell: sh
|
||||||
|
sync_files: runner-to-vm
|
||||||
|
run: |
|
||||||
|
sudo pkg_add git sqlite3 gmake boehm-gc libiconv
|
||||||
|
# Mandatory: hostname not set in VM => some tests fail
|
||||||
|
sudo hostname -s openbsd-ci
|
||||||
|
echo "### OS infos"
|
||||||
|
uname -a
|
||||||
|
git config --global --add safe.directory .
|
||||||
|
gmake
|
||||||
|
sudo ./v symlink
|
||||||
|
export VFLAGS='-cc clang'
|
||||||
|
./v run ci/openbsd_ci.vsh all
|
||||||
|
|
||||||
|
gcc-openbsd:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Tests on OpenBSD with gcc
|
||||||
|
id: tests-openbsd-gcc
|
||||||
|
uses: cross-platform-actions/action@v0.28.0
|
||||||
|
with:
|
||||||
|
operating_system: openbsd
|
||||||
|
version: '7.7'
|
||||||
|
memory: 4G
|
||||||
|
shell: sh
|
||||||
|
sync_files: runner-to-vm
|
||||||
|
run: |
|
||||||
|
sudo pkg_add git sqlite3 gmake boehm-gc libiconv gcc-11.2.0p15
|
||||||
|
# Mandatory: hostname not set in VM => some tests fail
|
||||||
|
sudo hostname -s openbsd-ci
|
||||||
|
echo "### OS infos"
|
||||||
|
uname -a
|
||||||
|
git config --global --add safe.directory .
|
||||||
|
gmake
|
||||||
|
sudo ./v symlink
|
||||||
|
export VFLAGS='-cc egcc'
|
||||||
|
./v run ci/openbsd_ci.vsh all
|
59
ci/openbsd_ci.vsh
Normal file
59
ci/openbsd_ci.vsh
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import os
|
||||||
|
import common { Task, exec }
|
||||||
|
|
||||||
|
fn v_doctor() {
|
||||||
|
dump(os.getenv('PATH'))
|
||||||
|
exec('v doctor')
|
||||||
|
if common.is_github_job {
|
||||||
|
exec('uname -mrs')
|
||||||
|
exec('sysctl hw.model')
|
||||||
|
exec('sysctl hw.ncpu')
|
||||||
|
exec('sysctl hw.physmem')
|
||||||
|
exec('sysctl hw.usermem')
|
||||||
|
exec('whoami')
|
||||||
|
exec('pwd')
|
||||||
|
exec('ls -la')
|
||||||
|
exec('git log -n1')
|
||||||
|
exec('cc --version')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn verify_v_test_works() {
|
||||||
|
exec('echo \$VFLAGS')
|
||||||
|
exec('v cmd/tools/test_if_v_test_system_works.v')
|
||||||
|
exec('./cmd/tools/test_if_v_test_system_works')
|
||||||
|
}
|
||||||
|
|
||||||
|
fn build_fast_script() {
|
||||||
|
exec('cd cmd/tools/fast && v fast.v')
|
||||||
|
}
|
||||||
|
|
||||||
|
fn check_math() {
|
||||||
|
exec('v -silent test vlib/math')
|
||||||
|
println('Test the math module, using only the pure V versions,')
|
||||||
|
println(' without the .c.v overrides.')
|
||||||
|
exec('v -silent -exclude @vlib/math/*.c.v test vlib/math')
|
||||||
|
}
|
||||||
|
|
||||||
|
fn check_compress() {
|
||||||
|
exec('v -silent test vlib/compress')
|
||||||
|
}
|
||||||
|
|
||||||
|
fn run_essential_tests() {
|
||||||
|
if common.is_github_job {
|
||||||
|
exec('VTEST_JUST_ESSENTIAL=1 v -silent test-self')
|
||||||
|
} else {
|
||||||
|
exec('VTEST_JUST_ESSENTIAL=1 v -progress test-self')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const all_tasks = {
|
||||||
|
'v_doctor': Task{v_doctor, 'Run v doctor'}
|
||||||
|
'verify_v_test_works': Task{verify_v_test_works, 'Verify that v test works'}
|
||||||
|
'build_fast_script': Task{build_fast_script, 'Check that building fast.v works'}
|
||||||
|
'check_math': Task{check_math, 'Check the `math` module works'}
|
||||||
|
'check_compress': Task{check_compress, 'Check the `compress` module works'}
|
||||||
|
'run_essential_tests': Task{run_essential_tests, 'Run only the essential tests'}
|
||||||
|
}
|
||||||
|
|
||||||
|
common.run(all_tasks)
|
Loading…
x
Reference in New Issue
Block a user