78 lines
2.2 KiB
YAML
78 lines
2.2 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 -I ./thirdparty/stdatomic/nix -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 -I ./thirdparty/stdatomic/nix -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
|