v/.github/workflows/ci_bootstrapping_works.yml

78 lines
2.1 KiB
YAML

name: Bootstraping works
on:
push:
paths-ignore:
- "**.md"
pull_request:
paths-ignore:
- "**.md"
jobs:
ubuntu:
runs-on: ubuntu-20.04
timeout-minutes: 30
env:
VFLAGS: -cc tcc -no-retry-compilation
B_CFLAGS: -g -std=gnu11 -w
B_LFLAGS: -lm -lpthread
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 10
- name: Build v
run: make
- name: v.c can be compiled and run with -os cross (bootstrapping works)
run: |
ls -la v vc/v.c
./v -os cross -o vc/v.c cmd/v
gcc $B_CFLAGS -o v_from_vc vc/v.c $B_LFLAGS
ls -lart v_from_vc
./v_from_vc version
./v_from_vc run examples/hello_world.v
./v_from_vc -o v_from_vc_produced_native_v cmd/v
./v_from_vc_produced_native_v run examples/hello_world.v
make local=1
ls -la v vc/v.c v_from_vc v_from_vc_produced_native_v
- name: Ensure v up works
run: |
./v cmd/tools/oldv.v
./cmd/tools/oldv -v HEAD^^^^^
cd ~/.cache/oldv/v_at_HEAD_____/
./v version
./v -v up
./v version
./v -o v2 cmd/v
./v2 -o v3 cmd/v
macos:
runs-on: macos-11
timeout-minutes: 30
env:
VFLAGS: -cc clang
B_CFLAGS: -g -std=gnu11 -w
B_LFLAGS: -lm -lpthread
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 10
- name: Build V
run: make && ./v -cg -cstrict -o v cmd/v
- name: v.c can be compiled and run with -os cross (bootstrapping works)
run: |
ls -la v vc/v.c
./v -os cross -o vc/v.c cmd/v
cc $B_CFLAGS -o v_from_vc vc/v.c $B_LFLAGS
ls -lart v_from_vc
./v_from_vc version
./v_from_vc run examples/hello_world.v
./v_from_vc -o v_from_vc_produced_native_v cmd/v
./v_from_vc_produced_native_v run examples/hello_world.v
### the next make invocation will simulate building V from scratch,
### using this commit
make local=1
ls -la v vc/v.c v_from_vc v_from_vc_produced_native_v