-
Notifications
You must be signed in to change notification settings - Fork 226
136 lines (109 loc) · 3.8 KB
/
build.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
131
132
133
134
135
136
name: Build
on:
push:
branches:
- main
paths-ignore: [ 'Doc/**', 'Flights/**', 'Html/**', 'Images/**', 'Localdoc/**', 'Scenarios/**', 'Textures/**', 'Textures2/**']
pull_request:
branches:
- main
paths-ignore: [ 'Doc/**', 'Flights/**', 'Html/**', 'Images/**', 'Localdoc/**', 'Scenarios/**', 'Textures/**', 'Textures2/**']
jobs:
build:
name: Build
env:
DXSDK_DIR: "${{ github.workspace }}\\DXSDK"
strategy:
fail-fast: false
matrix:
architecture: [x64, x86]
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Setup Problem Matcher
uses: ammaraskar/msvc-problem-matcher@master
- name: Setup MSVC Console
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.architecture }}
- name: Create directories
run: |
mkdir out\build
mkdir out\install
- name: Cache irrKlang package
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/Extern/irrKlang/${{ matrix.architecture }}
key: irrKlang-${{ matrix.architecture }}
- name: Cache DirectX SDK
id: cache
uses: actions/cache@v3
with:
path: "${{ github.workspace }}\\DXSDK"
key: dxsdk_jun10
- name: Download DirectX SDK
if: steps.cache.outputs.cache-hit != 'true'
shell: cmd
run: |
curl -L https://download.microsoft.com/download/a/e/7/ae743f1f-632b-4809-87a9-aa1bb3458e31/DXSDK_Jun10.exe -o DXSDK_Jun10.exe
7z x DXSDK_Jun10.exe DXSDK/Include
7z x DXSDK_Jun10.exe DXSDK/Lib
del DXSDK_Jun10.exe
dir /S /B DXSDK
- name: Configure
run: cmake . --preset windows-${{ matrix.architecture }}-release -DORBITER_MAKE_DOC=OFF -DDXSDK_DIR:PATH="${{ github.workspace }}\\DXSDK"
- name: Build
run: cmake --build --preset windows-${{ matrix.architecture }}-release --jobs 2
- name: Test
run: ctest --preset windows-${{ matrix.architecture }}-release --jobs 2
- name: Install
working-directory: ${{ github.workspace }}/out/build/windows-${{ matrix.architecture }}-release
run: cmake --install . --prefix ${{ github.workspace }}/out/install
- name: Pack
if: ${{ github.ref == 'refs/heads/main' }}
working-directory: ${{ github.workspace }}/out/install/Orbiter
shell: cmd
run: '7z a "${{ github.workspace }}/out/Orbiter.zip" .'
- name: Upload Build Artifact
if: ${{ github.ref == 'refs/heads/main' }}
uses: actions/[email protected]
with:
name: Orbiter-${{ matrix.architecture }}
# A file, directory or wildcard pattern that describes what to upload
path: ${{ github.workspace }}/out/Orbiter.zip
retention-days: 60
pre-release:
name: Publish pre-release
needs: build
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- name: Create directories
run: mkdir out
- name: Checkout
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v3
with:
path: ./out
- name: Re-arrange artifacts
run: |
mv ./Orbiter-x64/Orbiter.zip ./Orbiter-x64.zip
mv ./Orbiter-x86/Orbiter.zip ./Orbiter-x86.zip
rmdir Orbiter-x64
rmdir Orbiter-x86
ls -R
working-directory: ./out
- name: "Push pre-release tag and upload packages"
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest"
prerelease: true
title: "Orbiter development build"
files: |
./out/Orbiter-x86.zip
./out/Orbiter-x64.zip