50 lines
1.5 KiB
YAML
50 lines
1.5 KiB
YAML
name: VC gen
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- "**.md"
|
|
|
|
jobs:
|
|
build-vc:
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name != 'push' || github.event.ref == 'refs/heads/master' || github.event.repository.full_name != 'vlang/v'
|
|
env:
|
|
VREPO: github.com/vlang/vc.git
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build V
|
|
run: make
|
|
- name: Regenerate v.c and v_win.c
|
|
run: |
|
|
git config --global user.email "vlang-bot@users.noreply.github.com"
|
|
git config --global user.name "vlang-bot"
|
|
|
|
COMMIT_HASH=$(git rev-parse --short HEAD)
|
|
COMMIT_MSG=$(git log -1 --oneline --pretty='%s' HEAD)
|
|
|
|
rm -rf vc
|
|
git clone --depth=1 \
|
|
https://vlang-bot:${{ secrets.VLANG_BOT_SECRET }}@$VREPO
|
|
|
|
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 -cc msvc 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"
|
|
|
|
# in case there are recent commits:
|
|
git -C vc pull --rebase origin master
|
|
git -C vc push
|