v

Зеркало из https://github.com/vlang/v
Форк
0
/
gen_vc_ci.yml 
74 строки · 2.3 Кб
1
name: VC gen
2

3
on:
4
  workflow_dispatch:
5
  pull_request:
6
    paths-ignore:
7
      - '**.vv'
8
      - '**.out'
9
      - '**.md'
10
      - '**.yml'
11
      - '!**/gen_vc_ci.yml'
12
      - 'cmd/tools/**'
13
      - '!cmd/tools/builders/**.v'
14
  push:
15
    paths-ignore:
16
      - '**.vv'
17
      - '**.out'
18
      - '**.md'
19
      - '**.yml'
20
      - '!**/gen_vc_ci.yml'
21
      - 'cmd/tools/**'
22
      - '!cmd/tools/builders/**.v'
23

24
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
25
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
26
concurrency:
27
  group: ${{ github.workflow }}-${{ github.ref }}
28
  cancel-in-progress: ${{ !contains(github.ref, 'master')}}
29

30
jobs:
31
  build-vc:
32
    runs-on: ubuntu-latest
33
    steps:
34
      - uses: actions/checkout@v4
35
      - name: Build V
36
        run: make -j4
37
      - name: Regenerate v.c and v_win.c
38
        run: |
39
          git config --global user.email "vlang-bot@users.noreply.github.com"
40
          git config --global user.name "vlang-bot"
41

42
          COMMIT_HASH=$(git rev-parse --short HEAD)
43
          COMMIT_MSG=$(git log -1 --oneline --pretty='%s' HEAD)
44

45
          rm -rf vc
46
          ./v retry -- git clone --depth=1 \
47
            https://vlang-bot:${{ secrets.VLANG_BOT_SECRET }}@github.com/vlang/vc.git
48

49
          rm -rf vc/v.c vc/v_win.c
50

51
          ./v -o vc/v.c     -cross               cmd/v
52
          ./v -o vc/v_win.c -os windows -cc msvc cmd/v
53

54
          sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v.c
55
          sed -i "1s/^/#define V_COMMIT_HASH \"$COMMIT_HASH\"\n/" vc/v_win.c
56

57
          # do some sanity checks for the generated v.c file:
58
          grep 'Turned ON custom defines: no_backtrace,cross'  vc/v.c
59
          grep '#define CUSTOM_DEFINE_cross' vc/v.c
60

61
          # ensure the C files are over 5000 lines long, as a safety measure
62
          [ $(wc -l < vc/v.c) -gt 5000 ]
63
          [ $(wc -l < vc/v_win.c) -gt 5000 ]
64

65
          git -C vc add v.c v_win.c
66
          git -C vc commit -m "[v:master] $COMMIT_HASH - $COMMIT_MSG"
67

68
          # in case there are recent commits:
69
          ./v retry -- git -C vc pull --rebase origin master
70
          git -C vc log -3
71

72
      - name: Deploy
73
        if: github.event_name == 'push' && github.repository == 'vlang/v' && github.ref == 'refs/heads/master'
74
        run: git -C vc push || true
75

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.