Skip to content

Commit 1c58d11

Browse files
cxw620elysia-best
andauthored
chore: update build.sh & add loongarch64 support (OpenListTeam#28)
* chore: update build.sh * chore: update ci build * chore: update ci build GitAuthor * feat(build.sh): fix web release download & add loongarch64 build (OpenListTeam#63) chore(ci): fix web download & add loongarch64 & update cgo-actions to v1.1.1 * chore: temporary build test * revert(build.sh): change to release used url * feat(build.sh): add set -e for build script * fix(build.sh): fix web release download logic * fix(build.sh): remove TODO comment * feat(build.sh): update GitAuthor to bot@openlist.team * feat(build.sh): update GitAuthor * fix: using fsSL in curl & add info of desktop client back * chore: refine beta release workflow comments --------- Co-authored-by: Yinan Qin <39023210+elysia-best@users.noreply.github.com>
1 parent e11c390 commit 1c58d11

File tree

4 files changed

+70
-64
lines changed

4 files changed

+70
-64
lines changed

.github/workflows/beta_release.yml

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,15 @@ jobs:
4242
git tag -l
4343
npx changelogithub --output CHANGELOG.md
4444
45-
# Disable this right now, use github workflow assets for easier manipulation
46-
# - name: Upload assets
47-
# uses: softprops/action-gh-release@v2
48-
# with:
49-
# body_path: "See CHANGELOG.md"
50-
# files: CHANGELOG.md
51-
# prerelease: true
52-
# tag_name: beta
53-
- name: Upload assets
45+
- name: Upload assets to beta release
46+
uses: softprops/action-gh-release@v2
47+
with:
48+
body: "See CHANGELOG.md"
49+
files: CHANGELOG.md
50+
prerelease: true
51+
tag_name: beta
52+
53+
- name: Upload assets to github artifact
5454
uses: actions/upload-artifact@v4
5555
with:
5656
name: beta changelog
@@ -94,31 +94,31 @@ jobs:
9494
run: bash build.sh dev web
9595

9696
- name: Build
97-
uses: go-cross/cgo-actions@454cfd6d20816878926b0253ca8f2dbbd2f7d731 # V1.1.0
97+
uses: OpenListTeam/cgo-actions@v1.1.1
9898
with:
9999
targets: ${{ matrix.target }}
100100
musl-target-format: $os-$musl-$arch
101101
out-dir: build
102102
output: openlist-$target$ext
103103
musl-base-url: "https://github.com/OpenListTeam/musl-compilers/releases/latest/download/"
104104
x-flags: |
105-
github.com/alist-org/alist/v3/internal/conf.BuiltAt=$built_at
106-
github.com/alist-org/alist/v3/internal/conf.GitAuthor=OpenList
107-
github.com/alist-org/alist/v3/internal/conf.GitCommit=$git_commit
108-
github.com/alist-org/alist/v3/internal/conf.Version=$tag
109-
github.com/alist-org/alist/v3/internal/conf.WebVersion=dev
105+
github.com/OpenListTeam/OpenList/internal/conf.BuiltAt=$built_at
106+
github.com/OpenListTeam/OpenList/internal/conf.GitAuthor=OpenList
107+
github.com/OpenListTeam/OpenList/internal/conf.GitCommit=$git_commit
108+
github.com/OpenListTeam/OpenList/internal/conf.Version=$tag
109+
github.com/OpenListTeam/OpenList/internal/conf.WebVersion=dev
110110
111111
- name: Compress
112112
run: |
113113
bash build.sh zip ${{ matrix.hash }}
114114
115115
# See above
116-
# - name: Upload assets
117-
# uses: softprops/action-gh-release@v2
118-
# with:
119-
# files: build/compress/*
120-
# prerelease: true
121-
# tag_name: beta
116+
- name: Upload assets to beta release
117+
uses: softprops/action-gh-release@v2
118+
with:
119+
files: build/compress/*
120+
prerelease: true
121+
tag_name: beta
122122

123123
- name: Clean illegal characters from matrix.target
124124
id: clean_target_name
@@ -129,15 +129,17 @@ jobs:
129129
echo "Cleaned target: $CLEANED_TARGET"
130130
echo "cleaned_target=$CLEANED_TARGET" >> $GITHUB_ENV
131131
132-
- name: Upload assets
132+
- name: Upload assets to github artifact
133133
uses: actions/upload-artifact@v4
134134
with:
135135
name: beta builds for ${{ env.cleaned_target }}
136136
path: ${{ github.workspace }}/build/compress/*
137137
compression-level: 0
138138
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
139139

140-
# TODO: We do not have desktop clients right now.
140+
141+
# TODO: We do not have desktop clients right now. We may need a better way to
142+
# trigger the build of desktop client when we actually have it.
141143
# desktop:
142144
# needs:
143145
# - release
@@ -163,4 +165,4 @@ jobs:
163165
# with:
164166
# github_token: ${{ secrets.MY_TOKEN }}
165167
# branch: main
166-
# repository: alist-org/desktop-release
168+
# repository: alist-org/desktop-release

.github/workflows/build.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,17 @@ jobs:
4242
run: bash build.sh dev web
4343

4444
- name: Build
45-
uses: go-cross/cgo-actions@v1
45+
uses: OpenListTeam/cgo-actions@v1.1.1
4646
with:
4747
targets: ${{ matrix.target }}
4848
musl-target-format: $os-$musl-$arch
4949
out-dir: build
5050
x-flags: |
51-
github.com/alist-org/alist/v3/internal/conf.BuiltAt=$built_at
52-
github.com/alist-org/alist/v3/internal/conf.GitAuthor=Xhofe
53-
github.com/alist-org/alist/v3/internal/conf.GitCommit=$git_commit
54-
github.com/alist-org/alist/v3/internal/conf.Version=$tag
55-
github.com/alist-org/alist/v3/internal/conf.WebVersion=dev
51+
github.com/OpenListTeam/OpenList/internal/conf.BuiltAt=$built_at
52+
github.com/OpenListTeam/OpenList/internal/conf.GitAuthor=OpenList
53+
github.com/OpenListTeam/OpenList/internal/conf.GitCommit=$git_commit
54+
github.com/OpenListTeam/OpenList/internal/conf.Version=$tag
55+
github.com/OpenListTeam/OpenList/internal/conf.WebVersion=dev
5656
5757
- name: Upload artifact
5858
uses: actions/upload-artifact@v4

.github/workflows/release.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ jobs:
6464
files: build/compress/*
6565
prerelease: false
6666

67-
# We don't have desktop right now
67+
68+
# TODO: We do not have desktop clients right now. We may need a better way to
69+
# trigger the build of desktop client when we actually have it.
6870
# release_desktop:
6971
# needs: release
7072
# name: Release desktop

build.sh

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
set -e
12
appName="openlist"
23
builtAt="$(date +'%F %T %z')"
3-
gitAuthor="OpenList <github-workflow@noreply.example.com>"
4+
gitAuthor="The OpenList Projects Contributors <noreply@openlist.team>"
45
gitCommit=$(git log --pretty=format:"%h" -1)
56

67
if [ "$1" = "dev" ]; then
@@ -12,40 +13,45 @@ elif [ "$1" = "beta" ]; then
1213
else
1314
git tag -d beta || true
1415
# Always true if there's no tag
15-
version=$(git describe --abbrev=0 --tags) || true
16-
if [ -z "$version" ]; then
17-
echo "version is empty, assign a default value ..."
18-
version="0.0.1"
19-
fi
20-
# TODO: Repleace this assets with our new frontend if needed
21-
webVersion=$(wget -qO- -t1 -T2 "https://api.github.com/repos/alist-org/alist-web/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
16+
version=$(git describe --abbrev=0 --tags 2>/dev/null || echo "v0.0.0")
17+
webVersion=$(wget -qO- -t1 -T2 "https://api.github.com/repos/OpenListTeam/OpenList-Frontend/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
2218
fi
2319

2420
echo "backend version: $version"
2521
echo "frontend version: $webVersion"
2622

2723
ldflags="\
2824
-w -s \
29-
-X 'github.com/alist-org/alist/v3/internal/conf.BuiltAt=$builtAt' \
30-
-X 'github.com/alist-org/alist/v3/internal/conf.GitAuthor=$gitAuthor' \
31-
-X 'github.com/alist-org/alist/v3/internal/conf.GitCommit=$gitCommit' \
32-
-X 'github.com/alist-org/alist/v3/internal/conf.Version=$version' \
33-
-X 'github.com/alist-org/alist/v3/internal/conf.WebVersion=$webVersion' \
25+
-X 'github.com/OpenListTeam/OpenList/internal/conf.BuiltAt=$builtAt' \
26+
-X 'github.com/OpenListTeam/OpenList/internal/conf.GitAuthor=$gitAuthor' \
27+
-X 'github.com/OpenListTeam/OpenList/internal/conf.GitCommit=$gitCommit' \
28+
-X 'github.com/OpenListTeam/OpenList/internal/conf.Version=$version' \
29+
-X 'github.com/OpenListTeam/OpenList/internal/conf.WebVersion=$webVersion' \
3430
"
3531

3632
FetchWebDev() {
37-
curl -L https://codeload.github.com/alist-org/web-dist/tar.gz/refs/heads/dev -o web-dist-dev.tar.gz
38-
tar -zxvf web-dist-dev.tar.gz
39-
rm -rf public/dist
40-
mv -f web-dist-dev/dist public
41-
rm -rf web-dist-dev web-dist-dev.tar.gz
33+
pre_release_tag=$(curl -fsSL https://api.github.com/repos/OpenListTeam/OpenList-Frontend/releases | jq -r 'map(select(.prerelease)) | first | .tag_name')
34+
if [ -z "$pre_release_tag" ] || [ "$pre_release_tag" == "null" ]; then
35+
# fall back to latest release
36+
pre_release_json=$(curl -fsSL -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/OpenListTeam/OpenList-Frontend/releases/latest")
37+
else
38+
pre_release_json=$(curl -fsSL -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/OpenListTeam/OpenList-Frontend/releases/tags/$pre_release_tag")
39+
fi
40+
pre_release_assets=$(echo "$pre_release_json" | jq -r '.assets[].browser_download_url')
41+
pre_release_tar_url=$(echo "$pre_release_assets" | grep "openlist-frontend-dist" | grep "\.tar\.gz$")
42+
curl -fsSL "$pre_release_tar_url" -o web-dist-dev.tar.gz
43+
rm -rf public/dist && mkdir -p public/dist
44+
tar -zxvf web-dist-dev.tar.gz -C public/dist
45+
rm -rf web-dist-dev.tar.gz
4246
}
4347

4448
FetchWebRelease() {
45-
curl -L https://github.com/alist-org/alist-web/releases/latest/download/dist.tar.gz -o dist.tar.gz
46-
tar -zxvf dist.tar.gz
47-
rm -rf public/dist
48-
mv -f dist public
49+
release_json=$(curl -fsSL -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/OpenListTeam/OpenList-Frontend/releases/latest")
50+
release_assets=$(echo "$release_json" | jq -r '.assets[].browser_download_url')
51+
release_tar_url=$(echo "$release_assets" | grep "openlist-frontend-dist" | grep "\.tar\.gz$")
52+
curl -fsSL "$release_tar_url" -o dist.tar.gz
53+
rm -rf public/dist && mkdir -p public/dist
54+
tar -zxvf dist.tar.gz -C public/dist
4955
rm -rf dist.tar.gz
5056
}
5157

@@ -69,7 +75,7 @@ BuildDev() {
6975
FILES=(x86_64-linux-musl-cross aarch64-linux-musl-cross)
7076
for i in "${FILES[@]}"; do
7177
url="${BASE}${i}.tgz"
72-
curl -L -o "${i}.tgz" "${url}"
78+
curl -fsSL -o "${i}.tgz" "${url}"
7379
sudo tar xf "${i}.tgz" --strip-components 1 -C /usr/local
7480
done
7581
OS_ARCHES=(linux-musl-amd64 linux-musl-arm64)
@@ -104,7 +110,7 @@ PrepareBuildDockerMusl() {
104110
for i in "${FILES[@]}"; do
105111
url="${BASE}${i}.tgz"
106112
lib_tgz="build/${i}.tgz"
107-
curl -L -o "${lib_tgz}" "${url}"
113+
curl -fsSL -o "${lib_tgz}" "${url}"
108114
tar xf "${lib_tgz}" --strip-components 1 -C build/musl-libs
109115
rm -f "${lib_tgz}"
110116
done
@@ -165,15 +171,15 @@ BuildReleaseLinuxMusl() {
165171
mkdir -p "build"
166172
muslflags="--extldflags '-static -fpic' $ldflags"
167173
BASE="https://github.com/OpenListTeam/musl-compilers/releases/latest/download/"
168-
FILES=(x86_64-linux-musl-cross aarch64-linux-musl-cross mips-linux-musl-cross mips64-linux-musl-cross mips64el-linux-musl-cross mipsel-linux-musl-cross powerpc64le-linux-musl-cross s390x-linux-musl-cross)
174+
FILES=(x86_64-linux-musl-cross aarch64-linux-musl-cross mips-linux-musl-cross mips64-linux-musl-cross mips64el-linux-musl-cross mipsel-linux-musl-cross powerpc64le-linux-musl-cross s390x-linux-musl-cross loongarch64-linux-musl-cross)
169175
for i in "${FILES[@]}"; do
170176
url="${BASE}${i}.tgz"
171-
curl -L -o "${i}.tgz" "${url}"
177+
curl -fsSL -o "${i}.tgz" "${url}"
172178
sudo tar xf "${i}.tgz" --strip-components 1 -C /usr/local
173179
rm -f "${i}.tgz"
174180
done
175-
OS_ARCHES=(linux-musl-amd64 linux-musl-arm64 linux-musl-mips linux-musl-mips64 linux-musl-mips64le linux-musl-mipsle linux-musl-ppc64le linux-musl-s390x)
176-
CGO_ARGS=(x86_64-linux-musl-gcc aarch64-linux-musl-gcc mips-linux-musl-gcc mips64-linux-musl-gcc mips64el-linux-musl-gcc mipsel-linux-musl-gcc powerpc64le-linux-musl-gcc s390x-linux-musl-gcc)
181+
OS_ARCHES=(linux-musl-amd64 linux-musl-arm64 linux-musl-mips linux-musl-mips64 linux-musl-mips64le linux-musl-mipsle linux-musl-ppc64le linux-musl-s390x linux-musl-loong64)
182+
CGO_ARGS=(x86_64-linux-musl-gcc aarch64-linux-musl-gcc mips-linux-musl-gcc mips64-linux-musl-gcc mips64el-linux-musl-gcc mipsel-linux-musl-gcc powerpc64le-linux-musl-gcc s390x-linux-musl-gcc loongarch64-linux-musl-gcc)
177183
for i in "${!OS_ARCHES[@]}"; do
178184
os_arch=${OS_ARCHES[$i]}
179185
cgo_cc=${CGO_ARGS[$i]}
@@ -191,17 +197,13 @@ BuildReleaseLinuxMuslArm() {
191197
mkdir -p "build"
192198
muslflags="--extldflags '-static -fpic' $ldflags"
193199
BASE="https://github.com/OpenListTeam/musl-compilers/releases/latest/download/"
194-
# FILES=(arm-linux-musleabi-cross arm-linux-musleabihf-cross armeb-linux-musleabi-cross armeb-linux-musleabihf-cross armel-linux-musleabi-cross armel-linux-musleabihf-cross armv5l-linux-musleabi-cross armv5l-linux-musleabihf-cross armv6-linux-musleabi-cross armv6-linux-musleabihf-cross armv7l-linux-musleabihf-cross armv7m-linux-musleabi-cross armv7r-linux-musleabihf-cross)
195200
FILES=(arm-linux-musleabi-cross arm-linux-musleabihf-cross armel-linux-musleabi-cross armel-linux-musleabihf-cross armv5l-linux-musleabi-cross armv5l-linux-musleabihf-cross armv6-linux-musleabi-cross armv6-linux-musleabihf-cross armv7l-linux-musleabihf-cross armv7m-linux-musleabi-cross armv7r-linux-musleabihf-cross)
196201
for i in "${FILES[@]}"; do
197202
url="${BASE}${i}.tgz"
198-
curl -L -o "${i}.tgz" "${url}"
203+
curl -fsSL -o "${i}.tgz" "${url}"
199204
sudo tar xf "${i}.tgz" --strip-components 1 -C /usr/local
200205
rm -f "${i}.tgz"
201206
done
202-
# OS_ARCHES=(linux-musleabi-arm linux-musleabihf-arm linux-musleabi-armeb linux-musleabihf-armeb linux-musleabi-armel linux-musleabihf-armel linux-musleabi-armv5l linux-musleabihf-armv5l linux-musleabi-armv6 linux-musleabihf-armv6 linux-musleabihf-armv7l linux-musleabi-armv7m linux-musleabihf-armv7r)
203-
# CGO_ARGS=(arm-linux-musleabi-gcc arm-linux-musleabihf-gcc armeb-linux-musleabi-gcc armeb-linux-musleabihf-gcc armel-linux-musleabi-gcc armel-linux-musleabihf-gcc armv5l-linux-musleabi-gcc armv5l-linux-musleabihf-gcc armv6-linux-musleabi-gcc armv6-linux-musleabihf-gcc armv7l-linux-musleabihf-gcc armv7m-linux-musleabi-gcc armv7r-linux-musleabihf-gcc)
204-
# GOARMS=('' '' '' '' '' '' '5' '5' '6' '6' '7' '7' '7')
205207
OS_ARCHES=(linux-musleabi-arm linux-musleabihf-arm linux-musleabi-armel linux-musleabihf-armel linux-musleabi-armv5l linux-musleabihf-armv5l linux-musleabi-armv6 linux-musleabihf-armv6 linux-musleabihf-armv7l linux-musleabi-armv7m linux-musleabihf-armv7r)
206208
CGO_ARGS=(arm-linux-musleabi-gcc arm-linux-musleabihf-gcc armel-linux-musleabi-gcc armel-linux-musleabihf-gcc armv5l-linux-musleabi-gcc armv5l-linux-musleabihf-gcc armv6-linux-musleabi-gcc armv6-linux-musleabihf-gcc armv7l-linux-musleabihf-gcc armv7m-linux-musleabi-gcc armv7r-linux-musleabihf-gcc)
207209
GOARMS=('' '' '' '' '5' '5' '6' '6' '7' '7' '7')

0 commit comments

Comments
 (0)