Skip to content

Commit a571bcc

Browse files
authored
Merge pull request #18 from Hintay/master
Added ARMv5, ARMv6, ARMv7 supports to Action build
2 parents 21c6f40 + 1c7dbfe commit a571bcc

File tree

7 files changed

+58
-23
lines changed

7 files changed

+58
-23
lines changed

.github/build/build_info.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"linux": {
3+
"386": {"arch": "i686", "name": "linux-32"},
4+
"amd64": {"arch": "x86_64", "name": "linux-64"},
5+
"arm5": {"arch": "arm", "abi": "eabi", "name": "linux-arm32-v5"},
6+
"arm6": {"arch": "armv5l", "abi": "eabihf", "name": "linux-arm32-v6"},
7+
"arm7": {"arch": "armv7l", "abi": "eabihf", "name": "linux-arm32-v7a"},
8+
"arm64": {"arch": "aarch64", "name": "linux-arm64-v8a"}
9+
},
10+
"darwin": {
11+
"amd64": {"arch": "o64", "name": "macos-64"},
12+
"arm64": {"arch": "oa64", "name": "macos-arm64-v8a"}
13+
}
14+
}

.github/build/compiler_arch.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

.github/workflows/build.yml

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,23 @@ jobs:
8484
# Exclude i386 on darwin.
8585
- goarch: 386
8686
goos: darwin
87+
include:
88+
# BEGIN Linux ARM 5 6 7
89+
- goos: linux
90+
goarch: arm
91+
goarm: 7
92+
- goos: linux
93+
goarch: arm
94+
goarm: 6
95+
- goos: linux
96+
goarch: arm
97+
goarm: 5
98+
# END Linux ARM 5 6 7
8799
env:
88100
CGO_ENABLED: 1
89101
GOOS: ${{ matrix.goos }}
90102
GOARCH: ${{ matrix.goarch }}
91-
DIST: nginx-ui-${{ matrix.GOOS }}-${{ matrix.GOARCH }}
92-
outputs:
93-
dist: ${{ env.DIST }}
103+
GOARM: ${{ matrix.goarm }}
94104
steps:
95105
- name: Checkout
96106
uses: actions/checkout@v2
@@ -106,29 +116,34 @@ jobs:
106116
path: |
107117
~/.cache/go-build
108118
~/go/pkg/mod
109-
key: ${{ runner.os }}-${{ env.GOOS }}-${{ env.GOARCH }}-go-${{ hashFiles('**/go.sum') }}
119+
key: ${{ runner.os }}-${{ env.GOOS }}-${{ env.GOARCH }}${{ env.GOARM }}-go-${{ hashFiles('**/go.sum') }}
110120
restore-keys: |
111-
${{ runner.os }}-${{ env.GOOS }}-${{ env.GOARCH }}-go-
121+
${{ runner.os }}-${{ env.GOOS }}-${{ env.GOARCH }}${{ env.GOARM }}-go-
112122
113123
- name: Setup compiler environment
114124
id: info
115125
run: |
116-
export _ARCH=$(jq ".[\"$GOARCH\"].$GOOS" -r < .github/build/compiler_arch.json)
117-
echo "::set-output name=ARCH_NAME::$_ARCH"
126+
export _NAME=nginx-ui-$(jq ".$GOOS[\"$GOARCH$GOARM\"].name" -r < .github/build/build_info.json)
127+
export _ARCH=$(jq ".$GOOS[\"$GOARCH$GOARM\"].arch" -r < .github/build/build_info.json)
128+
export _ABI=$(jq ".$GOOS[\"$GOARCH$GOARM\"].abi // \"\"" -r < .github/build/build_info.json)
129+
echo "GOOS: $GOOS, GOARCH: $GOARCH, GOARM: $GOARM, ABI: $_ABI, RELEASE_NAME: $_NAME"
130+
echo "ARCH_NAME=$_ARCH" >> $GITHUB_ENV
131+
echo "ABI=$_ABI" >> $GITHUB_ENV
132+
echo "DIST=$_NAME" >> $GITHUB_ENV
118133
119134
- name: Install musl cross compiler
120135
if: env.GOOS == 'linux'
121136
uses: Lesmiscore/[email protected]
122137
id: musl
123138
with:
124-
target: ${{ steps.info.outputs.ARCH_NAME }}-linux-musl
139+
target: ${{ env.ARCH_NAME }}-linux-musl${{ env.ABI }}
125140

