-
Notifications
You must be signed in to change notification settings - Fork 2
130 lines (126 loc) · 6.45 KB
/
build_pc_client.yml
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
125
126
127
128
129
130
name: build_pc_client
on:
workflow_dispatch:
push:
branches: [ "main_disabled" ]
pull_request:
branches: [ "main_disabled" ]
jobs:
build:
runs-on: windows-2022
timeout-minutes: 90
env:
WORKFLOW_BUILD_TYPE: Release
WORKFLOW_VULKAN_DIR: D:/a/Teleport/Teleport/VULKAN_SDK
VULKAN_SDK: D:/a/Teleport/Teleport/VULKAN_SDK
VULKAN_SDK_DIR: D:/a/Teleport/Teleport/VULKAN_SDK
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: 'true'
submodules: 'false'
- name: Git Submodules
run: |
cd ${{github.workspace}}
git submodule update --init --recursive --force -- "firstparty/Platform" "thirdparty/draco" "thirdparty/basis_universal" "thirdparty/libdatachannel" "libavstream/thirdparty/curl" "libavstream/thirdparty/efp" "thirdparty/websocketpp" "thirdparty/flecs"
cd ${{github.workspace}}/thirdparty/libdatachannel
- name: Log
shell: cmd
run: |
git log -1 --pretty=%B>>release_notes.md
echo|set /p=TELEPORT_COMMIT=>teleport_commit.properties
git rev-parse --short HEAD>>teleport_commit.properties
echo GITHUB_ENV $GITHUB_ENV
echo "TELEPORT_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
git log -10 --date=format:"%%a %%d %%b" --no-merges --pretty=format:"%%cd : %%s" > "teleport_log.md"
- name: Dotenv Action
uses: falti/[email protected]
with:
path: teleport_commit.properties
log-variables: true
export-variables: true
- name: Vulkan
uses: humbletim/[email protected]
with:
version: 1.3.290.0
- name: Add to PATH
shell: pwsh
run: |
echo $VULKAN_SDK_DIR/Bin | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo ${{github.workspace}}/Bin/Release | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Initial Checks
run: cmake --version;
echo $VULKAN_SDK_DIR;
echo $VULKAN_SDK;
echo TELEPORT_COMMIT ${{env.TELEPORT_COMMIT}};
echo VULKAN_SDK_DIR ${{env.VULKAN_SDK_DIR}};
echo VULKAN_SDK ${{env.VULKAN_SDK}};
echo GITHUB_PATH ${{env.GITHUB_PATH}};
dir ${{env.WORKFLOW_VULKAN_DIR}};
dir D:/a/Teleport/Teleport/client/Shaders/link.sfx
- name: Running cmake (windows)
run: |
cd ${{ github.workspace }}
mkdir build_pc_client
cd build_pc_client
cmake -S .. -B . -WNo-dev -DLIBAV_USE_CUDA=false -DPLATFORM_USE_ASSIMP=false -DPLATFORM_BUILD_ASSIMP=false -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_VERSION=10.0.22621.0 -DTELEPORT_SOLUTION_NAME=TeleportClient -DVULKAN_SDK=${{env.WORKFLOW_VULKAN_DIR}} -DVULKAN_SDK_DIR=${{env.WORKFLOW_VULKAN_DIR}} -DVulkan_LIBRARY=${{env.WORKFLOW_VULKAN_DIR}}/Lib/vulkan-1.lib -DVulkan_INCLUDE_DIR=${{env.WORKFLOW_VULKAN_DIR}}/Include -DVulkan_GLSLANG_VALIDATOR_EXECUTABLE=${{env.WORKFLOW_VULKAN_DIR}}/Bin/glslangvalidator.exe -DVulkan_GLSLC_EXECUTABLE=${{env.WORKFLOW_VULKAN_DIR}}/Bin/glslc.exe -DCMAKE_BUILD_TYPE=Release -DENABLE_ENCRYPTION=false -DPLATFORM_SUPPORT_OPENGL=false -DPLATFORM_SUPPORT_VULKAN=true -DPLATFORM_SUPPORT_D3D11=false -DPLATFORM_SUPPORT_D3D12=false -DSIMUL_BUILD_SAMPLES=false -DPLATFORM_BUILD_SAMPLES=false -DPLATFORM_BUILD_MD_LIBS=false -DTELEPORT_CLIENT_USE_D3D12=false -DTELEPORT_CLIENT_USE_VULKAN=true -DSIMUL_DEBUG_SHADERS=false
# once more, now we can get a solution name.
cmake -S .. -B . -WNo-dev -DPLATFORM_USE_ASSIMP=false -DPLATFORM_BUILD_ASSIMP=false -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_VERSION=10.0.22621.0 -DTELEPORT_SOLUTION_NAME=TeleportClient -DVULKAN_SDK=${{env.WORKFLOW_VULKAN_DIR}} -DVULKAN_SDK_DIR=${{env.WORKFLOW_VULKAN_DIR}} -DVulkan_LIBRARY=${{env.WORKFLOW_VULKAN_DIR}}/Lib/vulkan-1.lib -DVulkan_INCLUDE_DIR=${{env.WORKFLOW_VULKAN_DIR}}/Include -DVulkan_GLSLANG_VALIDATOR_EXECUTABLE=${{env.WORKFLOW_VULKAN_DIR}}/Bin/glslangvalidator.exe -DVulkan_GLSLC_EXECUTABLE=${{env.WORKFLOW_VULKAN_DIR}}/Bin/glslc.exe -DCMAKE_BUILD_TYPE=Release -DENABLE_ENCRYPTION=false -DPLATFORM_SUPPORT_OPENGL=false -DPLATFORM_SUPPORT_VULKAN=true -DPLATFORM_SUPPORT_D3D11=false -DPLATFORM_SUPPORT_D3D12=false -DSIMUL_BUILD_SAMPLES=false -DPLATFORM_BUILD_SAMPLES=false -DPLATFORM_BUILD_MD_LIBS=false -DTELEPORT_CLIENT_USE_D3D12=false -DTELEPORT_CLIENT_USE_VULKAN=true -DSIMUL_DEBUG_SHADERS=false
- name: Show CMake Output
run: |
gc ${{github.workspace}}/build_pc_client/ClientRender/ClientRender.vcxproj
- name: Setup MSBuild.exe with new add-path
uses: Dana-Prajea/[email protected]
- name: Build
shell: cmd
# Build your program with the given configuration
run: rem cmake --build ${{github.workspace}}/build_pc_client --config ${{env.WORKFLOW_BUILD_TYPE}}
# continue-on-error: true
- name: MSB
shell: cmd
# continue-on-error: true
run: |
MSBuild ${{github.workspace}}/build_pc_client/Teleport_Client.sln /m:1 /p:Configuration=Release /p:Platform=x64 /t:Client\TeleportPCClient
- name: Test
working-directory: ${{github.workspace}}/build_pc_client
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.WORKFLOW_BUILD_TYPE}}
- name: Installer
run: |
mkdir artifacts
cd build_pc_client
CPack -C CPackConfig.cmake
cd ${{github.workspace}}
copy build_pc_client/TeleportClientInstaller-${{env.TELEPORT_COMMIT}}-x64.exe artifacts/
copy teleport_commit.properties artifacts/
copy release_notes.md artifacts/
- uses: actions/[email protected]
with:
name: installer
path: artifacts/*.*
github-token: ${{secrets.TELEPORT_RELEASES_TOKEN}}
- name: Setup tmate session
if: failure()
uses: mxschmitt/action-tmate@v3
with:
limit-access-to-actor: true
release:
runs-on: windows-2022
needs: build
timeout-minutes: 20
env:
VULKAN_SDK_DIR: D:/a/Teleport/Teleport/VULKAN_SDK
steps:
- name: Download a Build Artifact
uses: actions/[email protected]
with:
github-token: ${{secrets.TELEPORT_GENERIC_TOKEN}}
# Name of the artifact to download. If unspecified, all artifacts for the run are downloaded.
name: installer
# Destination path. Supports basic tilde expansion. Defaults to $GITHUB_WORKSPACE
path: installer
- name: Check
run: |
ls -R installer