Skip to content

v3: add self-hosting AST-free fastc backend #15448

v3: add self-hosting AST-free fastc backend

v3: add self-hosting AST-free fastc backend #15448

Workflow file for this run

name: Docker CI
on:
push:
branches:
- master
paths-ignore:
- 'vlib/v3/**'
- '**.md'
- '**.yml'
- '!**/docker_ci.yml'
- 'cmd/tools/**'
- '!cmd/tools/builders/**.v'
pull_request:
paths-ignore:
- 'vlib/v3/**'
- '**.md'
- '**.yml'
- '!**/docker_ci.yml'
- 'cmd/tools/**'
- '!cmd/tools/builders/**.v'
concurrency:
group: docker-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
cancel-in-progress: true
env:
V_CI_MUSL: 1
jobs:
docker-alpine-musl-gcc:
runs-on: ubuntu-24.04
timeout-minutes: 241
container:
image: thevlang/vlang:alpine-build
env:
VFLAGS: -cc gcc
volumes:
- ${{github.workspace}}:/opt/vlang
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Show Environment
run: |
echo "PWD:"
pwd
echo "ENVIRONMENT:"
env
echo "C Compiler:"
gcc --version
- name: Add dependencies
run: apk add libc6-compat gcompat gc gc-dev binutils diffutils elfutils
- name: Build V
run: CC=gcc make
- name: All code is formatted
run: ./v -silent test-cleancode
- name: Run only essential tests
run: VTEST_JUST_ESSENTIAL=1 ./v -silent test-self
docker-alpine-musl-tcc:
runs-on: ubuntu-24.04
timeout-minutes: 241
container:
image: thevlang/vlang:alpine-build
volumes:
- ${{github.workspace}}:/opt/vlang
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Add dependencies
run: apk add musl-dev libatomic_ops-dev libatomic openssl libc6-compat gcompat gc gc-dev binutils diffutils elfutils
- name: Build V
run: make
- name: Check if vpm compiles with tcc
run: ./v -show-c-output -showcc -no-retry-compilation -cc tcc cmd/tools/vpm
- name: Run only builtin and math tests
run: ./v test vlib/builtin
docker-ubuntu-musl:
runs-on: ubuntu-24.04
timeout-minutes: 150
container:
image: thevlang/vlang:ubuntu-build
env:
V_CI_UBUNTU_MUSL: 1
VFLAGS: -cc musl-gcc -gc none
volumes:
- ${{github.workspace}}:/opt/vlang
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Build V
run: echo "$VFLAGS" && make -j4 && ./v -cg -o v cmd/v
- name: Verify `v test` works
run: |
echo "$VFLAGS"
./v cmd/tools/test_if_v_test_system_works.v
./cmd/tools/test_if_v_test_system_works
- name: Add dependencies
# libssl-dev provides /usr/include/openssl/*.h + libcrypto/libssl at
# the default Debian/Ubuntu locations -- crypto.ecdsa's P-256 ECDH
# support and the new crypto.rsa_pss module (added for net.quic,
# https://github.com/vlang/v/issues/27675) are the first vlib code
# to require these headers in this specific container image; the
# sibling docker-alpine-musl-gcc/tcc jobs never hit this gap because
# they run narrower test subsets (vlib/builtin only, or
# VTEST_JUST_ESSENTIAL=1) that don't exercise crypto.ecdsa/net.quic,
# unlike this job's full `test-self vlib` run.
run: apt install libsqlite3-dev libssl-dev
- name: All code is formatted
run: ./v -silent test-cleancode
- name: Test V fixed tests
run: ./v -silent test-self vlib