126141
- name: Post install musl cross compiler
127142
if: env.GOOS == 'linux'
128143
run: |
129144
echo "PATH=${{ steps.musl.outputs.path }}:$PATH" >> $GITHUB_ENV
130-
echo "CC=${{ steps.info.outputs.ARCH_NAME }}-linux-musl-gcc" >> $GITHUB_ENV
131-
echo "CXX=${{ steps.info.outputs.ARCH_NAME }}-linux-musl-g++" >> $GITHUB_ENV
145+
echo "CC=${{ env.ARCH_NAME }}-linux-musl${{ env.ABI }}-gcc" >> $GITHUB_ENV
146+
echo "CXX=${{ env.ARCH_NAME }}-linux-musl${{ env.ABI }}-g++" >> $GITHUB_ENV
132147
echo "LD_FLAGS=--extldflags '-static'" >> $GITHUB_ENV
133148
134149
- name: Install darwin cross compiler
@@ -138,8 +153,8 @@ jobs:
138153
tar xvaf crossosx.tar.zst
139154
echo "LD_LIBRARY_PATH=$(pwd)/crossosx/lib/" >> $GITHUB_ENV
140155
echo "PATH=$(pwd)/crossosx/bin/:$PATH" >> $GITHUB_ENV
141-
echo "CC=${{ steps.info.outputs.ARCH_NAME }}-clang" >> $GITHUB_ENV
142-
echo "CXX=${{ steps.info.outputs.ARCH_NAME }}-clang++" >> $GITHUB_ENV
156+
echo "CC=${{ env.ARCH_NAME }}-clang" >> $GITHUB_ENV
157+
echo "CXX=${{ env.ARCH_NAME }}-clang++" >> $GITHUB_ENV
143158
echo "LD_FLAGS=-s -w" >> $GITHUB_ENV
144159
145160
- name: Download frontend artifacts

README-zh_CN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ Nginx UI 遵循 Nginx 的标准,创建的网站配置文件位于 Nginx 配置
107107
Nginx UI 可在以下平台中使用:
108108

109109
- Mac OS X 10.10 Yosemite 及之后版本(amd64 / arm64)
110-
- Linux 2.6.23 及之后版本(x86 / amd64 / arm64)
110+
- Linux 2.6.23 及之后版本(x86 / amd64 / arm64 / armv5 / armv6 / armv7
111111
- 包括但不限于 Debian 7 / 8、Ubuntu 12.04 / 14.04 及后续版本、CentOS 6 / 7、Arch Linux
112112
- FreeBSD (x86 / amd64)
113113
- OpenBSD (x86 / amd64)

README-zh_TW.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ Nginx UI 遵循 Nginx 的標準,建立的網站配置檔案位於 Nginx 配置
107107
Nginx UI 可在以下平臺中使用:
108108

109109
- Mac OS X 10.10 Yosemite 及之後版本(amd64 / arm64)
110-
- Linux 2.6.23 及之後版本(x86 / amd64 / arm64)
110+
- Linux 2.6.23 及之後版本(x86 / amd64 / arm64 / armv5 / armv6 / armv7
111111
- 包括但不限於 Debian 7 / 8、Ubuntu 12.04 / 14.04 及後續版本、CentOS 6 / 7、Arch Linux
112112
- FreeBSD (x86 / amd64)
113113
- OpenBSD (x86 / amd64)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ to the `sites-enabled` directory. Therefore, you may need to adjust the way the
105105
Nginx UI is available on the following platforms:
106106

107107
- Mac OS X 10.10 Yosemite and later (amd64 / arm64)
108-
- Linux 2.6.23 and later (x86 / amd64 / arm64)
108+
- Linux 2.6.23 and later (x86 / amd64 / arm64 / armv5 / armv6 / armv7)
109109
- Including but not limited to Debian 7 / 8, Ubuntu 12.04 / 14.04 and later, CentOS 6 / 7, Arch Linux
110110
- FreeBSD (x86 / amd64)
111111
- OpenBSD (x86 / amd64)

install.sh

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,24 @@ identify_the_operating_system_and_architecture() {
134134
if [[ "$(uname)" == 'Linux' ]]; then
135135
case "$(uname -m)" in
136136
'i386' | 'i686')
137-
MACHINE='386'
137+
MACHINE='32'
138138
;;
139139
'amd64' | 'x86_64')
140-
MACHINE='amd64'
140+
MACHINE='64'
141+
;;
142+
'armv5tel')
143+
MACHINE='arm32-v5'
144+
;;
145+
'armv6l')
146+
MACHINE='arm32-v6'
147+
grep Features /proc/cpuinfo | grep -qw 'vfp' || MACHINE='arm32-v5'
148+
;;
149+
'armv7' | 'armv7l')
150+
MACHINE='arm32-v7a'
151+
grep Features /proc/cpuinfo | grep -qw 'vfp' || MACHINE='arm32-v5'
141152
;;
142153
'armv8' | 'aarch64')
143-
MACHINE='arm64'
154+
MACHINE='arm64-v8a'
144155
;;
145156
*)
146157
echo -e "${FontRed}error: The architecture is not supported.${FontSuffix}"

0 commit comments

Comments
 (0)