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@v3 - 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