diff --git a/.github/workflows/gen_vc.yml b/.github/workflows/gen_vc.yml new file mode 100644 index 0000000000..d6038c4599 --- /dev/null +++ b/.github/workflows/gen_vc.yml @@ -0,0 +1,38 @@ +name: VC gen + +on: + push: + branches: + - master + +jobs: + build-vc: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Build V + run: make + - name: Regenerate v.c and v_win.c + run: | + COMMIT_HASH=$(git rev-parse --short HEAD) + COMMIT_MSG=$(git log -1 --oneline --pretty='%s' HEAD) + + rm -rf vc + git clone https://github.com/vlang/vc + + rm -rf vc/v.c vc/v_win.c + + ./v -o vc/v.c -os cross cmd/v + ./v -o vc/v_win.c -os windows cmd/v + + sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v.c + sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v_win.c + + # ensure the C files are over 5000 lines long, as a safety measure + [ $(wc -l < vc/v.c) -gt 5000 ] + [ $(wc -l < vc/v_win.c) -gt 5000 ] + + git -C vc add v.c v_win.c + git -C vc commit -m "[v:master] $COMMIT_HASH - $COMMIT_MSG" + + git -C vc push