aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/self_host_build.yml
blob: b728e33c360be49e3f3dd059a121a01fbb844b66 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
name: Validate Build

on:
  pull_request:
    types: [opened, reopened, synchronize, reopened]
    branches: [ main ]

jobs:
  clang-format:
    name: Check clang-format
    runs-on: [self-hosted, linux, x64]

    steps:
    - uses: actions/checkout@v2

    - name: clang-format
      uses: jidicula/[email protected]
      with:
        clang-format-version: '13'
        check-path: '.'
        exclude-regex: (.*thirdparty.*)

  windows-build:
    name: Build Windows
    runs-on: [self-hosted, windows, x64]
    timeout-minutes: 10
    strategy:
          matrix:
            config:
              - 'debug'
              - 'release'
            arch:
              - 'x64'
    env:
      VCPKG_VERSION: 2022.03.10

    steps:
    - uses: actions/checkout@v2

    - name: Setup xmake
      uses: xmake-io/github-action-setup-xmake@v1
      with:
        xmake-version: 2.6.4

    - name: Installing vcpkg
      run: |
        git clone -b ${{env.VCPKG_VERSION}} --single-branch https://github.com/Microsoft/vcpkg.git .vcpkg
        cd .vcpkg
        .\bootstrap-vcpkg.bat
        .\vcpkg.exe integrate install
        cd ..

    - name: Cache vcpkg
      uses: actions/cache@v2
      with:
        path: |
          ${{ github.workspace }}\.vcpkg\installed
        key: ${{ runner.os }}-${{ matrix.config }}-${{env.VCPKG_VERSION}}-${{ hashFiles('xmake.lua') }}-${{ matrix.arch }}-v5

    - name: Config
      run: |
        xmake config -v -y -m ${{ matrix.config }} --arch=${{ matrix.arch }}
      env:
        VCPKG_ROOT: ${{ github.workspace }}/.vcpkg

    - name: Build & Test
      run: |
        xmake test -v -y
      env:
        VCPKG_ROOT: ${{ github.workspace }}/.vcpkg

  linux-build:
    name: Build Linux
    runs-on: [self-hosted, linux, x64]
    timeout-minutes: 10
    strategy:
          matrix:
            config:
              - 'debug'
              - 'release'
            arch:
              - 'x86_64'
    env:
      VCPKG_VERSION: 2022.03.10

    steps:
    - uses: actions/checkout@v2

    - name: Set up GCC 11
      uses: egor-tensin/setup-gcc@v1
      with:
        version: 11
        platform: x64

    - name: Setup xmake
      uses: xmake-io/github-action-setup-xmake@v1
      with:
        xmake-version: 2.6.4

    - name: Installing vcpkg
      run: |
        git clone -b ${{env.VCPKG_VERSION}} --single-branch https://github.com/Microsoft/vcpkg.git .vcpkg
        cd .vcpkg
        ./bootstrap-vcpkg.sh
        cd ..

    - name: Cache vcpkg
      uses: actions/cache@v2
      with:
        path: |
          ${{ github.workspace }}/.vcpkg/installed
        key: ${{ runner.os }}-${{ matrix.config }}-${{env.VCPKG_VERSION}}-${{ hashFiles('xmake.lua') }}-${{ matrix.arch }}-v5

    - name: Config
      run: |
        xmake config -v -y -m ${{ matrix.config }} --arch=${{ matrix.arch }}
      env:
        VCPKG_ROOT: ${{ github.workspace }}/.vcpkg

    - name: Build & Test
      run: |
        xmake test -v -y
      env:
        VCPKG_ROOT: ${{ github.workspace }}/.vcpkg