mirror of
https://github.com/vlang/v.git
synced 2025-09-13 14:32:26 +03:00
ci: replace .github/workflows/retry.sh usages in the CI with the shorter v retry --
, move v test-cleancode
upwards to save time for unformatted PRs (#21452)
This commit is contained in:
parent
6cda618ead
commit
5e7d8cd99a
15 changed files with 210 additions and 199 deletions
4
.github/workflows/build_vinix_locally.sh
vendored
4
.github/workflows/build_vinix_locally.sh
vendored
|
@ -21,11 +21,11 @@ mkdir -p $BUILD
|
|||
|
||||
cd $BUILD
|
||||
echo "Clone current Vinix"
|
||||
.github/workflows/retry.sh git clone https://github.com/vlang/vinix.git --depth=1
|
||||
./v retry -- git clone https://github.com/vlang/vinix.git --depth=1
|
||||
|
||||
cd $BUILD
|
||||
echo "Clone current mlibc"
|
||||
.github/workflows/retry.sh git clone https://github.com/managarm/mlibc.git --depth=1
|
||||
./v retry -- git clone https://github.com/managarm/mlibc.git --depth=1
|
||||
|
||||
cd $BUILD
|
||||
echo "Patch mlibc for Vinix"
|
||||
|
|
30
.github/workflows/c2v_ci.yml
vendored
30
.github/workflows/c2v_ci.yml
vendored
|
@ -37,22 +37,22 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build V
|
||||
run: make && ./v symlink -githubci
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Install C2V
|
||||
run: |
|
||||
.github/workflows/retry.sh v install --git https://github.com/vlang/c2v
|
||||
v retry -- v install --git https://github.com/vlang/c2v
|
||||
v -g ~/.vmodules/c2v/ || true
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
if [ "${{ runner.os }}" == "Linux" ]; then
|
||||
.github/workflows/retry.sh sudo apt update -y -qq
|
||||
.github/workflows/retry.sh sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev
|
||||
v retry -- sudo apt update -y -qq
|
||||
v retry -- sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev
|
||||
else
|
||||
.github/workflows/retry.sh brew install sdl2 sdl2_mixer sdl2_net libpng libsamplerate
|
||||
v retry -- brew install sdl2 sdl2_mixer sdl2_net libpng libsamplerate
|
||||
fi
|
||||
- name: Build original Chocolate Doom
|
||||
run: |
|
||||
.github/workflows/retry.sh git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom
|
||||
v retry -- git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom
|
||||
cd ~/code/doom/chocolate-doom
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug .
|
||||
make chocolate-doom
|
||||
|
@ -72,15 +72,15 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build V
|
||||
run: make && ./v symlink -githubci
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Install C2V
|
||||
run: |
|
||||
.github/workflows/retry.sh v install --git https://github.com/vlang/c2v
|
||||
v retry -- v install --git https://github.com/vlang/c2v
|
||||
v -g ~/.vmodules/c2v/ || true
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update -y -qq
|
||||
.github/workflows/retry.sh sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev
|
||||
v retry -- sudo apt update -y -qq
|
||||
v retry -- sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev
|
||||
# c2v / DOOM dependencies
|
||||
# vgret dependencies
|
||||
# imagemagick : convert, mogrify, import
|
||||
|
@ -88,19 +88,19 @@ jobs:
|
|||
# openimageio-tools : idiff
|
||||
# libgl1-mesa-dri : For headless rendering / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true)
|
||||
# freeglut3-dev : Fixes graphic apps compilation with tcc
|
||||
.github/workflows/retry.sh sudo apt install imagemagick openimageio-tools freeglut3-dev libgl1-mesa-dri xvfb xsel xclip
|
||||
v retry -- sudo apt install imagemagick openimageio-tools freeglut3-dev libgl1-mesa-dri xvfb xsel xclip
|
||||
- name: Setup test tools
|
||||
run: |
|
||||
# Fetch the free ~4MB DOOM1.WAD from the link at https://doomwiki.org/wiki/DOOM1.WAD
|
||||
.github/workflows/retry.sh wget https://distro.ibiblio.org/slitaz/sources/packages/d/doom1.wad -O ~/doom1.wad
|
||||
v retry -- wget https://distro.ibiblio.org/slitaz/sources/packages/d/doom1.wad -O ~/doom1.wad
|
||||
# Get imgur upload script
|
||||
.github/workflows/retry.sh wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh
|
||||
v retry -- wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh
|
||||
chmod +x ./imgur.sh
|
||||
# Get regression images to test against
|
||||
.github/workflows/retry.sh git clone https://github.com/Larpon/doom-regression-images
|
||||
v retry -- git clone https://github.com/Larpon/doom-regression-images
|
||||
- name: Build original Chocolate Doom
|
||||
run: |
|
||||
.github/workflows/retry.sh git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom
|
||||
v retry -- git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom
|
||||
cd ~/code/doom/chocolate-doom
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug .
|
||||
make chocolate-doom
|
||||
|
|
21
.github/workflows/cross_ci.yml
vendored
21
.github/workflows/cross_ci.yml
vendored
|
@ -30,15 +30,14 @@ jobs:
|
|||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 10
|
||||
- name: Build V
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh brew install mingw-w64
|
||||
./v retry -- brew install mingw-w64
|
||||
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/"
|
||||
|
||||
- name: Build V
|
||||
run: make
|
||||
|
||||
- name: Test symlink
|
||||
run: ./v symlink
|
||||
|
||||
|
@ -61,20 +60,20 @@ jobs:
|
|||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 10
|
||||
- name: Build v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
## sudo dpkg --add-architecture i386
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libssl-dev sqlite3 libsqlite3-dev
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y mingw-w64 wine-stable winetricks
|
||||
## .github/workflows/retry.sh sudo apt install --quiet -y wine32
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y libssl-dev sqlite3 libsqlite3-dev
|
||||
./v retry -- sudo apt install --quiet -y mingw-w64 wine-stable winetricks
|
||||
## ./v retry -- sudo apt install --quiet -y wine32
|
||||
|
||||
- name: Turn off the wine crash dialog
|
||||
run: winetricks nocrashdialog
|
||||
|
||||
- name: Build v
|
||||
run: make
|
||||
|
||||
- name: v.c can be compiled and run with -os cross
|
||||
run: |
|
||||
./v -os cross -o /tmp/v.c cmd/v
|
||||
|
|
|
@ -4,13 +4,13 @@ set -ex
|
|||
|
||||
rm -rf vlib/toml/tests/testdata/burntsushi vlib/toml/tests/testdata/iarna vlib/toml/tests/testdata/alexcrichton vlib/toml/tests/testdata/large_toml_file_test.toml
|
||||
|
||||
.github/workflows/retry.sh wget https://gist.githubusercontent.com/Larpon/89b0e3d94c6903851ff15559e5df7a05/raw/62a1f87a4e37bf157f2e0bfb32d85d840c98e422/large_toml_file_test.toml -O vlib/toml/tests/testdata/large_toml_file_test.toml
|
||||
./v retry -- wget https://gist.githubusercontent.com/Larpon/89b0e3d94c6903851ff15559e5df7a05/raw/62a1f87a4e37bf157f2e0bfb32d85d840c98e422/large_toml_file_test.toml -O vlib/toml/tests/testdata/large_toml_file_test.toml
|
||||
|
||||
.github/workflows/retry.sh git clone -n https://github.com/iarna/toml-spec-tests.git vlib/toml/tests/testdata/iarna
|
||||
./v retry -- git clone -n https://github.com/iarna/toml-spec-tests.git vlib/toml/tests/testdata/iarna
|
||||
git -C vlib/toml/tests/testdata/iarna checkout 1880b1a
|
||||
|
||||
.github/workflows/retry.sh git clone -n https://github.com/toml-lang/toml-test.git vlib/toml/tests/testdata/burntsushi
|
||||
./v retry -- git clone -n https://github.com/toml-lang/toml-test.git vlib/toml/tests/testdata/burntsushi
|
||||
git -C vlib/toml/tests/testdata/burntsushi checkout f30c716
|
||||
|
||||
.github/workflows/retry.sh git clone -n https://github.com/toml-rs/toml.git vlib/toml/tests/testdata/alexcrichton
|
||||
./v retry -- git clone -n https://github.com/toml-rs/toml.git vlib/toml/tests/testdata/alexcrichton
|
||||
git -C vlib/toml/tests/testdata/alexcrichton reset --hard 499e8c4
|
||||
|
|
10
.github/workflows/gg_regressions_ci.yml
vendored
10
.github/workflows/gg_regressions_ci.yml
vendored
|
@ -34,7 +34,7 @@ jobs:
|
|||
uses: actions/checkout@v4
|
||||
|
||||
- name: Build local v
|
||||
run: make
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
|
||||
- name: Setup dependencies
|
||||
run: |
|
||||
|
@ -44,10 +44,10 @@ jobs:
|
|||
# libxcursor-dev libxi-dev : V gfx deps
|
||||
# libgl1-mesa-dri : For headless rendering / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true)
|
||||
# freeglut3-dev : Fixes graphic apps compilation with tcc
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install imagemagick openimageio-tools libgl1-mesa-dri xvfb libxcursor-dev libxi-dev freeglut3-dev xsel xclip
|
||||
.github/workflows/retry.sh wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh
|
||||
.github/workflows/retry.sh git clone https://github.com/Larpon/gg-regression-images gg-regression-images
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install imagemagick openimageio-tools libgl1-mesa-dri xvfb libxcursor-dev libxi-dev freeglut3-dev xsel xclip
|
||||
./v retry -- wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh
|
||||
./v retry -- git clone https://github.com/Larpon/gg-regression-images gg-regression-images
|
||||
chmod +x ./imgur.sh
|
||||
|
||||
- name: Sample and compare
|
||||
|
|
78
.github/workflows/linux_ci.yml
vendored
78
.github/workflows/linux_ci.yml
vendored
|
@ -28,25 +28,26 @@ jobs:
|
|||
VFLAGS: -cc tcc -no-retry-compilation
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
# The following is needed for examples/wkhtmltopdf.v
|
||||
.github/workflows/retry.sh wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y xfonts-75dpi xfonts-base
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y expect
|
||||
.github/workflows/retry.sh sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb
|
||||
- name: Build v
|
||||
run: |
|
||||
echo $VFLAGS
|
||||
make
|
||||
./v test-cleancode
|
||||
make -j4 && ./v symlink -githubci
|
||||
./v -d debug_malloc -d debug_realloc -o v cmd/v
|
||||
./v -cg -cstrict -o v cmd/v
|
||||
# Test v -realloc arena allocation
|
||||
./v -o vrealloc -prealloc cmd/v && ./vrealloc -o v3 cmd/v && ./v3 -o v4 cmd/v
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies for examples and tools
|
||||
run: |
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
# The following is needed for examples/wkhtmltopdf.v
|
||||
./v retry -- wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
|
||||
./v retry -- sudo apt install --quiet -y xfonts-75dpi xfonts-base
|
||||
./v retry -- sudo apt install --quiet -y expect
|
||||
./v retry -- sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb
|
||||
- name: Test v->c
|
||||
run: |
|
||||
thirdparty/tcc/tcc.exe -version
|
||||
|
@ -63,8 +64,6 @@ jobs:
|
|||
echo $VFLAGS
|
||||
./v cmd/tools/test_if_v_test_system_works.v
|
||||
./cmd/tools/test_if_v_test_system_works
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Test pure V math module
|
||||
run: ./v -exclude @vlib/math/*.c.v test vlib/math/
|
||||
- name: Self tests
|
||||
|
@ -115,13 +114,17 @@ jobs:
|
|||
timeout-minutes: 121
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
- name: Build V
|
||||
run: make -j4 && ./v -cc gcc -cg -cstrict -o v cmd/v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies for examples and tools
|
||||
run: |
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
- name: Recompile V with -cstrict and gcc
|
||||
run: v -cc gcc -cg -cstrict -o v cmd/v
|
||||
- name: Valgrind v.c
|
||||
run: valgrind --error-exitcode=1 ./v -o v.c cmd/v
|
||||
- name: Run sanitizers
|
||||
|
@ -137,7 +140,7 @@ jobs:
|
|||
# - name: Test v->js
|
||||
# run: ./v -o hi.js examples/hello_v_js.v && node hi.js
|
||||
# - name: Build Vorum
|
||||
# run: .github/workflows/retry.sh git clone --depth 1 https://github.com/vlang/vorum && cd vorum && ../v . && cd ..
|
||||
# run: ./v retry -- git clone --depth 1 https://github.com/vlang/vorum && cd vorum && ../v . && cd ..
|
||||
- name: Freestanding
|
||||
run: ./v -freestanding run vlib/os/bare/bare_example_linux.v
|
||||
- name: V self compilation
|
||||
|
@ -155,8 +158,6 @@ jobs:
|
|||
echo $VFLAGS
|
||||
./v cmd/tools/test_if_v_test_system_works.v
|
||||
./cmd/tools/test_if_v_test_system_works
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Test pure V math module
|
||||
run: ./v -exclude @vlib/math/*.c.v test vlib/math/
|
||||
- name: Self tests
|
||||
|
@ -221,14 +222,18 @@ jobs:
|
|||
VFLAGS: -cc clang
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y clang
|
||||
- name: Build V
|
||||
run: make -j4 && ./v -cc clang -cg -cstrict -o v cmd/v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies for examples and tools
|
||||
run: |
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
./v retry -- sudo apt install --quiet -y clang
|
||||
- name: Recompile V with -cstrict and clang
|
||||
run: v -cc clang -cg -cstrict -o v cmd/v
|
||||
- name: Valgrind
|
||||
run: valgrind --error-exitcode=1 ./v -o v.c cmd/v
|
||||
- name: Run sanitizers
|
||||
|
@ -256,8 +261,6 @@ jobs:
|
|||
echo $VFLAGS
|
||||
./v cmd/tools/test_if_v_test_system_works.v
|
||||
./cmd/tools/test_if_v_test_system_works
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
|
||||
- name: Test pure V math module
|
||||
run: ./v -exclude @vlib/math/*.c.v test vlib/math/
|
||||
|
@ -322,12 +325,13 @@ jobs:
|
|||
# VFLAGS: -cc musl-gcc
|
||||
# V_CI_MUSL: 1
|
||||
# steps:
|
||||
# - uses: actions/checkout@v4
|
||||
# - name: Install dependencies
|
||||
# run: |
|
||||
# .github/workflows/retry.sh sudo apt install --quiet -y musl musl-tools libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
# - name: Build v
|
||||
# run: echo $VFLAGS && make -j4 && ./v -cg -o v cmd/v
|
||||
# run: echo $VFLAGS && make -j4 && ./v symlink -githubci
|
||||
# - uses: actions/checkout@v4
|
||||
# - name: Install dependencies for examples and tools
|
||||
# run: ./v retry -- sudo apt install --quiet -y musl musl-tools libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
# - name: Recompile V with -cg
|
||||
# run: ./v -cg -o v cmd/v
|
||||
# # - name: Test v binaries
|
||||
# # run: ./v -N -W build-vbinaries
|
||||
# # - name: Test v->js
|
||||
|
|
14
.github/workflows/macos_ci.yml
vendored
14
.github/workflows/macos_ci.yml
vendored
|
@ -33,14 +33,16 @@ jobs:
|
|||
PKG_CONFIG_PATH: /usr/local/opt/pkgconfig:/usr/local/opt/libpq/lib/pkgconfig:/usr/local/opt/openssl@3/lib/pkgconfig:/opt/homebrew/lib/pkgconfig:/opt/homebrew/opt/libpq/lib/pkgconfig:/opt/homebrew/opt/openssl@3/lib/pkgconfig
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build V
|
||||
run: make -j4 && ./v symlink -githubci && ./v -cg -cstrict -o v cmd/v
|
||||
- name: All code is formatted
|
||||
run: VJOBS=1 ./v test-cleancode
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
echo "PKG_CONFIG_PATH is '$PKG_CONFIG_PATH'"
|
||||
.github/workflows/retry.sh brew install libpq openssl mercurial
|
||||
./v retry -- brew install libpq openssl mercurial
|
||||
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/"
|
||||
echo "LIBRARY_PATH is '$LIBRARY_PATH'"
|
||||
- name: Build V
|
||||
run: make -j4 && ./v -cg -cstrict -o v cmd/v
|
||||
- name: Run sanitizers
|
||||
run: |
|
||||
./v -o v2 cmd/v -cflags -fsanitize=undefined
|
||||
|
@ -66,8 +68,6 @@ jobs:
|
|||
echo $VFLAGS
|
||||
./v cmd/tools/test_if_v_test_system_works.v
|
||||
./cmd/tools/test_if_v_test_system_works
|
||||
- name: All code is formatted
|
||||
run: VJOBS=1 ./v test-cleancode
|
||||
- name: Test pure V math module
|
||||
run: ./v -exclude @vlib/math/*.c.v test vlib/math/
|
||||
- name: Self tests
|
||||
|
@ -86,14 +86,14 @@ jobs:
|
|||
./v doctor
|
||||
- name: Test ved
|
||||
run: |
|
||||
.github/workflows/retry.sh git clone --depth 1 https://github.com/vlang/ved
|
||||
./v retry -- git clone --depth 1 https://github.com/vlang/ved
|
||||
cd ved && ../v -o ved .
|
||||
../v -autofree .
|
||||
../v -prod .
|
||||
cd ..
|
||||
- name: Build V UI examples
|
||||
run: |
|
||||
.github/workflows/retry.sh git clone --depth 1 https://github.com/vlang/ui
|
||||
./v retry -- git clone --depth 1 https://github.com/vlang/ui
|
||||
cd ui
|
||||
mkdir -p ~/.vmodules
|
||||
ln -s $(pwd) ~/.vmodules/ui
|
||||
|
|
6
.github/workflows/native_backend_ci.yml
vendored
6
.github/workflows/native_backend_ci.yml
vendored
|
@ -56,15 +56,15 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install linker
|
||||
if: runner.os == 'Linux'
|
||||
run: .github/workflows/retry.sh sudo apt -qq install binutils
|
||||
- name: Build V
|
||||
if: runner.os != 'Windows'
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Build V (Windows)
|
||||
if: runner.os == 'Windows'
|
||||
run: ./make.bat && ./v symlink -githubci
|
||||
- name: Install linker
|
||||
if: runner.os == 'Linux'
|
||||
run: v retry -- sudo apt -qq install binutils
|
||||
- name: Run the native backend tests serially with more details
|
||||
run: |
|
||||
v vlib/v/gen/native/macho_test.v
|
||||
|
|
25
.github/workflows/other_ci.yml
vendored
25
.github/workflows/other_ci.yml
vendored
|
@ -54,7 +54,7 @@ jobs:
|
|||
- name: Environment info
|
||||
run: echo $VFLAGS $GITHUB_SHA $GITHUB_REF
|
||||
- name: Build local v
|
||||
run: make -j4
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: v test-cleancode
|
||||
run: ./v test-cleancode
|
||||
- name: v test-fmt
|
||||
|
@ -70,10 +70,10 @@ jobs:
|
|||
- name: Environment info
|
||||
run: echo $VFLAGS $GITHUB_SHA $GITHUB_REF
|
||||
- name: Build local v
|
||||
run: make -j4
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Clone & Build previous vmaster/v
|
||||
run: |
|
||||
.github/workflows/retry.sh git clone --depth=1 https://github.com/vlang/v vmaster/
|
||||
./v retry -- git clone --depth=1 https://github.com/vlang/v vmaster/
|
||||
(cd vmaster; make -j4)
|
||||
- name: V versions
|
||||
run: ./v version && ./vmaster/v version
|
||||
|
@ -93,16 +93,15 @@ jobs:
|
|||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 10
|
||||
- name: Build v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libsodium-dev libssl-dev sqlite3 libsqlite3-dev postgresql libpq-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev xfonts-75dpi xfonts-base
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y g++-9 g++-11
|
||||
|
||||
- name: Build v
|
||||
run: make
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y libsodium-dev libssl-dev sqlite3 libsqlite3-dev postgresql libpq-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev xfonts-75dpi xfonts-base
|
||||
./v retry -- sudo apt install --quiet -y g++-9 g++-11
|
||||
|
||||
- name: g++-9 version
|
||||
run: g++-9 --version
|
||||
|
@ -128,12 +127,12 @@ jobs:
|
|||
timeout-minutes: 121
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install zzuf
|
||||
run: .github/workflows/retry.sh sudo apt install -qq zzuf
|
||||
- name: Build local v
|
||||
run: |
|
||||
make -j4
|
||||
make -j4 && ./v symlink -githubci
|
||||
./v -g -d trace_parse_stmt cmd/tools/vtest-parser.v
|
||||
- name: Install zzuf
|
||||
run: ./v retry -- sudo apt install -qq zzuf
|
||||
- name: Run test-parser
|
||||
run: |
|
||||
./v test-parser --show_source --linear examples/hello_world.v
|
||||
|
|
90
.github/workflows/sanitized_ci.yml
vendored
90
.github/workflows/sanitized_ci.yml
vendored
|
@ -81,16 +81,18 @@ jobs:
|
|||
VTEST_SHOW_START: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
.github/workflows/retry.sh sudo apt install clang
|
||||
- name: Build V
|
||||
run: make && ./v -cg -cstrict -o v cmd/v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Ensure code is well formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
./v retry -- sudo apt install clang
|
||||
- name: Recompile V with -cstrict
|
||||
run: ./v -cg -cstrict -o v cmd/v
|
||||
- name: Self tests (-fsanitize=undefined)
|
||||
run: ./v -cflags "-fsanitize=undefined" -o v2 cmd/v && ./v2 -cflags -fsanitize=undefined test-self vlib
|
||||
- name: Build examples (V compiled with -fsanitize=undefined)
|
||||
|
@ -105,15 +107,17 @@ jobs:
|
|||
VTEST_SHOW_START: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
- name: Build V
|
||||
run: make && ./v -cg -cstrict -o v cmd/v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Ensure code is well formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
- name: Recompile V with -cstrict
|
||||
run: ./v -cg -cstrict -o v cmd/v
|
||||
- name: Self tests (-fsanitize=undefined)
|
||||
run: ./v -cflags "-fsanitize=undefined" -o v2 cmd/v && ./v2 -cflags -fsanitize=undefined test-self vlib
|
||||
- name: Build examples (V compiled with -fsanitize=undefined)
|
||||
|
@ -128,16 +132,18 @@ jobs:
|
|||
VTEST_SHOW_START: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
.github/workflows/retry.sh sudo apt install clang
|
||||
- name: Build V
|
||||
run: make && ./v -cg -cstrict -o v cmd/v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Ensure code is well formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
./v retry -- sudo apt install clang
|
||||
- name: Recompile V with -cstrict
|
||||
run: ./v -cg -cstrict -o v cmd/v
|
||||
- name: Self tests (-fsanitize=address)
|
||||
run: ASAN_OPTIONS=detect_leaks=0 ./v -cflags "-fsanitize=address,pointer-compare,pointer-subtract" test-self vlib
|
||||
- name: Self tests (V compiled with -fsanitize=address)
|
||||
|
@ -164,12 +170,12 @@ jobs:
|
|||
.\v.exe self
|
||||
- name: Ensure code is well formatted
|
||||
run: .\v.exe test-cleancode
|
||||
# - name: Install dependencies
|
||||
# run: |
|
||||
# .\v.exe setup-freetype
|
||||
# .\.github\workflows\windows-install-sqlite.bat
|
||||
# - name: Self tests (/fsanitize=address) # TODO:
|
||||
# run: .\v.exe -cflags "/fsanitize=address" test-self vlib
|
||||
# - name: Install dependencies
|
||||
# run: |
|
||||
# .\v.exe setup-freetype
|
||||
# .\.github\workflows\windows-install-sqlite.bat
|
||||
# - name: Self tests (/fsanitize=address) # TODO:
|
||||
# run: .\v.exe -cflags "/fsanitize=address" test-self vlib
|
||||
|
||||
tests-sanitize-address-gcc:
|
||||
runs-on: ubuntu-20.04
|
||||
|
@ -180,16 +186,18 @@ jobs:
|
|||
VTEST_SHOW_START: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
.github/workflows/retry.sh sudo apt install clang
|
||||
- name: Build V
|
||||
run: make && ./v -cg -cstrict -o v cmd/v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Ensure code is well formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
./v retry -- sudo apt install clang
|
||||
- name: Recompile V with -cstrict
|
||||
run: ./v -cg -cstrict -o v cmd/v
|
||||
- name: Self tests (-fsanitize=address)
|
||||
run: ASAN_OPTIONS=detect_leaks=0 ./v -cflags -fsanitize=address test-self vlib
|
||||
- name: Self tests (V compiled with -fsanitize=address)
|
||||
|
@ -208,16 +216,18 @@ jobs:
|
|||
VTEST_SHOW_START: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
.github/workflows/retry.sh sudo apt install clang
|
||||
- name: Build V
|
||||
run: make && ./v -cc clang -cg -cstrict -o v cmd/v
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Ensure code is well formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind
|
||||
./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev
|
||||
./v retry -- sudo apt install clang
|
||||
- name: Recompile V with clang and -cstrict
|
||||
run: ./v -cc clang -cg -cstrict -o v cmd/v
|
||||
- name: Self tests (-fsanitize=memory)
|
||||
run: ./v -cflags -fsanitize=memory test-self vlib
|
||||
- name: Self tests (V compiled with -fsanitize=memory)
|
||||
|
|
8
.github/workflows/toml_ci.yml
vendored
8
.github/workflows/toml_ci.yml
vendored
|
@ -22,12 +22,12 @@ jobs:
|
|||
timeout-minutes: 30
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build V
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install --quiet -y jq libgc-dev
|
||||
- name: Build V
|
||||
run: make
|
||||
v retry -- sudo apt update
|
||||
v retry -- sudo apt install --quiet -y jq libgc-dev
|
||||
|
||||
- name: Show JQ Version
|
||||
run: jq --version
|
||||
|
|
8
.github/workflows/vab_ci.yml
vendored
8
.github/workflows/vab_ci.yml
vendored
|
@ -35,11 +35,11 @@ jobs:
|
|||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build V
|
||||
run: make && sudo ./v symlink
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
|
||||
- name: Install vab
|
||||
run: |
|
||||
.github/workflows/retry.sh v install vab
|
||||
v retry -- v install vab
|
||||
v -g ~/.vmodules/vab
|
||||
sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
|
||||
|
||||
|
@ -70,11 +70,11 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build V
|
||||
run: make && sudo ./v symlink
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
|
||||
- name: Install vab
|
||||
run: |
|
||||
.github/workflows/retry.sh v install vab
|
||||
v retry -- v install vab
|
||||
v -g ~/.vmodules/vab
|
||||
sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
|
||||
|
||||
|
|
11
.github/workflows/vinix_ci.yml
vendored
11
.github/workflows/vinix_ci.yml
vendored
|
@ -23,17 +23,16 @@ jobs:
|
|||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build V
|
||||
run: make -j4 && ./v symlink -githubci
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.github/workflows/retry.sh sudo apt update
|
||||
.github/workflows/retry.sh sudo apt install build-essential meson -y
|
||||
|
||||
- name: Build V
|
||||
run: make && ./v symlink -githubci
|
||||
./v retry -- sudo apt update
|
||||
./v retry -- sudo apt install build-essential meson -y
|
||||
|
||||
- name: Clone current Vinix
|
||||
run: .github/workflows/retry.sh git clone https://github.com/vlang/vinix.git
|
||||
run: ./v retry -- git clone https://github.com/vlang/vinix.git
|
||||
|
||||
- name: Download Vinix kernel dependencies
|
||||
run: cd vinix/kernel && ./get-deps
|
||||
|
|
6
.github/workflows/websockets_ci.yml
vendored
6
.github/workflows/websockets_ci.yml
vendored
|
@ -28,14 +28,14 @@ jobs:
|
|||
VFLAGS: -cc tcc -no-retry-compilation
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: .github/workflows/retry.sh sudo apt install --quiet -y libssl-dev
|
||||
- name: Build v
|
||||
run: |
|
||||
echo $VFLAGS
|
||||
sudo ln -s $PWD/thirdparty/tcc/tcc.exe /usr/local/bin/tcc ## TODO: remove
|
||||
make -j4
|
||||
make -j4 && ./v symlink -githubci
|
||||
./v -g -o v cmd/v
|
||||
- name: Install dependencies
|
||||
run: v retry -- sudo apt install --quiet -y libssl-dev
|
||||
- name: v doctor
|
||||
run: ./v doctor
|
||||
- name: Run websockets tests
|
||||
|
|
90
.github/workflows/windows_ci.yml
vendored
90
.github/workflows/windows_ci.yml
vendored
|
@ -33,6 +33,8 @@ jobs:
|
|||
run: |
|
||||
gcc --version
|
||||
.\make.bat -gcc
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Test new v.c
|
||||
run: |
|
||||
.\v.exe -o v.c cmd/v
|
||||
|
@ -49,8 +51,6 @@ jobs:
|
|||
echo $VFLAGS
|
||||
./v cmd/tools/test_if_v_test_system_works.v
|
||||
./cmd/tools/test_if_v_test_system_works
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Test pure V math module
|
||||
run: ./v -exclude @vlib/math/*.c.v test vlib/math/
|
||||
- name: Self tests
|
||||
|
@ -86,6 +86,8 @@ jobs:
|
|||
echo $VFLAGS
|
||||
.\make.bat -msvc
|
||||
.\v.exe -cflags /WX self
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
.\v.exe setup-freetype
|
||||
|
@ -98,8 +100,6 @@ jobs:
|
|||
echo $VFLAGS
|
||||
./v cmd/tools/test_if_v_test_system_works.v
|
||||
./cmd/tools/test_if_v_test_system_works
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Test pure V math module
|
||||
run: ./v -exclude @vlib/math/*.c.v test vlib/math/
|
||||
- name: Self tests
|
||||
|
@ -130,6 +130,8 @@ jobs:
|
|||
- name: Build with make.bat -tcc
|
||||
run: |
|
||||
.\make.bat -tcc
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Test new v.c
|
||||
run: |
|
||||
.\v.exe -o v.c cmd/v
|
||||
|
@ -153,8 +155,6 @@ jobs:
|
|||
run: ./v doc -v clipboard
|
||||
- name: Test v build-tools
|
||||
run: ./v -W build-tools
|
||||
- name: All code is formatted
|
||||
run: ./v test-cleancode
|
||||
- name: Test pure V math module
|
||||
run: ./v -exclude @vlib/math/*.c.v test vlib/math/
|
||||
- name: Self tests
|
||||
|
@ -170,42 +170,42 @@ jobs:
|
|||
- name: v2 self compilation with -gc boehm
|
||||
run: .\v.exe -o v2.exe -gc boehm cmd/v && .\v2.exe -o v3.exe -gc boehm cmd/v && .\v3.exe -o v4.exe -gc boehm cmd/v
|
||||
|
||||
## tcc32
|
||||
# - name: Build with make.bat -tcc32
|
||||
# run: |
|
||||
# Remove-Item -Recurse -Force .\thirdparty\tcc
|
||||
# .\v.exe wipe-cache
|
||||
# .\make.bat -tcc32
|
||||
# - name: Test new v.c
|
||||
# run: .\v.exe -o v.c cmd/v && .\thirdparty\tcc\tcc.exe -Werror -g -w -ladvapi32 -lws2_32 -bt10 v.c
|
||||
# - name: v doctor
|
||||
# run: ./v doctor
|
||||
#
|
||||
# - name: Verify `v test` works
|
||||
# run: |
|
||||
# .\v.exe cmd/tools/test_if_v_test_system_works.v
|
||||
# .\cmd\tools\test_if_v_test_system_works.exe
|
||||
#
|
||||
# - name: Verify `v vlib/v/gen/c/coutput_test.v` works
|
||||
# run: |
|
||||
# .\v.exe vlib/v/gen/c/coutput_test.v
|
||||
#
|
||||
# - name: Make sure running TCC32 instead of TCC64
|
||||
# run: ./v -stats .github\workflows\make_sure_ci_run_with_32bit_compiler_test.v
|
||||
#
|
||||
# - name: Test v build-tools
|
||||
# run: ./v -W build-tools
|
||||
#
|
||||
# - name: Test ./v doc clipboard
|
||||
# run: ./v doc clipboard
|
||||
#
|
||||
# - name: Self tests
|
||||
# run: ./v test-self vlib
|
||||
# - name: Test v->js
|
||||
# run: ./v -o hi.js examples/hello_v_js.v && node hi.js
|
||||
# - name: Test v binaries
|
||||
# run: ./v build-vbinaries
|
||||
# - name: Build examples
|
||||
# run: ./v build-examples
|
||||
# - name: v2 self compilation
|
||||
# run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
|
||||
## tcc32
|
||||
# - name: Build with make.bat -tcc32
|
||||
# run: |
|
||||
# Remove-Item -Recurse -Force .\thirdparty\tcc
|
||||
# .\v.exe wipe-cache
|
||||
# .\make.bat -tcc32
|
||||
# - name: Test new v.c
|
||||
# run: .\v.exe -o v.c cmd/v && .\thirdparty\tcc\tcc.exe -Werror -g -w -ladvapi32 -lws2_32 -bt10 v.c
|
||||
# - name: v doctor
|
||||
# run: ./v doctor
|
||||
#
|
||||
# - name: Verify `v test` works
|
||||
# run: |
|
||||
# .\v.exe cmd/tools/test_if_v_test_system_works.v
|
||||
# .\cmd\tools\test_if_v_test_system_works.exe
|
||||
#
|
||||
# - name: Verify `v vlib/v/gen/c/coutput_test.v` works
|
||||
# run: |
|
||||
# .\v.exe vlib/v/gen/c/coutput_test.v
|
||||
#
|
||||
# - name: Make sure running TCC32 instead of TCC64
|
||||
# run: ./v -stats .github\workflows\make_sure_ci_run_with_32bit_compiler_test.v
|
||||
#
|
||||
# - name: Test v build-tools
|
||||
# run: ./v -W build-tools
|
||||
#
|
||||
# - name: Test ./v doc clipboard
|
||||
# run: ./v doc clipboard
|
||||
#
|
||||
# - name: Self tests
|
||||
# run: ./v test-self vlib
|
||||
# - name: Test v->js
|
||||
# run: ./v -o hi.js examples/hello_v_js.v && node hi.js
|
||||
# - name: Test v binaries
|
||||
# run: ./v build-vbinaries
|
||||
# - name: Build examples
|
||||
# run: ./v build-examples
|
||||
# - name: v2 self compilation
|
||||
# run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue