-
-
Notifications
You must be signed in to change notification settings - Fork 18
171 lines (169 loc) · 5.09 KB
/
release.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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
name: Release
on:
workflow_dispatch:
inputs:
version:
description: set release version
required: true
jobs:
android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python - -y
poetry install
- name: ANDROID
run: |
export CGO_ENABLED=1
wget https://dl.google.com/android/repository/android-ndk-r26b-linux.zip > /dev/null
unzip android-ndk-r26b-linux.zip > /dev/null
export ANDROID_NDK_HOME=$(pwd)/android-ndk-r26b
export PATH=$PATH:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin
#ARM64/AARCH64
export CC=$(which aarch64-linux-android28-clang)
export CXX=$(which aarch64-linux-android28-clang++)
export GOOS=android
export GOARCH=arm64
poetry run build goneonize
#ARM
export CC=$(which armv7a-linux-androideabi28-clang)
export CXX=$(which armv7a-linux-androideabi28-clang++)
export GOOS=android
export GOARCH=arm
poetry run build goneonize
#AMD64/x86_64
export CC=$(which x86_64-linux-android28-clang)
export CXX=$(which x86_64-linux-android28-clang++)
export GOOS=android
export GOARCH=amd64
poetry run build goneonize
#386/686
export CC=$(which i686-linux-android28-clang)
export CXX=$(which i686-linux-android28-clang++)
export GOOS=android
export GOARCH=386
poetry run build goneonize
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: Android
if-no-files-found: error
retention-days: 1
path: neonize/*.so
zig:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python - -y
poetry install
run: |
wget https://ziglang.org/builds/zig-linux-x86_64-0.12.0-dev.2150+63de8a598.tar.xz
xz -d zig-linux-x86_64-0.12.0-dev.2150+63de8a598.tar.xz
tar -xf zig-linux-x86_64-0.12.0-dev.2150+63de8a598.tar
export PATH=$(pwd)/zig-linux-x86_64-0.12.0-dev.2150+63de8a598:$PATH
export CGO_ENABLED=1
#AMD64
export GOOS=windows
export GOARCH=amd64
export CC="zig cc -target x86_64-windows"
poetry run build goneonize
#ARM64
export GOOS=windows
export GOARCH=arm64
export CC="zig cc -target aarch64-windows"
poetry run build goneonize
#X86 / 386
export GOOS=windows
export GOARCH=386
export CC="zig cc -target x86-windows"
poetry run build goneonize
#LINUX x86/386
export GOOS=linux
export GOARCH=386
export CC="zig cc -target x86-linux"
poetry run build goneonize
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: Zig
if-no-files-found: error
retention-days: 1
path: |
neonize/*.so
neonize/*.dll
linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '^1.21.5'
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python - -y
- name: Installing Dependencies
run: |
sudo apt install wget gcc-aarch64-linux-gnu gcc-s390x-linux-gnu gcc-riscv64-linux-gnu -y
poetry install
- name: LINUX
run: |
#AMD64/X86_64
export CGO_ENABLED=1
poetry run build goneonize
#ARM64/AARCH64
export GOOS=linux
export GOARCH=arm64
export CC=$(which aarch64-linux-gnu-gcc)
export CXX=$(which aarch64-linux-gnu-cpp)
poetry run build goneonize
#RISCV64
export GOOS=linux
export GOARCH=riscv64
export CC=$(which riscv64-linux-gnu-gcc)
export CXX=$(which riscv64-linux-gnu-cpp)
poetry run build goneonize
#S390X
export GOOS=linux
export GOARCH=s390x
export CC=$(which s390x-linux-gnu-gcc)
export CXX=$(which s390x-linux-gnu-cpp)
poetry run build goneonize
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: Linux
if-no-files-found: error
retention-days: 1
path: neonize/*.so
release:
runs-on: ubuntu-latest
steps:
- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: |
Android
Zig
Linux
- name: Upload shared library to draft release
uses: softprops/action-gh-release@v1
with:
draft: true
files: |
*.so
*.dll
generate_release_notes: true
tag_name: ${{ github.event.inputs.version }}