-
Notifications
You must be signed in to change notification settings - Fork 1
151 lines (126 loc) · 4.26 KB
/
linux-x64.yml
File metadata and controls
151 lines (126 loc) · 4.26 KB
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: Linux x64
on:
push:
branches: [ "**" ]
pull_request:
jobs:
build-debug:
name: Build Debug
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
path: repository
submodules: recursive
- name: Clean submodules (Local)
run: |
cd repository
# Clean untracked files inside submodules
git submodule foreach --recursive git reset --hard
git submodule foreach --recursive git clean -fdx
git submodule sync --recursive
git submodule update --init --force --recursive
- name: Install packages
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y build-essential zip unzip curl cmake pkg-config git gcc-multilib g++-multilib
sudo apt-get install -y autoconf libtool libcpprest-dev uuid-dev
sudo apt install libcpprest-dev:i386 || true
- name: Clone vcpkg
run: git clone https://github.com/microsoft/vcpkg.git || true
- name: Bootstrap vcpkg
run: ./vcpkg/bootstrap-vcpkg.sh
- name: Integrate vcpkg
run: ./vcpkg/vcpkg integrate install
- name: Install dependencies
run: |
PACKAGES=$(cat repository/interstellar/vcpkg.conf)
./vcpkg/vcpkg install $PACKAGES --triplet=x64-linux
env:
VCPKG_DEFAULT_TRIPLET: x64-linux
- name: Install Premake5
run: |
git clone --depth=1 https://github.com/premake/premake-core.git || true
cd premake-core
make -f Bootstrap.mak linux
mv ./bin/release/premake5 ../repository
cd ..
- name: Initialize Premake
run: |
cd repository
./premake5 gmake
env:
VCPKG_ROOT: ${{ github.workspace }}/vcpkg
- name: Build
run: |
cd repository/build
make config=debug_x64
cd ../..
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: debug_x64_linux
path: repository/bin/x64/Debug/*
if-no-files-found: warn
build-release:
name: Build Release
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
path: repository
submodules: recursive
- name: Clean submodules (Local)
run: |
cd repository
# Clean untracked files inside submodules
git submodule foreach --recursive git reset --hard
git submodule foreach --recursive git clean -fdx
git submodule sync --recursive
git submodule update --init --force --recursive
- name: Install packages
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y build-essential zip unzip curl cmake pkg-config git gcc-multilib g++-multilib
sudo apt-get install -y autoconf libtool libcpprest-dev uuid-dev
sudo apt install libcpprest-dev:i386 || true
- name: Clone vcpkg
run: git clone https://github.com/microsoft/vcpkg.git || true
- name: Bootstrap vcpkg
run: ./vcpkg/bootstrap-vcpkg.sh
- name: Integrate vcpkg
run: ./vcpkg/vcpkg integrate install
- name: Install dependencies
run: |
PACKAGES=$(cat repository/interstellar/vcpkg.conf)
./vcpkg/vcpkg install $PACKAGES --triplet=x64-linux
env:
VCPKG_DEFAULT_TRIPLET: x64-linux
- name: Install Premake5
run: |
git clone --depth=1 https://github.com/premake/premake-core.git || true
cd premake-core
make -f Bootstrap.mak linux
mv ./bin/release/premake5 ../repository
cd ..
- name: Initialize Premake
run: |
cd repository
./premake5 gmake
env:
VCPKG_ROOT: ${{ github.workspace }}/vcpkg
- name: Build Release
run: |
cd repository/build
make config=release_x64
cd ../..
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: release_x64_linux
path: repository/bin/x64/Release/*
if-no-files-found: warn