-
Notifications
You must be signed in to change notification settings - Fork 48
105 lines (92 loc) · 3.15 KB
/
build_osx_arm.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
name: MacOS ARM
on:
push:
branches:
- 'master'
- 'main'
- 'dev'
pull_request:
branches:
- 'master'
- 'main'
- 'dev'
jobs:
macos-arm64:
runs-on: macos-14 # apple silicon
env:
CMAKE_GEN: Ninja
CMAKE_TCH: cmake/toolchains/OSX-AppleClang-native.cmake
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install prerequisites
run: |
sw_vers
echo && echo "** Setting up compiler" && echo
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_NO_INSTALL_CLEANUP=1
brew install ninja mariadb-connector-c
- name: Report building tools
run: |
echo "Apple Clang:" && clang --version
echo && echo "CMake:" && cmake --version
echo && echo "Ninja:" && ninja --version
- name: CMake
run: |
mkdir -p build
cmake -G "Ninja" -DCMAKE_BUILD_TYPE="Nightly" -DCMAKE_TOOLCHAIN_FILE="$CMAKE_TCH" -S . -B ./build
- name: Ninja
run: cd build && ninja -v && cd ..
- name: Create package
run: |
pwd
mkdir accounts logs save scripts
zip -r SphereSvrX-osx-arm64-nightly.zip accounts/ logs/ save/ scripts/
zip SphereSvrX-osx-arm64-nightly.zip src/sphere.ini src/sphereCrypt.ini build/bin-native64/*
# Upload artifact linked to the workflow run - only if the run is for a pull request, or for selected branches
- name: Upload artifact
if: contains(fromJson('["master", "main", "dev"]'), github.ref_name) || ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: Build-osx-arm64
path: SphereSvrX-osx-arm64-nightly.zip
overwrite: true
upload_github_release:
needs: macos-arm64
# Upload artifact linked to GitHub RELEASE we are creating - only if the run is for a pull request, or for selected branches
if: contains(fromJson('["master", "main"]'), github.ref_name)
runs-on: ubuntu-latest
steps:
- name: Download builds
uses: actions/download-artifact@v4
with:
name: Build-osx-arm64
merge-multiple: true
run-id: ${{ github.run_id }}
- name: Create release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: Nightly
tag_name: Nightly
prerelease: true
files: SphereSvrX-osx-arm64-nightly.zip
upload_selfhost_release:
needs: macos-arm64
if: contains(fromJson('["master", "main"]'), github.ref_name) && (github.repository == 'SphereServer/Source-X')
runs-on: ubuntu-latest
steps:
- name: Download builds
uses: actions/download-artifact@v4
with:
name: Build-osx-arm64
merge-multiple: true
run-id: ${{ github.run_id }}
- name: Push release
run: |
curl -sST "{SphereSvrX-osx-arm64-nightly.zip}" -u ${{secrets.UP_USER}}:${{secrets.UP_PASS}} ${{secrets.UP_WHERE}}